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

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

    +159

    1. 1
    const TWindow window(TWindowKindController::TWindowID WindowName, bool& isMainWindow=*(bool*)NULL)

    Крупный проЭкт.
    Мне кажется или с isMainWindow что-то не чисто?

    Говногость, 14 Марта 2012

    Комментарии (7)
  3. JavaScript / Говнокод #9610

    +159

    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
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    function getLatin(str){
    	  str = str.replace(/\?/g,'');
    	  str = str.replace(/\:/g,'');
    	  str = str.replace(/\;/g,'');
    	  str = str.replace(/\|/g,'');
    	  str = str.replace(/\</g,'');
    	  str = str.replace(/\>/g,'');
    	  str = str.replace(/\}/g,'');
    	  str = str.replace(/\{/g,'');
    	  str = str.replace(/\[/g,'');
    	  str = str.replace(/\]/g,'');
    	  str = str.replace(/\//g,'');
    	  str = str.replace(/\\/g,'');
    	  str = str.replace(/\+/g,'');
    	  str = str.replace(/\-/g,'');
    	  str = str.replace(/\=/g,'');
    	  str = str.replace(/\~/g,'');
    	  str = str.replace(/\#/g,'');
    	  str = str.replace(/\@/g,'');
    	  str = str.replace(/\$/g,'');
    	  str = str.replace(/\^/g,'');
    	  str = str.replace(/\&/g,'');
    	  str = str.replace(/\*/g,'');
    	  str = str.replace(/\(/g,'');
    	  str = str.replace(/\)/g,'');
    	  str = str.replace(/%/g,'');
    	  str = str.replace(/\"/g,'');
    	  str = str.replace(/\'/g,'');
    	  str = str.replace(/,/g,'');
    	  str = str.replace(/\./g,'');
    	  str = str.replace(/!/g,'');
    	  str = str.replace(/ /g,'_');
    	  str = str.replace(/а/g,'a');
    	  str = str.replace(/б/g,'b');
    	  str = str.replace(/в/g,'v');
    	  str = str.replace(/г/g,'g');
    	  str = str.replace(/д/g,'d');
    	  str = str.replace(/е/g,'e');
    	  str = str.replace(/ё/g,'e');
    	  str = str.replace(/ж/g,'zh');
    	  str = str.replace(/з/g,'z');
    	  str = str.replace(/и/g,'i');
    	  str = str.replace(/й/g,'j');
    	  str = str.replace(/к/g,'k');
    	  str = str.replace(/л/g,'l');
    	  str = str.replace(/м/g,'m');
    	  str = str.replace(/н/g,'n');
    	  str = str.replace(/о/g,'o');
    	  str = str.replace(/п/g,'p');
    	  str = str.replace(/р/g,'r');
    	  str = str.replace(/с/g,'s');
    	  str = str.replace(/т/g,'t');
    	  str = str.replace(/у/g,'u');
    	  str = str.replace(/ф/g,'f');
    	  str = str.replace(/х/g,'h');
    	  str = str.replace(/ц/g,'c');
    	  str = str.replace(/ч/g,'ch');
    	  str = str.replace(/ш/g,'sh');
    	  str = str.replace(/щ/g,'sh');
    	  str = str.replace(/ъ/g,'');
    	  str = str.replace(/ы/g,'y');
    	  str = str.replace(/ь/g,'');
    	  str = str.replace(/э/g,'e');
    	  str = str.replace(/ю/g,'yu');
    	  str = str.replace(/я/g,'ya');
    
    	  str = str.replace(/А/g,'a');
    	  str = str.replace(/Б/g,'b');
    	  str = str.replace(/В/g,'v');
    	  str = str.replace(/Г/g,'g');
    	  str = str.replace(/Д/g,'d');
    	  str = str.replace(/Е/g,'e');
    	  str = str.replace(/Ё/g,'e');
    	  str = str.replace(/Ж/g,'zh');
    	  str = str.replace(/З/g,'z');
    	  str = str.replace(/И/g,'i');
    	  str = str.replace(/Й/g,'j');
    	  str = str.replace(/К/g,'k');
    	  str = str.replace(/Л/g,'l');
    	  str = str.replace(/М/g,'m');
    	  str = str.replace(/Н/g,'n');
    	  str = str.replace(/О/g,'o');
    	  str = str.replace(/П/g,'p');
    	  str = str.replace(/Р/g,'r');
    	  str = str.replace(/С/g,'s');
    	  str = str.replace(/Т/g,'t');
    	  str = str.replace(/У/g,'u');
    	  str = str.replace(/Ф/g,'f');
    	  str = str.replace(/Х/g,'h');
    	  str = str.replace(/Ц/g,'c');
    	  str = str.replace(/Ч/g,'ch');
    	  str = str.replace(/Ш/g,'sh');
    	  str = str.replace(/Щ/g,'sh');
    	  str = str.replace(/Ъ/g,'');
    	  str = str.replace(/Ы/g,'y');
    	  str = str.replace(/Ь/g,'');
    	  str = str.replace(/Э/g,'e');
    	  str = str.replace(/Ю/g,'yu');
    	  str = str.replace(/Я/g,'ya');

    И снова перед вами алфавит. Это код с реального сайта, http://ruskino29.ru/content/js/main.js.

    YetAnotherName, 05 Марта 2012

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    double KoDeData::toDouble(bool realValue)
    {
        return this->value(realValue).toInt();
    }

    Часа два искал почему вместо 1.7 выводится 2.

    ir4y, 03 Марта 2012

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

    +159

    1. 1
    2. 2
    define('ASC', 'ASC');
    define('DESC', 'DESC');

    *facepalm*

    codename, 24 Февраля 2012

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    ...
    </tr>
    </tbody>
    <?  if($color == "#ffffff") 
              $color = "#ffffff"; 
          else 
              $color = "#ffffff";  
    ?>
    </table>

    Гений блин... Правда так и не понятно что хотелось этим сказать...

    vahminator, 24 Февраля 2012

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

    +159

    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
    <?
    $a = array("second","third","first");
    usort($a,"tes");
    function tes($c, $d, $data){
    if ($c == "third" && $d == "second") return -1;
    if ($c == "third" && $d == "first") return -1;
    if ($c == "first" && $d == "second") return 1;
    if ($c == "second" && $d == "third") return 1;
    if ($c == "first" && $d == "third") return 1;
    if ($c==$d==$data) return 0;
    }
    print_r($a);
    ?>

    В тестах задание, сортировать $a до вида ([1]=>"third",[2]=>"second",[3]=>"first").
    Один из вариантов ответа(остальные ответы аналогичны, отличаются синтаксисом).

    truedizzy, 21 Февраля 2012

    Комментарии (11)
  8. PHP / Говнокод #9495

    +159

    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
    // Конструктор
        public function __construct($tablename,
                                    $detal = "*",
                                    $where,
                                    $order = "",
                                    $pnumber = 10,
                                    $page_link = 3,
                                    $parameters = "")
        {
            if (empty($detal)) $this->detal = '*'; else $this->detal = $detal;
            parent::__construct($tablename,
                $where,
                $order,
                $pnumber,
                $page_link,
                $parameters);
        }

    ооп

    englandpost, 20 Февраля 2012

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

    +159

    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
    <?php  if (!($main_controller->params['id_type'] == 3  
     && in_array($id_seo, array(70,76,92,78,121,163,165,278,164))) 
    && $main_controller->params['id_cat']!=12 && $main_controller->params['id_cat']!=11 
    && $main_controller->params['id_type'] != 6 
    && !($id_type==5 && $id_elt==6 
    && isset($main_controller->params['id_prep'])) 
    && $id_seo!=140 && !($main_controller->params['id_type'] == 1 
    && ($id_elt==76 || ($id_elt>=82 && $id_elt<=90) ||  in_array($id_seo, array(241,244,245,268,286,287,288,289,237,285,283,284,324)) 
    || in_array($id_elt, array(12,100,101,14,18,19,20,13,93,24,25,26,27,28,29,30,31,32,33,34,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,61,62,63,64,104,91))))) { ?>
    
    ...
    
     else if($main_controller->params['id_type'] == 1 && ($id_elt==76 || ($id_elt>=82 && $id_elt<=90) 
    || in_array($id_elt, array(12,100,101,14,18,19,20,13,93,24,25,26,27,28,29,30,31,32,33,34,43,44,45,46,47,48,49,50,51,52,53,54,55,57,58,59,60,61,62,63,64,104,91))))

    такие вот лаконичнинькие условия (было в одну строку - переносы сам сделал для читабельности))))

    SuperChel, 20 Февраля 2012

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

    +159

    1. 1
    2. 2
    3. 3
    exit;
    break;
    return false;

    Вот так истинные индусы завершают выполнение скрипта. Чтоб уж наверняка.
    Только die(); не хватает.

    ruslan441, 15 Февраля 2012

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

    +159

    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
    void CXMLParser::Parse(std::map< std::pair<int, int>, int >& link)
    {
      _di_IXMLNode areaNode = MessageNode->ChildNodes->FindNode( WideString("area") );
      if( areaNode )
      {
        Area.reset( new CAreaPart( areaNode ) );
        IXMLNodeList* pointList = areaNode->ChildNodes;
        if( pointList )
        {
          for(int pointIndex=0; pointIndex<pointList->GetCount(); pointIndex++)
          {
            _di_IXMLNode pointNode = pointList->Get( pointIndex );
            int typePoint = -1;
            if( pointNode->GetNodeName() == WideString("measuringpoint") )
              typePoint = MEASURING;
            if( pointNode->GetNodeName() == WideString("accountpoint") )
              typePoint = ACCOUNT;
            if( pointNode->GetNodeName() == WideString("deliverypoint") )
              typePoint = DELIVERY;
            switch( typePoint )
            {
            case MEASURING:
            case ACCOUNT:
            case DELIVERY:
              {
                const int pointCode    = pointNode->GetAttribute( WideString("code") );
                const String pointName = pointNode->GetAttribute( WideString("name") );
                IXMLNodeList* channelList = pointNode->ChildNodes;
                if( channelList )
                {
                  for(int channelIndex=0; channelIndex<channelList->GetCount(); channelIndex++)
                  {
                    _di_IXMLNode channelNode = channelList->Get( channelIndex );
                    if( channelNode->GetNodeName() == WideString("measuringchannel") )
                    {
                      const int channelCode    = channelNode->GetAttribute( WideString("code") );
                      const String channelDesc = channelNode->GetAttribute( WideString("desc") );
                      IXMLNodeList* periodList = channelNode->ChildNodes;
                      if( periodList )
                      {
                        for(int periodIndex=0; periodIndex<periodList->GetCount(); periodIndex++)
                        {
                          _di_IXMLNode periodNode = periodList->Get( periodIndex );
                          if( periodNode )
                          {
                            String str = periodNode->GetAttribute( WideString("start") );
                            periodNode->GetAttribute( WideString("end") );
                            TDateTime time;
                            time = TDateTime( StrToInt( str.SubString( 1, 2 ) ), StrToInt( str.SubString( 3, 2 ) ), 0, 0 );
                            periodNode->GetAttribute( WideString("summer") );
                            time = IncMinute( time, 30 );
                            _di_IXMLNode valueNode = periodNode->ChildNodes->FindNode( WideString("value") );
                            if( valueNode )
                            {
                              const int status = valueNode->GetAttribute( WideString("status") );
                              const int value = StrToInt( valueNode->Text );
                              if( RTDBWrite )
                              {
                                map< pair<int, int>, int >::iterator i = link.find( make_pair( pointCode, channelCode ) );
                                if( i!=link.end() )
                                {
                                  (*RTDBWrite)( Date->DateInterval.first + time, (*i).second, value, status );
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      RTDBWrite->Flush();
    }

    Древний legacy-код на БорландЦэпэпэБыдлере, обнаруживаемый на текущей работе (почти госпредприятие), выглядит в основной своей массе примерно так. Новый код на C# чуть получше, но в целом тоже жуткое мракобесие.
    Сил больше нет работать с подобным, увольняюсь и ищу норм работу.

    invi, 15 Февраля 2012

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