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

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

    +157

    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
    // экшен произвольного контроллера, они там все такие
    
    $data['heading_title'] = $this->language->get('heading_title');
    
    $data['text_my_account'] = $this->language->get('text_my_account');
    $data['text_my_orders'] = $this->language->get('text_my_orders');
    $data['text_my_newsletter'] = $this->language->get('text_my_newsletter');
    $data['text_edit'] = $this->language->get('text_edit');
    $data['text_password'] = $this->language->get('text_password');
    
    // еще 20-30 аналогичных строчек
    
    $data['column_left'] = $this->load->controller('common/column_left');
    $data['column_right'] = $this->load->controller('common/column_right');
    $data['content_top'] = $this->load->controller('common/content_top');
    $data['content_bottom'] = $this->load->controller('common/content_bottom');
    $data['footer'] = $this->load->controller('common/footer');
    $data['header'] = $this->load->controller('common/header');
    
    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/account/account.tpl')) {
    	$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/account/account.tpl', $data));
    } else {
    	$this->response->setOutput($this->load->view('default/template/account/account.tpl', $data));
    }

    теги: Опенкарт, вчера релизнули, модный паттерн MVC-L, тонкие контроллеры, классика, табы для того и сделаны, чтобы ими отбивать

    https://github.com/opencart/opencart/tree/master/upload/catalog/controller/account

    Fike, 03 Октября 2014

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    /**
         * @param $data
         */
        protected function echo_string($data)
        {
            echo $data;
        }

    Хитрый ход

    andr435, 27 Августа 2014

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

    +166

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    $rowdesc = str_replace("интернет", "<b>интернет</b>", $rowdesc);
    $rowdesc = str_replace("WI-FI интернет", "<b>WI-FI интернет</b>", $rowdesc);
    
    
    $rowdesc = str_replace("бильярд", "<b>бильярд</b>", $rowdesc);
    $rowdesc = str_replace("настольный теннис", "<b>настольный теннис</b>", $rowdesc);
    $rowdesc = str_replace("барной стойкой", "<b>барной стойкой</b>", $rowdesc);
    $rowdesc = str_replace("кондиционирования", "<b>кондиционирования</b>", $rowdesc);
    $rowdesc = str_replace("бассейн", "<b>бассейн</b>", $rowdesc);
     $rowdesc = str_replace("зеленая зона", "<b>зеленая зона</b>", $rowdesc);
     $rowdesc = str_replace("беседкой для отдыха", "<b>беседкой для отдыха</b>", $rowdesc);
    $rowdesc = str_replace("кондиционеры", "<b>кондиционеры</b>", $rowdesc);
    $rowdesc = str_replace("«Джакузи»", "<b>«Джакузи»</b>", $rowdesc);
    $rowdesc = str_replace(' камин ', ' <b>камин</b> ', $rowdesc);
    $rowdesc = str_replace(' каминный зал ', ' <b>каминный зал</b> ', $rowdesc);
    
    
    $rowdesc = str_replace(' пруд с рыбками) ', ' <b>пруд с рыбками</b>) ', $rowdesc);
    
     $rowdesc = str_replace("Кабельное телевидение", "<b>Кабельное телевидение</b>", $rowdesc);
     $rowdesc = str_replace("продуктовые магазины", "<b>продуктовые магазины</b>", $rowdesc);
     $rowdesc = str_replace("стиральной машиной", "<b>стиральной машиной</b>", $rowdesc);
     $rowdesc = str_replace("террасу", "<b>террасу</b>", $rowdesc);
     $rowdesc = str_replace("детские аттракционы", "<b>детские аттракционы</b>", $rowdesc);
     $rowdesc = str_replace("беседка", "<b>беседка</b>", $rowdesc);
    
    $rowdesc = str_replace("отдельный вход", "<b>отдельный вход</b>", $rowdesc);
    
    
    $rowdesc = str_replace("посудомоечная машина", "<b>посудомоечная машина</b>", $rowdesc);
    $rowdesc = str_replace("двор для парковки", "<b>двор для парковки</b>", $rowdesc);
    $rowdesc = str_replace("кондиционеры ", "<b>кондиционеры</b> ", $rowdesc);
    $rowdesc = str_replace("автоматической стиральной машиной", "<b>автоматической стиральной машиной</b>", $rowdesc);
    $rowdesc = str_replace("спутниковое телевидение", "<b>спутниковое телевидение</b>", $rowdesc);
    $rowdesc = str_replace("полы с подогревом", "<b>полы с подогревом</b>", $rowdesc);
    $rowdesc = str_replace("телевизор, ", "<b>телевизор</b>, ", $rowdesc);
    $rowdesc = str_replace("продуктовый рынок", "<b>продуктовый рынок</b>", $rowdesc);
    $rowdesc = str_replace("биде", "<b>биде</b>", $rowdesc);
    $rowdesc = str_replace("дворик для отдыха", "<b>дворик для отдыха</b>", $rowdesc);
    
    $rowdesc = str_replace("Кондиционирован,", "<b>Кондиционирован</b>,", $rowdesc);
    $rowdesc = str_replace("кондиционирован,", "<b>кондиционирован</b>,", $rowdesc);
    $rowdesc = str_replace("телевизора", "<b>телевизора</b>", $rowdesc);
    $rowdesc = str_replace("Сплит система", "<b>Сплит система</b>", $rowdesc);
    
    $rowdesc = str_replace("удобная транспортная развязка", "<b>удобная транспортная развязка</b>", $rowdesc);
     $rowdesc = str_replace("набережная", "<b>набережная</b>", $rowdesc);
    $rowdesc = str_replace("телевизор ", "<b>телевизор</b> ", $rowdesc);
    
    
    $rowdesc = str_replace("зона отдыха", "<b>зона отдыха</b>", $rowdesc);
    
    
    $rowdesc = str_replace("парковка", "<b>парковка</b>", $rowdesc);
    
    $rowdesc = str_replace("кафе быстрого питания", "<b>кафе быстрого питания</b>", $rowdesc);
    $rowdesc = str_replace("сеть магазинов", "<b>сеть магазинов</b>", $rowdesc);
    $rowdesc = str_replace("столовые", "<b>столовые</b>", $rowdesc);
    $rowdesc = str_replace("СВЧ", "<b>СВЧ</b>", $rowdesc);
    $rowdesc = str_replace("сплит система ", "<b>сплит система </b>", $rowdesc);
    $rowdesc = str_replace("кондиционер.", "<b>кондиционер</b>.", $rowdesc);
    $rowdesc = str_replace("Кондиционер,", "<b>Кондиционер</b>,", $rowdesc);
    $rowdesc = str_replace("кондиционер,", "<b>кондиционер</b>,", $rowdesc);
    $rowdesc = str_replace("видом на море", "<b>видом на море</b>", $rowdesc);
    $rowdesc = str_replace("Вид на море", "<b>Вид на море</b>", $rowdesc);
    $rowdesc = str_replace("вид на море", "<b>вид на море</b>", $rowdesc);
    
    
    $rowdesc = str_replace("двухконтурный котел", "<b>двухконтурный котел</b>", $rowdesc);
    $rowdesc = str_replace("рынок,", "<b>рынок</b>,", $rowdesc);
    $rowdesc = str_replace("магазины,", "<b>магазины</b>,", $rowdesc);
    $rowdesc = str_replace("кафе,", "<b>кафе</b>,", $rowdesc);
    $rowdesc = str_replace("рестораны", "<b>рестораны</b>", $rowdesc);
    
    
    $rowdesc = str_replace(" автоматическая стиральная машинка, ", " <b>автоматическая стиральная машинка</b>, ", $rowdesc);
    $rowdesc = str_replace("ТВ", "<b>ТВ</b>", $rowdesc);
    
    $rowdesc = str_replace("сейф", "<b>сейф</b>", $rowdesc);
    
    
    $rowdesc = str_replace("стиральная машинка «Автомат»", "<b>стиральная машинка «Автомат»</b>", $rowdesc);
    $rowdesc = str_replace("кабельное телевидение", "<b>кабельное телевидение</b>", $rowdesc);
    
    $rowdesc = str_replace("стиральной машиной «Автомат»", "<b>стиральной машиной «Автомат»</b>", $rowdesc);
    $rowdesc = str_replace("WI-FI интернет", "<b>WI-FI интернет</b>", $rowdesc);
    $rowdesc = str_replace(" парковка.", " <b>парковка.</b>", $rowdesc);
    
    $rowdesc = str_replace("стиральная машинка «Автомат»", "<b>стиральная машинка «Автомат»</b>", $rowdesc);
    
    $rowdesc = str_replace("стиральная машина", "<b>стиральная машинка</b>", $rowdesc);
    
    $rowdesc = str_replace("стиральная машина", "<b>стиральная машинка</b>", $rowdesc);
    $rowdesc = str_replace("индивидуальное отопление", "<b>индивидуальное отопление</b>", $rowdesc);
    $rowdesc = str_replace("стиральная машина автомат", "<b>стиральная машина автомат</b>", $rowdesc);
    
    $rowdesc = str_replace(" Кондиционеры, ", " <b>Кондиционеры,</b> ", $rowdesc);
    $rowdesc = str_replace(" Кондиционеры ", " <b>Кондиционеры</b> ", $rowdesc);
    $rowdesc = str_replace(' кондиционер, ', ' <b>кондиционер,</b> ', $rowdesc);
    $rowdesc = str_replace(' кондиционер ', ' <b>кондиционер</b> ', $rowdesc);

    Всё тот же любимый проект...

    Uhehesh, 25 Августа 2014

    Комментарии (8)
  5. Куча / Говнокод #16566

    +143

    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
    Монады как коллбеки
    
    На джаваскриптовой конференции, о которой я писал в прошлом посте, в процессе обсуждения 
    ФП неизбежно встала тема монад.
    
    Мне было интересно, насколько легко можно объяснить монады «на пальцах». Возможно, не в 
    той степени, чтобы человек смог сразу с ними программировать, но в той степени, чтобы понимать,
     что они делают и зачем нужны.
    
    И у меня возникла идея объяснить монады без типов. Мне кажется, главную сложность при изучении 
    монад вызывают именно типы (а точнее, конструкторы типов и классы конструкторов типов), т.к. многие 
    приходят в Haskell из языков с менее выразительной системой типов.
    
    В то же время, монады могут существовать и в динамических языках. А если из монад убрать типы, 
    то останется лишь то, как они работают во время исполнения — и там все довольно прозрачно.
    
    Вычислительная сущность монад — это continuation passing style, или коллбеки. Любая программа 
    на node.js написана в этом стиле.
    
    Левый аргумент >>= — вычисление, а правый — коллбек. Коллбек принимает результат вычисления 
    и совершает какие-то дальнейшие вычисления
    
    Эта аналогия особенно точно выполняется для монад Identity, IO, Maybe/Either. Каждая отдельная 
    монада определяет, к чему конкретно будет применен коллбек.
    
    Но посмотрим, например, на монаду [] (список). Если руководствоваться только лишь представлением 
    о монаде как о вызове коллбеков, то самый простой способ определить списочную монаду — это a >>= k = map k a (что неверно).
    
    Аналогия с коллбеками слишком «императивна» и не улавливает тонкость — структуру самой монады. 
    Чтобы эту структуру наглядно показать, как раз и нужны типы.

    kegdan, 19 Августа 2014

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

    +70

    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
    *  Calculates the minimum number of bits necessary to represent the given number.  The
         *      number should be given in its unsigned form with the starting bits equal to 1 if it is
         *      signed.  Repeatedly compares number to another unsigned int called x.
         *      x is initialized to 1.  The value of x is shifted left i times until x is greater
         *      than number.  Now i is equal to the number of bits the UNSIGNED value of number needs.
         *      The signed value will need one more bit for the sign so i+1 is returned if the number
         *      is signed, and i is returned if the number is unsigned.
     * @param number the number to compute the size of
     * @param bits 1 if number is signed, 0 if unsigned
     */
        public static int minBits(int number, int bits)
        {
        int val = 1;
        for (int x = 1; val <= number && !(bits > 32); x <<= 1) 
        {
            val = val | x;
            bits++;
        }
    
        if (bits > 32)
                {
                        assert false : ("minBits " + bits + " must not exceed 32");
                }
        return bits;
    }

    Адоб, как обычно, порадовал (условие окончания цикла).
    [color=blue]https://git-wip-us.apache.org/repos/asf/flex-sdk/repo?p=flex-sdk.git;a=blob;f=modules/swfutils/src/java/flash/swf/SwfEncoder.java;h=03a100dda92989d537b00b 96033d614c73c47801;hb=HEAD#l320[/code]

    wvxvw, 17 Августа 2014

    Комментарии (8)
  7. bash / Говнокод #16470

    −111

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    WHEN=`date +%Y-%m-%d_%H-%M`;
    # Если дамп в этом часу не создавался, то минуты в имени опускаем
    # Осторожно, этот скрипт подвержен проблеме 10000 года.
    # Обязательно скажите об этом своим прапрапрапрапрапрапрапрапрапрапрапра...правнукам
    if ! [[ -s $DYMPATH/${WHEN:0:13}.sql.$ARCEXTEN ]] ; then
        WHEN=${WHEN:0:13}
    fi

    DIX315, 04 Августа 2014

    Комментарии (8)
  8. Куча / Говнокод #16441

    +129

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    .some-amazing-class{
    
        // A Lot Of CSS
    
        > div.pull-right {
                float: left !important;
        }
    
        // A Lot Of CSS
    
    }

    Не так давно заметил на проекте у себя что-то подобное)))
    Как по мне так это именно Twitter Bootstrap Best Practices =)

    true2trance, 29 Июля 2014

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

    −160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    ДляВырезки = 8;	
    
    	Если Не Найти(Стр,"маг") = 0 Тогда
    		Если (Найти(Стр,"маг") + ДляВырезки) > СтрДлина(Стр) Тогда
    			Обрез = Сред(Стр,Найти(Стр,"Маг"),(Найти(Стр,"Маг") - СтрДлина(Стр)) + 1);
    		Иначе
    			Обрез = Сред(Стр,Найти(Стр,"маг"),ДляВырезки);	
    		КонецЕсли;
    	КонецЕсли;
    	
    	Возврат ВторойУровеньСумрака(Обрез);

    А этот наоборот с именем старается)

    Cascader, 28 Июля 2014

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

    +25

    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
    case 'z':
    {
    	int diff;
    	char const *sign;
    
    	if (t->tm_isdst < 0)
    	  continue;
    	continue;
    	if (diff < 0)
    	  {
    		sign = "-";
    		diff = -diff;
    	  }
    	else
    	  sign = "+";
    	pt = _add (sign, pt, ptlim);
    	diff /= 60;
    	pt = _conv ((diff / 60) * 100 + diff % 60, "%04d", pt, ptlim);
    }
    continue;

    https://github.com/Helco/PebbleLocalSim/blob/master/additionalSource/strftime.c

    байтоёбы-байтоёбики...
    для упоротых - строки 7 и 8.

    blackhearted, 08 Июля 2014

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

    +159

    1. 1
    2. 2
    3. 3
    if ($_POST['category']===1){ //Визначаємо яку категорію вибрав користувач ...
        "INSERT INTO `advertisement` (category) VALUES ('Квартира')";
    }

    Пришло время выполнить запрос. Запрос сам не выполнится...

    Взято отсюда: http://govnokod.ru/16259

    bormand, 30 Июня 2014

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