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

    В номинации:
    За время:
  2. Куча / Говнокод #10229

    +121

    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
    minChunksSize=1000.0 -- 100.0
     
    facbig :: Integer -> Integer
    facbig n = 
            let 
                    divisionProportion = 0.9 -- 2.0/3.0
                    amountOfChunk = truncate $ logBase divisionProportion $ minChunksSize/fromIntegral n
                    proportions = map (divisionProportion^) [amountOfChunk, amountOfChunk-1 .. 1]
                    centralChunkResults = map product [
                            let
                                    begin = proportionToItemNumber 1 beginRangeProportion
                                    end = proportionToItemNumber 0 endRangeProportion
                            in
                            [begin..end] | (endRangeProportion, beginRangeProportion) <- zip proportions $ tail proportions ]
                    beginChunkResult = product [1 .. proportionToItemNumber 0 $ last proportions]
                    endChunkResult = product [proportionToItemNumber 1 $ head proportions .. n]
            in product $ beginChunkResult:endChunkResult:centralChunkResults
            where
                    proportionToItemNumber shift proportion =
                            shift + truncate ((1.0-proportion)*fromIntegral n)
     
    fac n = if n <= (truncate $ 3.0*minChunksSize)
            then product [1..n]
            else facbig n
     
    main = print $ length $ show $ fac 100000

    Вот так вот школота считают число цифр в факториале числа.

    HaskellGovno, 10 Мая 2012

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

    +70

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/compare.tpl')) {
    	$this->template = $this->config->get('config_template') . '/template/product/compare.tpl';
    } else {
    	$this->template = 'default/template/product/compare.tpl';
    }

    Спешите видеть в конце каждого контроллера OpenCart. Ох уж это MVC ради MVC...

    telnet, 08 Мая 2012

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    require( "./configuration.php" );
    include( "./include.php" );
    $returned = @( );
    if ( ( $returned ) != @( "harper" ) )

    cthulhu25, 07 Мая 2012

    Комментарии (7)
  5. Java / Говнокод #10211

    +86

    1. 1
    2. 2
    3. 3
    int createStageCycles = 0;
    createStageCycles = Integer.parseInt(strCycle);
    int nextVal = new Integer(createStageCycles) + 1;

    int двойного отжима

    zloizerg, 07 Мая 2012

    Комментарии (7)
  6. Python / Говнокод #10209

    −428

    1. 1
    2. 2
    3. 3
    4. 4
    url = request.get_full_path()
    if 'show_error' in url:
        show_param = url.split('?show_error=')
        error = show_param[1]

    Кусок кода из Django проекта
    Взяли индуса на работу. Вот так он достает GET параметры

    larikov, 07 Мая 2012

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

    +111

    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
    {$APPTYPE CONSOLE}
    {$R *.res}
    
    type
      TFTest = class
      public
        B: string;
        function Add(S: string = ''): TFTest;
        constructor Create(T: TFTest); overload;
      end;
    
    function TFTest.Add(S: string): TFTest;
    begin
      B := B + S;
      Exit(Self);
    end;
    
    var
      A: TFTest;
    
    constructor TFTest.Create(T: TFTest);
    begin
      B := T.B;
    end;
    
    begin
      writeln(TFTest.Create.Add('0')
        .Create((TFTest.Create(TFTest.Create(((((((TFTest.Create(TFTest.Create).Add('0')).Add('1').Create.Add('2')
        .Add as TObject).Create) as TFTest.ClassParent) as TFTest).Create).Add('3')).Add.Add('4').Create).Add('5')).Add('6')
        ).Add('7').B);
      readln;
    
    end.

    Кто правильно обьяснит этот код, получит... ничего получит :)

    ReckO, 05 Мая 2012

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

    +115

    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
    foreach (var sheet in paper.Decomposed)
    {
                    if (ct > 0 && sheet.Equals(paper.Decomposed[ct]))
                    {
                        paper.PaperPrice += paperPrice;
                        paper.PrintingPrice += printingPrice;
                        paper.PlatesPrice += platesPrice;
                        ct++;
                        continue;
                    }
                    ct++;
    ...
    }

    UniXoiD, 04 Мая 2012

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

    +86

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (bindingContext != null && files != null) {
     if (files != null && bindingContext != null) {
      // bla-bla
     }
    }

    I want to be sure!

    Art, 04 Мая 2012

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

    +72

    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
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    const 
    zn1 = #60; { < }   
    zn2 = #62; { > } 
    
    function EnCrypt(ds: string): string;
      var 
    k,l,m: string; 
    i,b,g: integer; 
    t: char;
       function Lvs(ds: byte): string;
       begin
        case ds of 
       Byte(zn1): Result:= zn1+zn2;
       Byte(zn2): Result:= zn2+zn1;
             0: if Random(2)=0 then  Result:= zn1+zn1 
                 else Result:= zn2+zn2;
               else 
                 Result:= Chr(ds);end;
       end;
      begin
       if length(ds)=0 then Exit; 
       Randomize;  k:=''; m:='';  b:=1;
     for i:=1 to RandomRange(5,16) do 
      k:= k+Chr(RandomRange(1,256));
       for i:=1 to Length(ds) do  begin 
    g:= Byte(ds[i])xor Byte(k[b]);
       l:= Lvs(g); t:= k[b];
    if i<= Length(k) then m:= m+t+l else m:=m+l;
    Inc(b);
       if b>Length(k) then b:= 1; 
      end; 
    l:= Chr(Length(k))+m;
       for  i:=1 to Length(l) do begin 
    b:= Byte(l[I]) xor i;k:= Lvs(b);
       Result:= Result+k; 
    end;
      end;
    
     function DeCrypt(ds: string): string;
      var 
    k,c,l,n: string; 
    i,b,m: integer; 
    d: boolean;
       function Svl(ds: string; ts: integer): char;
       var t: byte;
       begin
        t:=Byte(ds[1]);
        if ds=zn1+zn2 then t:=Byte(zn1);
        if ds=zn2+zn1 then t:=Byte(zn2);
        if(ds=zn1+zn1) or (ds=zn2+zn2) then t:= 0;
       Result:=Chr(Byte(t xor ts));
       end;
      begin
       if length(ds)=0 then Exit;
     b:=1; i:=1; n:='';
       while i<=Length(ds) do begin c:= ds[i];
       if (ds[i]=zn1)or(ds[i]=zn2)then begin 
    c:=ds[i]+ds[i+1]; Inc(i); end;
       Inc(i);
     n:= n+Svl(c,b); 
    Inc(b); 
    end; c:=''; k:=''; b:=1; i:=1; 
    d:=false;
    m:=Byte(n[1]); 
    Delete(n,1,1);
       while i<=Length(n)do begin 
    if b<=m*2 then begin if d then begin 
    l:=n[i];
      if (n[i]=zn1) or (n[i]=zn2) then 
    begin 
        l:= n[i]+n[i+1]; Inc(i); 
    end;
       c:=c+l; 
    Inc(b);
    d:=false; 
    end else 
    begin 
    k:=k+n[i]; d:=true; Inc(b); 
    end;
       end else begin 
    l:= n[i]; 
    if (n[i]=zn1) or (n[i]=zn2) then 
    begin   l:= n[i]+n[i+1]; Inc(i); end;  
    c:=c+l; end;
     Inc(i); end;
       if length(c)=0 then Exit;
    i:=1;b:=1; 
    while i<=Length(c)do begin 
    l:=c[i];
       if (c[i] = zn1) or (c[i] = zn2) then 
    begin 
    l:= c[i] + c[i+1]; Inc(i); 
    end;
       Inc(i);
    Result:= Result + Svl(l, Byte(k[b]));
    Inc(b);
    if b>Length(k)then b:=1;
       end;
      end;

    В очень далёком 99м году была совершена попытка шифровать и дешифровать пароли пользователей простым ХОР-замесом. Тогда такой способ казался идеальным и оригинальным :) Но посмотрите, если руки не оттуда откуда надо растут, как же можно извратиться, чистый говнокод! До сих пор им пользуюсь, немного. Интересно, ктонить догадается, зачем здесь константные знаки используются?

    Alegun, 27 Апреля 2012

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

    −15

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function _taxonomy_image_exists($tid) {
      if (db_fetch_object(db_query('SELECT path FROM {term_image} WHERE tid=%d', $tid))) {
        return TRUE;
      }
      return FALSE;
    }

    brainstorm, 22 Апреля 2012

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