1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #350

    +12.2

    1. 1
    if (@mysql_query("CREATE TABLE `cms_attributes_".$a."` (`element_id` int(5))")) {}

    Реальный код..
    Видимо, человек любит индусов и начал им подражать)

    guest, 09 Января 2009

    Комментарии (17)
  3. C++ / Говнокод #1617

    +12.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    class TIntArray
    {
    	char buf[10000];
    	int operator[](int Index);
    };
    
    ...
    
    void main()
    {
    	TIntArray a;
    	...
    	memset(&a[1],0.0f,sizeof(TIntArray));
    	...
    };

    Меня этот кот довёл до слёз...

    Говногость, 18 Августа 2009

    Комментарии (11)
  4. C++ / Говнокод #1585

    +12.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    DateTime get_date(const char * _sz_date, bool _b_trunc_year)
    {
    	DateTime _obj_dt;
    
    	// "01/02/2003" - format of the data
    
    	string _str_date = _sz_date;
    
     	//--------------
    
    	string _str_month;
    	string _str_year;
    
    	int _n_day;
    	int _n_month;
    	int _n_year;
    
     	///--------------
    
    	bool _b_1 = false;
    	bool _b_2 = false;
    
    	size_t _n_pos_1 = 0;
    	size_t _n_pos_2 = 0;
    
    	///--------------
    
    	for (size_t _un_num = 0; _un_num < _str_date.size(); _un_num++)
    	{
    		if(_str_date[_un_num] == '/')
    		{
    			///-----------------
    			if(!_b_1)
    			{
    				_b_1 		= true;
    				_n_pos_1 	= _un_num;
    
            			continue;
    			}
    			///-----------------
    			if(_b_1 && !_b_2)
    			{
    				_b_2 		= true;
    				_n_pos_2 	= _un_num;
    			}
    			///-----------------
    		}
    	}
    
     	///--------------
    
    	if(!_b_1 || !_b_2)
    	{
    		return _obj_dt;
    	}
    
     	///--------------
    
    	_str_month = _str_date.substr( _n_pos_1 + 1, ( _n_pos_2 - _n_pos_1 ) - 1 );
    
     	_str_year  = _str_date.substr( _n_pos_2 + 1, ( _str_date.size() - 1 ) -  _n_pos_2 );
    
     	if(_b_trunc_year)
    	{
        		if(_str_year.size() >=4)
       			{
          			_str_year = _str_year.substr(2,2);
        		}
     	}
    
    	sscanf(_str_month.c_str(), "%d", &_n_month);
    	sscanf(_str_year .c_str(), "%d", &_n_year);
    
    	_n_day = 1;
    
    	_obj_dt = DateTime(_n_year,_n_month,_n_day);
    
    	return _obj_dt;
    }

    Парсим дату формата mm/dd/yyyy. Не все так просто в этой жизни.

    lamer, 14 Августа 2009

    Комментарии (5)
  5. Java / Говнокод #20404

    +12

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    return isValidYear(args[4]) ? 
    		  (isValidMonth(args[3]) ? 
    			  (isValidDayOfMonth(args[2]) ? 
    				  (isValidDayOfWeek(args[1]) ? 
    					  (isValidTime(args[0]) ? true 
    					  : false)
    				  : false) 
    			  : false) 
    		  : false) 
    	   : false;

    Не знал, что последовательность && выполняется до первого false, хотел избежать вызова лишних методов при первом ложном результате.

    carapuz, 21 Июля 2016

    Комментарии (10)
  6. PHP / Говнокод #19797

    +12

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    //Если кто-то пытается изменить стандартный отчет и не является Кириллом
    if (in_array($reportId, Default_Model_DbTable_SupplierReport::getInstance()->getStandardIds()) == true
    	&& $this->me->id != Default_Model_User::getKirill()->id
    ) {
    	return false;
    }

    jbot, 12 Апреля 2016

    Комментарии (5)
  7. PHP / Говнокод #19328

    +12

    1. 1
    2. 2
    3. 3
    4. 4
    \Yii::$app->session->setFlash('success', 'Пользователь ' . $model->username . ' успешно добавлен');
    // TODO: какая-то херня с назначением прав(работой с фалами), поэтому и слип
    sleep(3);
    return $this->redirect(['index']);

    В любой непонятной ситуации ложись спать :)

    alex_matviichuk, 19 Января 2016

    Комментарии (0)
  8. C# / Говнокод #18609

    +12

    1. 1
    var time = startDate.ToString("MM/dd/yyyy H:mm").Split(' ')[1]; // 07/21/2007 15:07

    Надо было получить только время :D

    Tigran, 17 Августа 2015

    Комментарии (4)
  9. C++ / Говнокод #16074

    +12

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    template<typename T, typename T1>
    	class TSwitch
    	{
    		private:
    			std::function<T1(T)> _functionSwitch;
    			std::function<void(T)> _defaultFunction;
    			std::map<T1, std::function<void(T)> > _map;
    		private:
    			IActorPtr _protocol;
    			IActorPtr _port;
    			IActorPtr _listParam;
    			IActorPtr _managerData;
    
    		public:
    		TSwitch(std::function<T1(T)> functionSwitch,std::map<T1, std::function<void(T)> > mapSwitch):_functionSwitch(functionSwitch)
    																									,_defaultFunction([](T value){std::cout<<"no way";})
    																									,_map(mapSwitch){}
    		TSwitch(std::function<T1(T)> functionSwitch, std::function<void(T)> defaultValue,std::map<T1, std::function<void(T)> > mapSwitch):_functionSwitch(functionSwitch)
    																																		,_defaultFunction(defaultValue)																																,_map(mapSwitch){}
    		virtual ~TSwitch(){}
    		public:
    			void switches(T value)
    			{
    				auto it=_map.find(_functionSwitch(value));
    				if (it==_map.end()) {_defaultFunction(value); return;}
    				it->second(value);
    			}
    	};

    Вот такая замена switch. Отстойно не правда-ли?

    IKing, 29 Мая 2014

    Комментарии (6)
  10. C++ / Говнокод #15994

    +12

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // Decompress section data
    if (ERR_SUCCESS != LzmaDecompress(data, dataSize, decompressed)) {
        // Intel modified LZMA workaround
        EFI_COMMON_SECTION_HEADER* shittySectionHeader;
        UINT32 shittySectionSize;
        // Shitty compressed section with a section header between COMPRESSED_SECTION_HEADER and LZMA_HEADER
        // We must determine section header size by checking it's type before we can unpack that non-standard compressed section
        shittySectionHeader = (EFI_COMMON_SECTION_HEADER*) data;
        shittySectionSize = sizeOfSectionHeaderOfType(shittySectionHeader->Type);
        // ...

    Oh shit!

    spb-yuriy, 16 Мая 2014

    Комментарии (1)
  11. C++ / Говнокод #15947

    +12

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    AttachmentService::MimeType AttachmentService::mimeTypeByCodeKey(const QString &codeKey) const
     {
         if(codeKey.toLower() == QString("MimeType_PDF").toLower())       return MimeType_PDF;
         if(codeKey.toLower() == QString("MimeType_JPEG").toLower())      return MimeType_JPEG;
         if(codeKey.toLower() == QString("MimeType_PNG").toLower())       return MimeType_PNG;
         if(codeKey.toLower() == QString("MimeType_HTML").toLower())      return MimeType_HTML;
         if(codeKey.toLower() == QString("MimeType_ZHTML").toLower())     return MimeType_ZHTML;
         if(codeKey.toLower() == QString("MimeType_TEXT").toLower())      return MimeType_TEXT;
         if(codeKey.toLower() == QString("MimeType_XLS").toLower())       return MimeType_XLS;
         if(codeKey.toLower() == QString("MimeType_DOC").toLower())       return MimeType_DOC;
         if(codeKey.toLower() == QString("MimeType_PPT").toLower())       return MimeType_PPT;
         if(codeKey.toLower() == QString("MimeType_GIF").toLower())       return MimeType_GIF;
         if(codeKey.toLower() == QString("MimeType_BMP").toLower())       return MimeType_BMP;
         if(codeKey.toLower() == QString("MimeType_MPEG").toLower())      return MimeType_MPEG;
         if(codeKey.toLower() == QString("MimeType_MP4").toLower())       return MimeType_MP4;
         if(codeKey.toLower() == QString("MimeType_MP3").toLower())       return MimeType_MP3;
         return MimeType_UNKNOWN;
    }

    Коллега откопал в моём коде, написанном под какими-то веществами по ходу.
    Изначально было сравнение строк как есть, без приведения в нижний регистр, а потом понадобилось подстраховаться от левого регистра символов.

    FlySnake, 09 Мая 2014

    Комментарии (24)