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

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /* Проект на Kohana Framework
    Таблица "курсы" (которую товарищ умудрился ещё обозвать tracks) имеет связь "многие ко многим" с таблицей "разделы курсов". 
    Для этого в ней есть поле section_id вот такого содержания:
    2|3|4|6|9
    А вот так запрашиваются курсы из определённой категории:
    */
    $tracks = ORM::factory('Tracks')->order_by($order_by,'ASC')->where('section_id','LIKE','%'.$this->track_id.'%')->find_all()->as_array();
    // Ну то есть, если категорий будет больше 10, то появятся неожиданные результаты....

    Всегда весело смотреть, как люди, не знающие как делать связь "многие-ко-многим" изобретаю велосипеды....

    mkramer, 28 Января 2015

    Комментарии (9)
  3. Objective C / Говнокод #17533

    −388

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    - (void) setLevel:(NSInteger)level {
        if (level > (long)[_ranksDictionary count] - 1) level = (long)[_ranksDictionary count] - 1;
        if (level < 0) level = 0;
    
        _level = level;
        
        self.currentRank = [_ranksDictionary objectForKey:[NSNumber numberWithInteger:_level]];
        
        if (rankDataItem.integerValue != -_level)
            rankDataItem.integerValue = _level;
    }

    Я совсем хуевый?

    ExT, 28 Января 2015

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

    −110

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    # количество гласных в строке
    vowelsCount = lambda s: sum([1 for x in s if x in ['i','a','e','o','u']])
    # Вхождение подстроки в строку
    substringOccurence = lambda S,s:sum([1 for i in range(len(S) + 1 - len(s)) if S[i:i + len(s)] == s])
    g = lambda S,s:'Number of times ' + substr + ' occurs is: ' + str(substringOccurence(S,s))
    # первая из упорядоченных подстрок максимальной длины
    alpha = lambda s:  [x for x in  
       [s[i:i + j] for j in range(len(s),0,-1)for i in range(len(s) - j + 1)]
        if x == ''.join(sorted(x))][0]
    # atoi без atoi
    stringToInteger = lambda s: sum([(ord(n) - ord('0')) * (10 ** i) for i,n in enumerate(s[::-1])])

    Питонячьи извращения для одного курса или не все однострочники одинаково полезны.

    wowsuchdoge, 27 Января 2015

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

    +94

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    combinations.AddRange(combinations4);
                combinations.AddRange(from combination5 in combinations5
                                      where
                                          (from combination4 in combinations4
                                           where
                                               (from c4class in combination4.Classes
                                                where !combination5.Classes.Contains(c4class)
                                                select c4class).Count() == 0
                                           select combination4).Count() == 0
                                      select combination5);

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

    krypt, 24 Января 2015

    Комментарии (9)
  6. SQL / Говнокод #17477

    −167

    1. 1
    2. 2
    3. 3
    CREATE TABLE users (
      --...
      active VARCHAR(1) NOT NULL DEFAULT 'N'

    Lowezar, 19 Января 2015

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

    +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
    struct hostent *rc_gethostbyname(const char *hostname)
    {
    	struct 	hostent *hp;
    #ifdef GETHOSTBYNAME_R
    #if defined (GETHOSTBYNAMERSTYLE_SYSV) || defined (GETHOSTBYNAMERSTYLE_GNU)
    	struct 	hostent hostbuf;
    	size_t	hostbuflen;
    	char	*tmphostbuf;
    	int	res;
    	int	herr;
    	
    	hostbuflen = 1024;
    	tmphostbuf = malloc(hostbuflen);
    #endif
    #endif
    
    #ifdef GETHOSTBYNAME_R
    #if defined (GETHOSTBYNAMERSTYLE_GNU)
    	while ((res = gethostbyname_r(hostname, &hostbuf, tmphostbuf, hostbuflen, &hp, &herr)) == ERANGE)
    	{
    		/* Enlarge the buffer */
    		hostbuflen *= 2;
    		tmphostbuf = realloc(tmphostbuf, hostbuflen);
    	}
    	free(tmphostbuf);
    #elif defined (GETHOSTBYNAMERSTYLE_SYSV)
    	hp = gethostbyname_r(hostname, &hostbuf, tmphostbuf, hostbuflen, &herr);
    	free(tmphostbuf);
    #else
    	hp = gethostbyname(hostname);
    #endif
    #else
    	hp = gethostbyname(hostname);
    #endif
    
    	if (hp == NULL) {
    		return NULL;
    	}
    	return hp;
    }

    freeradius-client 1.1.6, казалось бы серьезная либа... Говно мамонта, конечно, но оно валяется в репе бубунты 14.10... Неужели никто еще не заметил? :)

    bormand, 15 Января 2015

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

    −125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    ВЫБОР
    	КОГДА &ПоказыватьВсеПотребности
    	ТОГДА ВЫБОР 
    		КОГДА ОсновнаяТаблица.КоличествоПлана <= 0
    			ТОГДА ОсновнаяТаблица.КоличествоПлана
    		ИНАЧЕ ОсновнаяТаблица.КоличествоПлана
    	КОНЕЦ
    ИНАЧЕ ОсновнаяТаблица.КоличествоПлана
    КОНЕЦ КАК КоличествоПлана

    плана было больше количество, это уж точно

    dawgcha, 13 Января 2015

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

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    /*...тут много строк...*/
    if($arraySection[$section_id[$j]]=='0'){
    echo '';
    
    }
    else{ 
        echo ' 
            <li><a href="/'.$arraySection[$section_id[$j]].'">'.$arraySection[$section_id[$j]].'</a></li>
    ';}
    /*...тут много строк...*/

    Любитель else

    sms-system, 12 Января 2015

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

    −126

    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
    Если ЗаполненАдрес=0 Тогда
    	Если  ПустаяСтрока(Запрос.ЭлПочта)=0 Тогда
    		Продолжить;
    	Иначе
    		ТЗ.НоваяСтрока();
    		ТЗ.Код			= Запрос.Контрагенты.Код;
    		ТЗ.Контрагент 	= Запрос.Контрагенты.Наименование;
    		ТЗ.ЭлАдрес		= Запрос.ЭлПочта;
    	КонецЕсли;
    иначе
    	Если  ПустаяСтрока(Запрос.ЭлПочта)=1 Тогда
    		Продолжить;
    	Иначе
    		ТЗ.НоваяСтрока();
    		ТЗ.Код			= Запрос.Контрагенты.Код;
    		ТЗ.Контрагент 	= Запрос.Контрагенты.Наименование;
    		ТЗ.ЭлАдрес		= Запрос.ЭлПочта;
    	КонецЕсли;
    Конецесли;

    ЗаполненАдрес - это чекбокс.
    Если сократить код, то получится:

    Если ЗаполненАдрес<>ПустаяСтрока(Запрос.ЭлПоч та) Тогда
    ТЗ.НоваяСтрока();
    ТЗ.Код = Запрос.Контрагенты.Код;
    ТЗ.Контрагент = Запрос.Контрагенты.Наименование;
    ТЗ.ЭлАдрес = Запрос.ЭлПочта;
    КонецЕсли;

    noncode, 12 Января 2015

    Комментарии (9)
  11. Java / Говнокод #17420

    +73

    1. 1
    2. 2
    3. 3
    4. 4
    @Override public int hashCode()
        {
            return id.hashCode(); // id - Integer !!!
        }

    Хэшкод интегера

    sarvigalava, 08 Января 2015

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