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

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

    +119

    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
    public enum PageType
    {
        Default,
        Billing,
        UserCabinet
    }
    
    public PageType GetPageType(int code)
    {
         if(code == 1){return PageType.Default;}
         if(code == 2){return PageType.Billing;}
         if(code == 3){return PageType.UserCabinet;}
         return PageType.Default;
    }
    
    private int PageType
    {
        get
        {
                int page;
                Int32.TryParse(Request["page"], out page);
                return page;
        }
    }

    Думаю что объяснять тут ничего не нужно...

    Arnezami, 13 Января 2011

    Комментарии (1)
  3. Ruby / Говнокод #5250

    −104

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    def query(sql)
    		begin
    			@mysql.query(sql)
    		rescue StandardError => err
    			@log.error("Mysql query: '#{sql}\n#{err}'") if @log.class == LoggerHandler
    		end
    	end

    Говнообертка. LoggerHandler - класс, наследующийся от Logger.
    Говнонюанс в том, что Logger.error возвращает true/false в зависимости от того была ли запись в лог успешной, что приводит потом к ошибкам вида NoMethodError: undefined method `each' for true:TrueClass

    govnozmey, 12 Января 2011

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

    +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
    18. 18
    19. 19
    function db_query($sql)
    {
    	global $dbcnx;
    	$k=0;
    	while(!@$res=mysql_query($sql))
    	{
    		if($k>5)
    		{
    			$f=fopen(dirname(__FILE__).'/tmp/error.log','a');
    			fwrite($f,"\n".mysql_error().' in '.$sql."\n");
    			fclose($f);
    			die();
    		}
    		//@mysql_close($dbcnx);
    		//MysqlConnect();
    		$k++;
    	}
    	return $res;
    }

    govnozmey, 12 Января 2011

    Комментарии (1)
  5. Perl / Говнокод #5243

    −126

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if(syswrite($sock, $buf, length($buf)) > 0) {
         ...
    }
    else{
          # здесь автор считает что сокет сдох и закрывает его
           client_process_except($sock);
    }

    Но мы то с вами знаем что syswrite может вернуть 0
    (c) Руслан Залата

    SanityIO, 12 Января 2011

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

    +117

    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
    public class A
    {
        private int field;
        public int Field { get { return field; } }
    
        public void Foo()
        {
             B.CreateInstance().A.field = 4;
        }
    }
    
    public class B
    {
        private static _b = null;
        private A _a = new A();
        public A { get { return _a; } }
    
        private B() {}
        public static B CreateInstance()
        {
             if (_b == null)
             {
                  _b = new B();
             }
             return _b;
        }
    }

    Встретил сегодня. Не мог не поделиться. Кода там много, поэтому выписал суть. CreateInstance() - это реальное название метода.

    t36, 12 Января 2011

    Комментарии (1)
  7. Perl / Говнокод #5229

    −179

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (! $where_oper_id ) {                                                                                                                                                            
            $where_oper_id = " base_clients.oper_id = 'THERE IS NO FUCKING PROVIDERS DEFINED FOR THIS OPERATOR' " ;                                                                     
            $where_service_oper_id = " oper_id = 'THERE IS NO FUCKING PROVIDERS DEFINED FOR THIS OPERATOR' " ;                                                                          
    }                                                                                                                                                                                   
                                                                                                                                                                                        
    $where_oper_id = " ( $where_oper_id ) ";

    Еще от творца.

    SanityIO, 12 Января 2011

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

    +97

    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
    if MethodName = AnsiUpperCase('Зробити_все_чудово_пречудово') then
      begin
        Screen.Cursor := crHourGlass;
        try
          for LowIndex := 0 to 200 do
          begin
            Application.ProcessMessages;
            Sleep(10);
          end;
          ShowInfo('Тепер все чудово-пречудово.'#13#10'Посміхніться!');
        finally
          Screen.Cursor := crDefault;
        end;
      end

    Внутренний скрипотвый язык

    stokito, 12 Января 2011

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

    +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
    if(($res = GetMysqlRes("SELECT id,name,price,anons2,colors,sizes,anons,content2,content,maker,title FROM {$oCfg->prefX}core WHERE top=".$pid." and act=1 ORDER BY date DESC LIMIT ".($pnum-1)*$eop.",".$eop."",array($pid),false)) != false)
    {
    while (($row = $db->fetch_row($res)) !== false)
    		{
    
    	...<script type='text/javascript'>
    		function chs".$row[0]."() {
    			document.getElementById(\"s_size".$row[0]."\").innerHTML = document.getElementById(\"sel_size".$row[0]."\").value;
    		}
    		function chc".$row[0]."() {
    			document.getElementById(\"s_color".$row[0]."\").innerHTML = document.getElementById(\"sel_color".$row[0]."\").value;
    		}
    	</script>...
    
    }
    }

    это находилось в цикле. К этому же потом обращались для добавления в корзину товара.

    Три точки значат что там есть еще код.

    P.S. Опять же привет мазе.

    De-Luxis, 12 Января 2011

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

    −102

    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
    Private Sub DoIt()
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(1012, 373)
            LeftClick()
            
            System.Threading.Thread.Sleep(4000)
            SetCursorPos(526, 273)
            LeftClick()
            
            System.Threading.Thread.Sleep(2000)
            SetCursorPos(412, 330)
            LeftClick()
           
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(414, 503)
            LeftClick()
            
            System.Threading.Thread.Sleep(5000)
            SetCursorPos(659, 333)
            LeftClick()
           
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(622, 390)
            LeftClick()
            
            System.Threading.Thread.Sleep(7000)
            SetCursorPos(659, 333)
            LeftClick()
    
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(622, 390)
            LeftClick()
    
            System.Threading.Thread.Sleep(8000)
            SetCursorPos(659, 333)
            LeftClick()
    
            System.Threading.Thread.Sleep(2000)
            SetCursorPos(622, 390)
            LeftClick()
    
            System.Threading.Thread.Sleep(6000)
            SetCursorPos(659, 333)
            LeftClick()
    
            System.Threading.Thread.Sleep(3000)
            SetCursorPos(622, 390)
            LeftClick()
    
            System.Threading.Thread.Sleep(5000)
            SetCursorPos(660, 533)
            LeftClick()
        End Sub

    Мой древний код одного кликера. Обратите внимание на отличный способ таймаута между командами (а ведь у проги и GUI есть, как его так обновлять?) Как потом позже скажет один мой знакомый - "Время между командами - важно".

    RaZeR, 10 Января 2011

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

    +134

    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
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    void epilog()
    {  
    	fprintf(fvih,"\tINCLUDE\tstd.asm\n");
    	fprintf(fvih,"_KOM\tENDS\n");
    	fprintf(fvih,"_STEK\tSEGMENT USE16\tSTACK\n");
    	fprintf(fvih,"\tDW\t100 DUP (?)\n");
    	fprintf(fvih,"_DNOST\tDW\t?\n");
    	fprintf(fvih,"_STEK\tENDS\n");
    	if (kolglb > 0) {  
    		fprintf(fvih,"_DAN\tSEGMENT USE16\n");
    		for (i = 1; i <= kolglb; i++)
    			if (tabim[i].vidob == 1)      /* пеpеменная */
    				if (tabim[i].typ == int_t)
    					fprintf(fvih,"%s\tDW\t?\n",tabim[i].imja);
    				else
    					fprintf(fvih,"%s\tDD\t?\n",tabim[i].imja);
    		fprintf(fvih,"_DAN\tENDS\n");
    	}
    	if (est6_main)
    		fprintf(fvih,"\tEND\t_main\n");
    	else fprintf(fvih,"\tEND\n");
    	fprintf(fvih,";Компилятоp С0 от 9/10/92:\n;колич. ошибок %d\n",kolosh);	
    	printf("Компилятоp С0 от 9/10/92:\nколич. ошибок %d\n",kolosh);
    }
    
         /**********************************************/
         /*             Основная пpогpамма             */
         /**********************************************/
    int main(int agrc, char *argv[])
    {  
    	int i;
    	for (i=0; i<=255; i++) leksim[i]=osh;
    	leksim['+']=plus;  leksim['-']=minus;  leksim['*']=umn;
    	leksim['/']=del;   leksim['%']=ost;    leksim['=']=prisv;
    	leksim['<']=men;   leksim['>']=bol;    leksim['(']=lskob;
    	leksim[')']=pskob; leksim['{']=flskob; leksim['}']=fpskob;
    	leksim[',']=zpt;   leksim[';']=tchzpt; 
    
        /* множество начальных лексем выpажения */
    	nvir = st2[ident] | st2[chislo] | st2[minus] | st2[lskob];
    
    	/* мн-во нач-х лексем оп-pа */
    	noper = st2[flskob] | st2[ifsl] | st2[whilesl] | st2[retsl] | st2[tchzpt] | st2[dosl] | nvir; 
    	vhstr[0]=' '; 
    	vhstr[1]='\0'; 
    	usim = vhstr;kolglb =kolim =ef =	tipop =est6_main =kolosh =kmet =0;
    	is_leave_old = false;
    	fvh=fopen("C://p.c0","r");
    	//fvh=fopen(argv[1],"r");            /* откpыть входной файл  */
    	fvih=fopen("C://p.asm","w"); 
    	//fvih=fopen(argv[2],"w");          /* откpыть выходной файл */
    	if ((fvh == NULL) || (fvih == NULL))
    		oshibka(8);                      /*  файлы не откpылись */
    	else {
    		prolog();
    		while (!ef) {
    			chleks();
    			if (leksema == intsl) {              /* слово int        */
    				opisper(0); 
    				kolglb=kolim; 
    			}/*описание глоб-х пер-х*/
    			else if (leksema == longsl) {              /* слово int        */
    				opisper_long(0); 
    				kolglb=kolim; 
    			}/*описание глоб-х пер-х*/
    			else if (leksema == ident)      /* имя                 */
    				oprfun();                  /* опpеделение функции */
    			else if (!ef)    /* тpебуется опис-е пеp-х или ф-ции */
    				test(st2[intsl] | st2[ident],st2[pskob] | st2[tchzpt],3);
    		}
    		epilog();
    		fclose(fvh);
    	    fclose(fvih);
    	}
    	return 0;
    }

    qbasic, 07 Января 2011

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