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

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

    +49

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for (int i = 0; i <= 10000; i++)
    {
    if (a[i]=='a')
    a[i] == "000";
    continue;
    }

    Цикл, который в строке a меняет все символы 'a' на три ноля. Говнолабка одногруппницы.

    b2soft, 25 Ноября 2014

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

    +57

    1. 1
    2. 2
    float factor = ((float)sizeof(char) / sizeof(wchar_t));
    fileSize = (long)((float)fileSize * factor);

    вот так выглядит деление на sizeof(wchar_t) :)

    fsmoke, 18 Ноября 2014

    Комментарии (28)
  4. JavaScript / Говнокод #17111

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    var list = [ ];
    
    // hidden elements
    list[ NaN ] = 'this-element-always-is-last'; // max index
    list[ Number.MAX_VALUE ] = 'this-is-smallest';
    list[ Infinity ] = 'this-just-infinity';
    
    // list.length == 0; // true

    Делать нечего в селе, мы сидим навеселе. Всех с пятницей!

    bot, 14 Ноября 2014

    Комментарии (28)
  5. C++ / Говнокод #17002

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    while (1) { // Не все знают логические значения
        ...
    }
    
    for (;;) // Ещё хуже
    { ... }

    nns2009, 31 Октября 2014

    Комментарии (28)
  6. JavaScript / Говнокод #16744

    +127

    1. 1
    ['10','10','10','10'].map(parseInt)

    Результат:

    [10, NaN, 2, 3]

    someone, 22 Сентября 2014

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

    +154

    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
    // Цитата №1: массив регулярных выражений из введённых пользователем строк
    var strings = what.filter(function(e){ return e.replace(/s+/g,'').length; }).map(function(e){ var re = new RegExp(e, 'g' + (ignoreCase ? 'i' : '')); return re; });
    
    // Цитата №2: проверяется наличие введённых строк в тексте и выводит результаты
    function processText(pid, cid, text){
      if(strings.every(function(re){
        return re.test(text);
      })){
      
        // совпало
        // тут выводится информация о совпадении для поста/комментария
        // кроме вывода в консоль побочных эффектов нет
        ....
        
      }
    }
    
    // Цитата №3: запуск поиска
    posts.forEach(function(post){
      processText(post.id, null, post.author.name + ' ' + post.text);
      processText(post.id, null, post.author.name + ' ' + post.description);
      post.comments.forEach(function(comment){
        processText(post.id, comment.id, comment.author.name + ' ' + comment.text);
      });
    });

    Цитаты из скрипта поиска по ГК.
    Казалось бы, write-only питушня, работает - не трогать. Но, прочитав, http://govnokod.ru/16577#comment246821, решил поискать упоминания доктора по званию. Открываю найденный пост X, а там не все упоминания найдены. Меняю список постов, в которых искать - для X меняется список найденных комментариев.
    Откуда такая питушня? processText почти чистая, strings, posts не меняется. Может, вывод на консоль как-то влияет?

    Все волосы на жопе вырвал пока нашел в чем ошибка.
    Внимание, вопрос. В чем гавно?
    (c) ursus

    1024--, 05 Сентября 2014

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

    +158

    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
    class TestThis
    {
        public $property = 'property';
    
        public function test1()
        {
            $this->this($this, new ArrayObject);
    
            $this['wierd'] = true;
    
            print_r($this);
            print_r($this->property . PHP_EOL);
    
            return $this;
        }
    
        public function test2()
        {
            print_r($this);
        }
    
        public function this(&$object, $value)
        {
            $object = $value;
        }
    }
    
    (new TestThis)->test1()->test2();

    Вопрос к самому похапе.

    Так вот нельзя:
    $this = че-нибудь

    "Cannot re-assign $this"

    А вот как выше можно!

    doo_dee_doo_dmt, 02 Сентября 2014

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

    +152

    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
    <?php
    
    class Config {
    
    /* ... */
    
    	public function __construct () 
    	{
    		// Читаем настройки из дефолтного файла
    		$ini = parse_ini_file(dirname(dirname(__FILE__)).'/'.$this->config_file);
    		// Записываем настройку как переменную класса
    		foreach($ini as $var=>$value)
    			$this->vars[$var] = $value;
    
    /* ... */

    Взято из файла api/config.php из Simpla CMS.
    Нельзя было $this->vars = parse_ini_file(dirname(dirname(__FILE__) ).'/'.$this->config_file); написать что ли?

    volter9, 29 Июля 2014

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

    +163

    1. 1
    //проверяем, не извлечены ли данные пользователя из базы. Если нет, то он не вошел, либо пароль в сессии неверный. Выводим окно для входа. Но мы не будем его выводить для вошедших, им оно уже не нужно.

    Не замысловатый комментарий из истории одного проекта

    reilag, 25 Июля 2014

    Комментарии (28)
  11. Си / Говнокод #16251

    +136

    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
    switch(event->touch_point) {
          case 5:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x5);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y5);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
    //         printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
          case 4:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x4);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y4);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
    //         printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
          case 3:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x3);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y3);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
    //         printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
          case 2:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x2);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y2);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
    //         printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
          case 1:
             input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
             input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x1);
             input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y1);
             input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
             input_mt_sync(data->input_dev);
             printk("===x1 = %d,y1 = %d ====\n",event->x1,event->y1);
    
          default:
    //         printk("==touch_point default =\n");
             break;
       }

    Автору платили за строки?
    Из драйвера тачскрина ft5x0x

    Pythoner, 28 Июня 2014

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