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

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

    +110

    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
    <!--
    			BEGIN RIDICULOUSLY LONG BATIK SECTION
    			
    			Do not touch. This is fragile stuff. Seriously.
    			
    			Batik just *wants* to pull xalan and xml-apis, *everywhere*,
    			even though we do not want this. And Ivy isn't clever enough
    			to ignore the dependencies everywhere.
    			
    			In an ideal world we would just explicitly depend on batik-swing
    			and batik-transcoder and be done with it. Instead we have to do
    			this atrocity. Apache, take a hint, would you kindly?
    		-->
    		<dependency org="org.apache.xmlgraphics" name="batik-xml" rev="[1.7,)">
    			<exclude org="xalan" module="xalan" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-ext" rev="[1.7,)">
    			<exclude org="xml-apis" module="xml-apis" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-css" rev="[1.7,)">
    			<exclude org="xml-apis" module="xml-apis" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-dom" rev="[1.7,)">
    			<exclude org="xml-apis" module="xml-apis" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-parser" rev="[1.7,)">
    			<exclude org="xml-apis" module="xml-apis" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-anim" rev="[1.7,)">
    			<exclude org="org.apache.xmlgraphics" module="batik-svg-dom" />
    			<exclude org="xml-apis" module="xml-apis" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-svg-dom" rev="[1.7,)">
    			<exclude org="xml-apis" module="xml-apis" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-bridge" rev="[1.7,)">
    			<exclude org="org.apache.xmlgraphics" module="batik-script" />
    			<exclude org="org.apache.xmlgraphics" module="batik-gvt" />
    			<exclude org="xml-apis" module="xml-apis" />
    			<exclude org="xalan" module="xalan" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-gvt" rev="[1.7,)">
    			<exclude org="org.apache.xmlgraphics" module="batik-script" />
    			<exclude org="xml-apis" module="xml-apis" />
    			<exclude org="xalan" module="xalan" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-gui-util" rev="[1.7,)">
    			<exclude org="xalan" module="xalan" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-script" rev="[1.7,)">
    			<exclude org="xalan" module="xalan" />
    		</dependency>
    		<dependency org="org.apache.xmlgraphics" name="batik-swing" rev="[1.7,)" />
    		<dependency org="org.apache.xmlgraphics" name="batik-transcoder" rev="[1.7,)" />
    		<!-- END BATIK SECTION -->

    Из ivy.xml.

    someone, 22 Февраля 2012

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

    +110

    1. 1
    if (TryRemoveF(-foodToAdd)) return true; else return false;

    Накодил ночью на свою голову, называется.

    RaZeR, 21 Января 2012

    Комментарии (2)
  4. C# / Говнокод #9110

    +110

    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
    public partial class ProductForm : Form
        {
            private delegate bool ProductManipulation();
    
            private static ProductManipulation pmd;
    
            public ProductForm()
            {
                InitializeComponent();
                this.FormClosing += this.ProductForm_Closing;
                ProductsLB.DoubleClick += this.ChangeBtn_Click;
                ProductsLB.Click += this.LoadProductKey;
    
                pmd = LoadDataToLB;
                pmd();
            }
    
    ...
    
            private void AddBtn_Click(object sender, EventArgs e)
            {
                pmd -= LoadDataToLB;
                pmd += AddProduct + pmd;
                pmd += LoadDataToLB;
                pmd(); 
                pmd -= AddProduct;
            }
    
    ...

    Обильное делегирование

    Ekstrem, 13 Января 2012

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

    +110

    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
    switch (x)
    if (z == 5)
    {
        case 10:
            y = 1;
    }
    else
    {
        case 11:
            if (z > 10)
                y = 2;
            else
            {
                default:
                    y = 3;
            }
    }

    Недавно показали вот такой вот switch.
    Первое, что пришло в голову: "wtf?! это ведь даже не скомпилится".
    Я оказался не прав.

    govnopetya, 02 Ноября 2011

    Комментарии (72)
  6. Pascal / Говнокод #7101

    +110

    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
    unit HRTimer;
     
    interface
     
    uses Windows;
     
    type
      // --------------------- Класс - высокоточный таймер -------------------------
      THRTimer = class(TObject)
        constructor Create;
        function StartTimer: Boolean; // Обнуление таймера
        function ReadTimer: Double;   // Чтение значения таймера в миллисекундах
      private
        StartTime: Double;
        ClockRate: Double;
      public
        Exists: Boolean;    // Флаг успешного создания таймера
      end;
     
    var
      Timer: THRTimer; // Глобальая переменная. Создаётся при запуске программы
     
    { Фукнция высокоточной задержки.
     Delphi:
       Синтаксис: function HRDelay(const Milliseconds: Double): Double;
       Milliseconds: Double - задержка в миллисекундах (может быть дробной)
       Результат функции - фактически произошедшая задержка с погрешностью.
       Пример вызова функции: X:= HRDelay(100.0); или HRDelay(100.0);
     
     C++Builder:
       Синтаксис: double HRDelay(const double Milliseconds);
       Double Milliseconds - задержка в миллисекундах (может быть дробной)
       Результат функции - фактически произошедшая задержка с погрешностью.
       Пример вызова функции: double X = HRDelay(100.0); или HRDelay(100.0);}
    function HRDelay(const Milliseconds: Double): Double;
     
    implementation
     
    function HRDelay(const Milliseconds: Double): Double;
    begin
      Timer.StartTimer();
      repeat
        Result:= Timer.ReadTimer();
      until Result >= Milliseconds;
    end;
     
    { THRTimer }
     
    constructor THRTimer.Create;
    var
      QW: LARGE_INTEGER;
    begin
      inherited Create;
      Exists := QueryPerformanceFrequency(Int64(QW));
      ClockRate := QW.QuadPart;
    end;
     
    function THRTimer.StartTimer: Boolean;
    var
      QW: LARGE_INTEGER;
    begin
      Result := QueryPerformanceCounter(Int64(QW));
      StartTime := QW.QuadPart;
    end;
     
    function THRTimer.ReadTimer: Double;
    var
      ET: LARGE_INTEGER;
    begin
      QueryPerformanceCounter(Int64(ET));
      Result := 1000.0 * (ET.QuadPart - StartTime) / ClockRate;
    end;
     
    initialization
      Timer:= THRTimer.Create();
     
    finalization
      Timer.Free();
     
    end.

    классический шайзберг посреди майских роз (ну почти розы)

    bugmenot, 29 Июня 2011

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

    +110

    1. 1
    2. 2
    3. 3
    DataModule1.QueryPlayers.Close; 
    DataModule1.QueryPlayers.SQL.Text:='select fp_id, fp_familiya, fp_imya, fp_otchestvo, FP_DATE_ZAKLUCHENIYA_CONTRAKTA, FP_DATE_OKONCHANIYA_CONTRAKTA,FP_OKLAD,fp_amplua,amp_nazvanie from football_player f,amplua a where f.fp_amplua=a.amp_id and f.fp_familiya like "'+ str+'%"'; 
    DataModule1.QueryPlayers.Open;

    Девушка, работа с базой.

    bloodye, 31 Мая 2011

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

    +110

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    DirName:=OpenDialog1.FileName;
        i:=Length(Dirname);
        While (i>0) and(Dirname[i]<>'\') do
        begin
          i:=i-1;
        end;
        If Dirname[i]='\' then Dirname:=Copy(Dirname,1,i-1);
        Edit1.Text:=DirName;

    Для определения директории, выбирается в ней файл, абсолютный путь к которому вырезается до первого найденного слеша

    replay, 10 Апреля 2011

    Комментарии (27)
  9. Pascal / Говнокод #5642

    +110

    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
    procedure TMainForm.ApplicationEventsShortCut(var Msg: TWMKey;
      var Handled: Boolean);
    begin
      if msg.CharCode <> vk_F11 then
        exit;
      raise Exception.Create('Вы хотите выйти из программы?');
    end;
    
    procedure TMainForm.ApplicationEventsException(Sender: TObject;
      E: Exception);
    begin
      if Application.MessageBox(pchar('Произошла ошибка:'#13#10 + e.Message
        +
        #13#10'Нажмите Retry продолжить работу c программой.'#13#10'Нажмите Сancel чтобы завершить работу программы.'),
        'Ошибка', MB_RETRYCANCEL or MB_ICONINFORMATION or MB_SYSTEMMODAL) =
        ID_CANCEL then try
        MainData.MainDataBaseBeforeDisconnect(nil);
        Close;
      finally
        Application.Terminate;
      end;
      if not CaptureError(E) then
        Close;
    end;

    предыдущий автор одного проекта таким вот нетривиальным образом сделал подтверждение выхода из программы. так понравилось, что не стал убивать, просто закомментарил. сейчас весть этот код заменен одной строчкой в OnCloseQuery.

    поясню, на всякий случай. по нажатию F11 поднимается эспепшен "Вы хотите выйти из программы?", этот экспепшен перехватывается на уровне TApplication, выводится сообщение "Произошла ошибка: "Вы хотите выйти из программы?"" с педалями "Retry" и "Cancel", и при нажатии на отмену прога тупо рубиться по Application.Terminate.

    непростое детство было у песателя, по ходу.

    x77, 11 Февраля 2011

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

    +110

    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
    protected void Page_Load(object sender, EventArgs e)
            {
                Common.CheckAuthorization(Response, Session);     
    
                string uniqueID = Request["__EVENTTARGET"];
                if (uniqueID != null)
                {
                    UpdatePanel.ContentTemplateContainer.Controls.Clear();
                    string controlPath;
                    Control control = GetViewControlOnEvent(uniqueID, out controlPath);
    
                    if (control != null)
                    {
                        UpdatePanel.ContentTemplateContainer.Controls.Add(control);
                        Helpers.SetKeyInSession(Common.CATALOG_KEYS.CONTROL_PATH, controlPath, Session);
                    }
                    else
                    {
                        UpdatePanel.ContentTemplateContainer.Controls.Add(
                            GetViewControlOnSession());
                    }
                }
                else
                {
                    if (ControlParam == null)
                        Helpers.SetKeyInSession(Common.CATALOG_KEYS.CONTROL_PATH, Common.PATHS.USER_CONTROLS.MAIN_CONTROL, Session);   
    
                    UpdatePanel.ContentTemplateContainer.Controls.Add(
                        GetViewControlOnSession());
                }
                TreeViewState.SaveTreeView(treeCatalogs, this.GetType().ToString());
    
                this.PreRender += OnPreRender;
            }

    Nigma143, 22 Декабря 2010

    Комментарии (1)
  11. 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)