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

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

    +171

    1. 1
    echo eval($myrow_res['text']);

    Выкакыш.

    Uchkuma, 26 Ноября 2010

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

    +110

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    protected static string CreateSubIndexName(string prefix, int index) {
                return String.Format(CultureInfo.InvariantCulture, "{0}[{1}]", prefix, index);
            }
    
            protected static string CreateSubIndexName(string prefix, string index) {
                return String.Format(CultureInfo.InvariantCulture, "{0}[{1}]", prefix, index);
            }

    Из исходников ASP.NET MVC 2. Класс DefaultModelBinder.
    Рядышком друг за другом два метода с совершенно одинаковым содержимым.
    Наш девиз: дублирование кода, умещающегося в одну строчку, за дублирование не считается.

    Pauchok-Anaynckiy, 24 Ноября 2010

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

    +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
    int CheckError( TStatusMessage* ctrl )
    {
    	if( !ctrl ) return 1;
    
    	if(ctrl->request>40) return 1;
    	if(ctrl->prm.radiation!=ctrl->prm.aradiation) return 1;
    	if(ctrl->prm.pulse!=ctrl->prm.apulse) return 1;
    	if(ctrl->prm.frequency!=ctrl->prm.afrequency)
    	{
    		if( (ctrl->prm.frequency&2) != (ctrl->prm.afrequency&2) )
    		{
    			return 1;		
    		}
    	} 
    	if(ctrl->prm.autotune==ctrl->prm.aautotune) return 1;
    	if(ctrl->prm.antenna==ctrl->prm.aantenna) return 1;
    	if(ctrl->prm.blanking!=ctrl->prm.ablanking) return 1;
    	if(ctrl->prm.vob!=ctrl->prm.avob) return 1;
    
    	return 0;
    }

    Проверка на наличие ошибки.

    absolut, 22 Ноября 2010

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

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    FILE *ConfigFile = NULL;
    char *workdir = NULL;
    workdir=getenv("APP_WORKDIR");
    if ((NULL!=workdir) && (NULL != (ConfigFile = fopen(strcat(workdir,"appname/config.xml"), "r"))))
    {
       fclose(ConfigFile);
       workdir[strlen(workdir)-10] = '\0';
       setenv("APP_RESOURCE_DIR", workdir , 1);
    }

    вот так нужно указывать крутой библиотеке, любимому и незаменимому детищу нашего R&D, читать файл из другой директории.

    и вот такое было закопипащено в 4 приложений....

    Dummy00001, 19 Ноября 2010

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for( int b = 0; b < cntblocket; ++b )
    {
        delete msrLst[b]->record;
        delete msrLst[b]->record;
    }

    Сразу вспоминается: "- А зачем у вас тут два одинаковых jump'а стоять? - А вдруг один не сработает?"

    Видимо, совсем не выспался программист ;)

    ftptrash, 13 Ноября 2010

    Комментарии (11)
  7. Pascal / Говнокод #4566

    +95

    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
    program z1;
    
     function func (x: real): real;
     const e = 0.000000000000001; {15 знаков после запятой}
     var f: real; {переменая для расчета двойного факториала}
         i, k: integer; {счетчик проходов, i-общий, k-частный}
         d: real; {добавляемая дельта}
         y: real; {переменная искомого значения}
     begin
      y := 1.0;
      i := 1;
      repeat
        f := 1;                 {----------}
        k := i;                 {--расчет--}
        while (k >= 2) do begin {-двойного-}
          f := f * k;           {факториала}
          k := k - 2;           {----------}
        end;                    {----------}
        
        d := 1;                 {---------------------}
        for k := 1 to i do      {считаем степень числа}
          d := d * x;           {---------------------}
        
        d := d / f;             {-----------------находим d-----------------}
        if (d < e) then break;  {проверяем ее на попадание в разрядную сетку}
        
        y := y + d;
        i := i + 1;
      until (false);
      func := y;
     end;
     
    var x: real;
     
    begin
      write ('Введите x: ');
      readln (x);
      writeln ('y = ', func (x):3:15);
    end.

    maksim_ovcharik, 09 Ноября 2010

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

    +127

    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
    public static int[] filtrs;
            public string filtrStr;
            public double ProizvDO;
            public double ProizvOT;
            public double SprosDO;
            public double SprosOT;
            public double StXranDO;
            public double StXranOT;
            public double WtrafDO;
            public double WtrafOT;
    
             public double OtDo
            {
                get
                {
                    return ProizvOT;
                    return ProizvDO;
                    return SprosOT;
                    return SprosDO;
                    return StXranOT;
                    return StXranDO;
                    return WtrafOT;
                    return WtrafDO;
                }
             }

    Да, это лаба какого-то студента. Но тем не менее смешно.
    P.S. Взято с www.cyberforum.ru

    psina-from-ua, 30 Октября 2010

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

    +161

    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
    /* Fade-In Page script ©2008 John Davenport Scheuer
       As first seen in http://www.dynamicdrive.com/forums/
       username:jscheuer1 - This credit must remain for legal use.
       */
     
    fadeInPage.speed=15; //Set speed of transition for non-IE, lower numbers are faster, 20 is the minimum safe value
    fadeInPage.bg='#000'; //Set backgroud style (color or color and image) of transition division for non-IE, should match page background or the predominant color of the page
     
    ///////////////// Stop Editing /////////////////
     
    function fadeInPage(){
    var el=document.getElementById("fadeDiv");
    el.style[fadeInPage.prprt] = el.style[fadeInPage.prprt] == ''? 1 : el.style[fadeInPage.prprt];
    if (el.style[fadeInPage.prprt] > 0){
    el.style[fadeInPage.prprt] = el.style[fadeInPage.prprt] - 0.02;
    setTimeout("fadeInPage()", fadeInPage.speed);
    }
    else {
    el.style[fadeInPage.prprt] = 0;
    if(document.removeChild)
    el.parentNode.removeChild(el);
    }
    }
    if(document.documentElement&&document.documentElement.style){
    fadeInPage.d=document.documentElement, fadeInPage.t=function(o){return typeof fadeInPage.d.style[o]=='string'};
    fadeInPage.prprt=fadeInPage.t('opacity')? 'opacity' : fadeInPage.t('MozOpacity')? 'MozOpacity' : fadeInPage.t('KhtmlOpacity')? 'KhtmlOpacity' : null;
    }
    fadeInPage.set=function(){
    var prop=fadeInPage.prprt=='opacity'? 'opacity' : fadeInPage.prprt=='MozOpacity'? '-moz-opacity' : '-khtml-opacity';
    document.write('\n<style type="text/css">\n#fadeDiv {\nheight:'+window.innerHeight+'px;display:block;position:fixed;'+
    'z-index:10000;top:0;left:0;background:'+fadeInPage.bg+';width:100%;\n'+ prop +':1;\n}\n<\/style>\n');
    }
    if(window.addEventListener&&fadeInPage.prprt){
    fadeInPage.set();
    window.addEventListener('load', fadeInPage, false);
    }

    Зашел я на сайт родного биллинга. Не работает. Смотрю - остался слой от fade-in (нахрена он в биллинге).
    Открыл исходники сайта и увидел там ЭТО.
    Отступы авторские. Очень радует "document.write('\n<style" в цикле.

    m1el, 29 Октября 2010

    Комментарии (11)
  10. VisualBasic / Говнокод #4474

    −84

    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
    If Not CheckX Then Goto 1
        For i = 0 to USecX
    	Goto 2
    1:
        For i2 = 0 to USecY
    2:
      	...
    	If CheckX Then Goto 3
        Next
        If Not CheckX then Goto 4
    3:
        Next
    4:

    Как-то потребовалось выполнить немалый участок кода, но в двух разных случаях нужно было использовать два разных фора. В отдельную процедуру было очень неудобно выносить (пришлось бы передавать слишком много переменных), так что пришлось сделать этот... свичджампинг форов :)

    DragDen, 28 Октября 2010

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

    +163

    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
    LPBYTE OUTBUFF = NULL;
    	DWORD BUFFSIZE = 0;
    ...
    		int pgp_res = m_pgp.EncodeBuff2Buff(
    			( LPCVOID ) ( LPCTSTR ) post_data.c_str(),
    			( DWORD ) post_data.length(),
    			OUTBUFF,
    			BUFFSIZE,
    			( LPCTSTR ) query_mts_cfg().query_crypto_public_key().c_str() ); 
    ...
    			std::string s;
    			// мы будем рассматривать буфер как строку, а PGPEncode
    			// естественно не ограничивает буфер нулевым
    			// символом, поэтому строку из буфера надо
    			// ограничивать насильно
    			s = std::string( ( char* ) OUTBUFF );
    			s = s.substr( 0, BUFFSIZE );

    1) Проблема проявилась после 5 лет боевой эксплуатации.
    2) Все загодногожено было именно так. Т.е. автор понимал \0, сделал что-то, но все равно с ошибкой.

    bsivko, 28 Октября 2010

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