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

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

    +964

    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
    using System;
    using System.Reflection;
    using System.Reflection.Emit;
    
    namespace DynUnloop
    { // Суммирование в цикле
      class SumLooping
      { public int Summ(int valMax)
        { int result = 0;
          for (int i = 0; i <= valMax; i++)
            result += i;
          return result;
        }
      }
    
      // Плоское суммирование
      class SumFlat
      { interface ISumCode
        { int ComputeSumm(int valMax);
        }
        void WriteCode(int valMax)
        { AssemblyName assemblyName = new AssemblyName();
          assemblyName.Name = "SumFlatAssembly";
    
          AssemblyBuilder assemblyBuilder = 
            AppDomain.CurrentDomain.DefineDynamicAssembly(
            assemblyName, AssemblyBuilderAccess.Run);
    
          ModuleBuilder moduleBuilder = 
            assemblyBuilder.DefineDynamicModule("SumFlatModule");
    
          TypeBuilder typeBuilder = 
            moduleBuilder.DefineType("SumFlatClass"
                        , TypeAttributes.Public);
    
          typeBuilder.AddInterfaceImplementation(typeof(ISumCode));
    
          /// Задаём возвращаемое зачение и параметр
          Type[] paramTypes = { typeof(int) };
          Type   returnType = typeof(int);
    
          MethodBuilder methodBuilder = 
            typeBuilder.DefineMethod("ComputeSumm"
              , MethodAttributes.Public 
              | MethodAttributes.Virtual
              , returnType, paramTypes);
    
          ILGenerator il = methodBuilder.GetILGenerator();
    
          // Генерируем плоский код.
          il.Emit(OpCodes.Ldc_I4, 0);
          for (int i = 1; i <= valMax; i++)
          { il.Emit(OpCodes.Ldc_I4, i);
            il.Emit(OpCodes.Add);
          }
          il.Emit(OpCodes.Ret);
    
          // Перекрываем метод ComputeSumm и создаём тип SumFlatClass.
          MethodInfo methodInfo = 
                     typeof(ISumCode).GetMethod("ComputeSumm");
          typeBuilder.DefineMethodOverride(methodBuilder, methodInfo);
          typeBuilder.CreateType();
    
          /// Код готов, создаём объект и берем его интерфейс.
          code = (ISumCode)assemblyBuilder.CreateInstance("SumFlatClass");
        }
    
        public int Summ(int val)
        { if (this.code == null)
            WriteCode(val);
          return this.code.ComputeSumm(val);
        }
    
        ISumCode code;
      }

    Оригинальный стиль кода и комментарии сохранёны. (с), или как там.
    В коде - разворачивание цикла в "плоский" IL код, который, как доказывается должен выигрывать по производительности.

    Elvenfighter, 13 Сентября 2011

    Комментарии (47)
  3. Java / Говнокод #6946

    +85

    1. 1
    String methodName = (new Exception()).getStackTrace()[1].getMethodName();

    Вот как надо получать имя метода. Это вам не __func__ ...

    roman-kashitsyn, 14 Июня 2011

    Комментарии (47)
  4. bash / Говнокод #6437

    −118

    1. 1
    2. 2
    xxx: Знакомый попал в дтп, спорная ситуация, отдал гайцам флешку из регистратора, опечатали в конверт.
    xxx: Гайцы внимательно изучили - признали невиновность по ДТП, и за одно наштрафовали на много тысяч по 4 случаям записанным на флешке и в конце концов лишили прав за встречку, записанную в начале дня.

    fuckyounoob, 21 Апреля 2011

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

    +107

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    procedure proc(a, b: integer);
    begin
    end;
    
    proc(1, 2,); // лишняя запятая после 2  !!!!11

    на Delphi7 компилится и работает!!! Я в шокенах, 8 лет на Делфи и не знал...

    StriderMan, 14 Февраля 2011

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

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $src = fopen("0.txt", 'r');
    while(!feof($src))
    {
            $line[] = fgets($src);
            $line++;
    }

    Интересно чему в конце будет равно $line? :)

    Xander_Bass, 17 Декабря 2010

    Комментарии (47)
  7. Си / Говнокод #4713

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /*----------------------------------------------------------------------------*/
    double XzMinSec( double XBOCT, unsigned int OKP){ /*Gr(Ch).dG(dC)->Gr(Ch)MS.dS*/
    signed int  min,  xz = XBOCT; XBOCT-=xz; min=60*XBOCT;  XBOCT=(XBOCT*60-min)*60;
    if (XBOCT>=59.5) { unsigned char teg[32]; double n =  pow(10,OKP) * (XBOCT-min);
    signed int z=n;n-=z; if(n>=0.5||n<=-0.5){ signed int x,y=0; sprintf(teg,"%d",z);
    while(teg[y]!='\0') y++;  z=1; for( x=0; x<OKP; x++ )  if ( teg[--y]!='9' ) z=0;
    if(z==1) if(abs(min)==59) if(min<0) XBOCT=-4100; else XBOCT=4100; else if(min<0)
    XBOCT=-100; else XBOCT=100; }}     return  xz * 10000  +  min * 100  +  XBOCT; }
    /*----------------------------------------------------------------------------*/

    гм... работает...

    BeardRED, 22 Ноября 2010

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    switch ($mode) {
                default:
                <не интересный код пропущен>
                break;
    }

    Догайтесь с какого это проекта?

    Я бы не запостил, если бы не увидел на хабре сообщение от некоторого striker_vlad:
    "буду рад, если найдете там что-то, что можно будет напостить на сам сайт ;)"

    Oleg_quadro, 13 Ноября 2010

    Комментарии (47)
  9. bash / Говнокод #3601

    −132

    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
    #!/bin/sh
    
    # ...
    
    # translate args from unix path to windows, if possible (eterbug #4933)
    args_to_winpath()
    {
        for i in "$@" ; do
            local TP="$i"
            local TR=${i/\~/$HOME}
            if [ -r "$TR" ] ; then
                WP=$(winepath -w "$TR" 2>/dev/null)
                [ -z "$WP" ] || TP="$WP"
            fi
            echo "$TP"
        done
    }
    
    # ...
    
    run_wine $(args_to_winpath "$@")

    Это WINE@Etersoft. Люди пытались преобразовать системные пути в командной строке во внутренние вайновские. В результате из C:\Program Files больше ничего не запускается.

    raorn, 30 Июня 2010

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

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    //reversed for sorting
        inline bool operator< (const Weight & other) const {
            return (GetValue() > other.GetValue());
        };

    ton4eg, 25 Июня 2010

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    bool GenerateException(int Code)
    {
       assert(false);
       return false;            //WTF???       Нужно перерефакторить.
    };

    Ещё одно проектное решение...

    Говногость, 13 Июня 2010

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