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

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

    +75

    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
    private void configComponents(/* params */) throws MyException {
    	String err_msg = null;
    	try {
    		// some code here...
    		return;
    	} catch (ComponentConfigurationException e) {
    		err_msg = e.getMessage();
    	} catch (MyException e) {
    		err_msg = e.getMessage();
    	} catch (Exception e) {
    		err_msg = setupProcessErrorMessage;
    	}
    	throw new MyException(err_msg);
    }

    А rethrowing у нас уже не в почете. Правильно контрагаить ретурном из трай-секции и выбросом исключения, если трай-секция не дожила до ретурна.

    mdcool, 16 Марта 2011

    Комментарии (12)
  3. PHP / Говнокод #5918

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    foreach ($_REQUEST as $key => $value)
    		{
    			if (substr($key, 0, strlen("ORDER_PROP_"))=="ORDER_PROP_")
    				$arPropValsTmp[$key] = htmlspecialchars($value);
    		}

    Забавная проверка.. Из битрикса.

    revis0r, 07 Марта 2011

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function &_extract(&$array, $path) {
      $element = &$array;
      while(count($path)) {
        $key = array_shift($path);
        $element = &$element[$key];
      }
    
      return $element;
    }

    vectoroc, 05 Марта 2011

    Комментарии (12)
  5. Pascal / Говнокод #5829

    +96

    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
    procedure TForm1.RegHttpRedirect(Sender: TObject; var dest: String;
      var NumRedirect: Integer; var Handled: Boolean;
      var VMethod: TIdHTTPMethod);
    begin
    Log('Redirect № ' + IntToStr(NumRedirect)+ ' - '+ Dest ,  true, MainClr);
    end;
    
    procedure TForm1.HTTPCoreStatus(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: String);
    begin
    Log('Статус: '+ AStatusText, true, MainClr);
    end;
    
    {procedure TForm1.RegHttpW0rk(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
    begin
    
    end;}

    лошарский код

    megaruliz, 28 Февраля 2011

    Комментарии (12)
  6. PHP / Говнокод #5821

    +147

    1. 1
    2. 2
    3. 3
    if ($result and mysql_num_rows($result) > 0) {
       /*здесь код*/
    }

    бля..... ну это же php...

    Sulik78, 28 Февраля 2011

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

    +85

    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
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    // ComPort1: TComPort; компонент для работы RS-232
    type
     Tst5=string[5];
    var
      Form1: TForm1;
      lastcnl:byte;
      CommonShiftTT:integer;
      roundtt:integer;
      Start_Proces:boolean;
      intN,intdg0,intdg50:integer;
      cerr,cerr0,cerr50:integer;
      intdg:integer;
      cnl:integer;
      b:array [1..5]of byte;
      s,sdg50,sdg0,ss:Tst5;
      tt,realdg:real;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.ComPort1RxBuf(Sender: TObject; const Buffer;
      Count: Integer);
    var
      i:integer;
      p:pointer;
    begin
     for i:=1 to 5 do b[i]:=0;
     ListBox1.Items.clear;
     if ComPort1.Connected then begin
        p:=@Buffer;
        b[1]:=byte(p^);
      end
      else begin
        exit;
      end;
      cnl:=b[1];
      if cnl=0 then begin
        Start_Proces:=true;
      end;
      ListBox1.Items.Add(inttostr(cnl));
      if Start_Proces=true then begin
        b[2]:=Byte(pointer(longint(p)+1)^);
        b[3]:=Byte(pointer(longint(p)+2)^);
        b[4]:=Byte(pointer(longint(p)+3)^);
        b[5]:=Byte(pointer(longint(p)+4)^);
    
        if (b[2] and $20)>0 then ss[1]:='+' else ss[1]:='-';
        if (b[2] and $40)>0 then ss[2]:='0' else ss[2]:='1';
    
        FOR i:=3 TO 5 DO begin
        case b[i] of
              $82:ss[i]:='0';
              $CF:ss[i]:='1';
              $A4:ss[i]:='2';
              $85:ss[i]:='3';
              $C9:ss[i]:='4';
              $91:ss[i]:='5';
              $90:ss[i]:='6';
              $C7:ss[i]:='7';
         {min}$80:ss[i]:='8';
              $81:ss[i]:='9';
              $FF:ss[i]:='x'
            else ss[i]:=chr(b[i]);
        end;
        ss[0]:=#5;
    
        case cnl of
          0:begin
            vaL(ss,intdg0,cerr0);
            stR(intdg0,sdg0);
            Label1.Caption:=inttostr(intdg0);
          end;
          1:begin
            vaL(ss,intdg50,cerr50);
            stR(intdg50,sdg50);
            Label2.Caption:=inttostr(intdg50);
          end;
          2..26:begin
            vaL(ss,intN,cerr);
            intN:=intN-intdg0+CommonShiftTT;
            realdg:=intN/((intdg50-intdg0)/500);{real type}
            intdg:=SMALLINT(round(realdg));{integer type}
            tt:=intdg/10;
            roundtt:=SMALLINT(round(tt));{integer}
            stR(roundtt:5,s);
          end;
        end;
      end;
      ListBox1.Items.Add('float='+floattostr(tt));
      ListBox1.Items.Add(inttostr(cnl)+'='+ss+' = '+inttostr(roundtt));
     end;
    end;

    Процедура приема и обработки Кодов АЦП с контроллера. Контроллер обрабатывает данные полученные с температурных (аналоговых) датчиков и передает на COM в цифровом виде.
    Сделано для АКГУП Индустриальный г. Барнаул

    zak, 25 Февраля 2011

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

    +157

    1. 1
    if(!$model->sourse->access->firstname == 1)

    $model->sourse->access->firstname - либо 0, либо 1... Нужно просто иногда высыпаться :(

    VasyOk, 21 Февраля 2011

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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <?php
    //////////
    static function AddKeyDis($meta_key,$meta_dis=null){
    	   if(is_array($meta_key)){
                                   return self::$result=array("meta_key"=>$meta_key['meta_key'],"meta_dis"=>$meta_key['meta_dis']);
    	   }elseif($meta_dis!==null){
    	             return self::$result=array("meta_key"=>$meta_key,"meta_dis"=>$meta_dis);
    	   }
    	   return null;
       }
    //////////
    ?>

    эх =)

    Zho, 09 Февраля 2011

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

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ($this->Session->check('_userJustRegistered')) {
    	switch (($tmpJR = $this->Session->read('_userJustRegistered'))) {
    		case 'confirmed':
    			$this->Session->delete('_userJustRegistered');
    			break;
    		case 'not_confirmed_first':
    			$this->Session->write('_userJustRegistered', 'not_confirmed');
    			break;
    	}
    }

    Кусочек многоступенчатой системы по определению статуса юзера.

    quall, 08 Февраля 2011

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

    +180

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    ...
    #define EXT12 	//Не комментировать эту директиву. Иначе не работает.
    ...
    #define EXT34 	//Эта директива почти не используется. Может перерефакторим без неё?
    		//Ну убирай.
    		//Давай ты.
    		//Там есть пару мест, где она используется. Поэтому я не хочу.
    		//Но ведь нужно. Эти директивы можно заменить на полиморфизм классов.
    		//Ну займись. Я не хочу. Вдруг сломается.
    ...

    У нас 2 человека работают над одной веткой проекта на С++. Люди работают в отделах на разных этажах (один на этаж выше другого). Им лень сходить друг к другу или поговорить по жаберу. Я уже как полгода наблюдаю за картиной: они переговариваются через комментарии в коде через систему контроля версий. Я не против переговоров в системе контроля версий, но они уже месяц осбуждают EXT34, а так ничего с ним и не сделали. Хоть бы комментарии удалили, если делать ничего не собираюются. Может с них 0.125 премии снять?
    Как-нибудь ещё переговоры повеселее выложу.

    Говногость, 08 Февраля 2011

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