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

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

    −167

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

    Lowezar, 19 Января 2015

    Комментарии (9)
  3. Си / Говнокод #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)
  4. 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)
  5. 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)
  6. 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)
  7. Java / Говнокод #17420

    +73

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

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

    sarvigalava, 08 Января 2015

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

    +71

    1. 1
    newMatrix.setElement(newMatrix.getElement(i, j) + getElement(i, k) * matrix.getElement(k, j), i, j);

    Профессиональный говнокод.

    jangolare, 04 Января 2015

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

    +141

    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
    date = j / 86400l;
    t = j - (date * 86400l);
    date += 731000ul;
    y = (4 * date - 1) / 146097;
    d = (4 * date - 1 - 146097 * y) / 4;
    date = (4 * d + 3) / 1461;
    d = (4 * d + 7 - 1461 * date) / 4;
    m = (5 * d - 3) / 153;
    d = (5 * d + 2 - 153 * m) / 5;
    y = 100 * y + date;
    if (m < 10) {
        m += 3;
    } else {
        m -= 9;
        y++;
    }

    Voodoo magic...

    bormand, 26 Декабря 2014

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

    −124

    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
    //часть текста запроса
                                   |ИЗ
    		               |	ЭтапыОплатыИсходник КАК ЭтапыОплаты
    		       		   |//ТекстОтбора
    		               |{ГДЕ
    .................
    
    		//Добавляем поля если используется отбор
    		ТекстОтбора="ГДЕ ";
    		ТекстОтбора=ТекстОтбора+" ИСТИНА";		
    		НомерПеременнойОтбора=1;
    		Для каждого  СтрокаТекущегоОтбора Из ПостроительОтчета.Отбор Цикл
    
    			if НЕ СтрокаТекущегоОтбора.Использование then
    				continue;
    			endif;
    
    			СложноеИмяПоля=ПолучитьИмяПоляБезТочек(СтрокаТекущегоОтбора.ПутьКДанным);
    			Если  ПостроительОтчета.Отбор.Найти(СложноеИмяПоля)=Неопределено Тогда
    				Если СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Больше Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" > &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.БольшеИлиРавно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" >= &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВИерархии или 
    					СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВСписке или 
    					СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВСпискеПоИерархии Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В (&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.ВИерархии Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В ИЕРАРХИИ(&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Меньше Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" < &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.МеньшеИлиРавно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" <= &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВСписке или 
    					СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВСпискеПоИерархии Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И НЕ "+"ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В (&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеВИерархии  Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И НЕ "+"ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" В ИЕРАРХИИ(&ПеременнаяОтбора"+НомерПеременнойОтбора+")";	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.НеРавно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" <> &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				ИначеЕсли СтрокаТекущегоОтбора.ВидСравнения=ВидСравнения.Равно Тогда
    					ТекстОтбора=ТекстОтбора+Символы.ПС+" И ЭтапыОплаты."+СтрокаТекущегоОтбора.ПутьКДанным+" = &ПеременнаяОтбора"+НомерПеременнойОтбора;	
    					Запрос.УстановитьПараметр("ПеременнаяОтбора"+НомерПеременнойОтбора,СтрокаТекущегоОтбора.Значение);
    					НомерПеременнойОтбора=НомерПеременнойОтбора+1
    				КонецЕсли; 
    			КонецЕсли; 
    		КонецЦикла; 
    
    		Если НомерПеременнойОтбора>1 Тогда
    			Запрос.Текст=СтрЗаменить(Запрос.Текст,"//ТекстОтбора",ТекстОтбора);
    		КонецЕсли;

    При этом при всем, в отчете используется 2 построителя ( на одном не смог построить , одного видимо было было мало для стратегии заложенной в голове:) ) + между ними используется куча запросов , в которых выгружаются таблицы (РезультатЗапроса.Выполнить().Выгрузить( )) и передаются в следующие запросы как параметры.
    От себя добавлю: Добавлял элементарные вещи, чтобы вывести пару дополнительных колонок - убить 1 час , тоже самое, что ничего не сделать..... Да и к тому же отчет рисуется через "ТабДок.Присоеденить".

    Ba_Ka, 22 Декабря 2014

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

    +78

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public static void create(String title, int width, int height) {
            if (isWindowCreated())
                throw new RuntimeException("Window created.");
            if (title == null)
                throw new NullPointerException("Window title == null.");
            if (width <= 0 || height <= 0)
                throw new IllegalArgumentException("Window size <= 0.");
            if ((window = GLFW.glfwCreateWindow(width, height, title, MemoryUtil.NULL, MemoryUtil.NULL)) == MemoryUtil.NULL)
                throw new RuntimeException("Failed to create the GLFW window.");
        }

    jangolare, 20 Декабря 2014

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