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

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

    +7

    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
    class Buffer
        {
            StringBuilder buffer = new StringBuilder("", 55);
    
            public void append(String symbol)
            {
                if (buffer.Length > 50)
                    writeToLog();
    
                buffer.Append(symbol);
            }
            
            public void removeLast()
            {
                if (buffer.Length == 0)
                    return;
    
                buffer.Length--;
            }
    
            private void writeToLog()
            {
                keylogFile.write(buffer.ToString());
    
                buffer.Clear();
    
                GC.Collect();
            }
        }

    Выдавил класс буфера для записи в лог с кейлоггера , так как нужно учитывать [backspace].
    Туда передаются строки по 1 символу , так вот если убрать в конце GC.Collect(); начинает течь память ,
    по 100кб где то в минуту при быстром наборе текста ,причем сама она уже потом не освобождается .

    Не могу понять, чем это может быть вызвано.С GC.Collect(); все отлично .

    partizanes, 25 Июля 2016

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

    +942

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public static class IntExtension
        {
            public static int NotMoreThan(this int i, int thanWhat){
                return i < thanWhat ? thanWhat : i;
            }
        }

    непонятно что

    tjmaster, 06 Мая 2015

    Комментарии (70)
  4. Pascal / Говнокод #17759

    +94

    1. 1
    2. 2
    SetLength(kokoko, Length(kokoko)+1);
    kokoko[Length(kokoko)-1] := Something;

    БЕСИТ

    TarasB, 10 Марта 2015

    Комментарии (70)
  5. PHP / Говнокод #16269

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    class WP_Post {
    	public static function get_instance( $post_id ) {
    		...
            }
    	public function __construct( $post ) {
    		foreach ( get_object_vars( $post ) as $key => $value )
    			$this->$key = $value;
    	}

    Вордпресс 3.9.1. Создать объект можно только из объекта. Ну или передав айдишник записи (что само по себе еще логично), но называется эта хуйня почему-то get_instance(), словно это синглтон.

    Fike, 02 Июля 2014

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

    +137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public class Entity
    {
        // пример
        private DateTime _modified = new DateTime(2014, 4, 18, 23, 59, 59);
    
      public void SaveModified()
      {
                var date = DateTime.Parce(this._datetime.ToShortDateString());
                base.Save(date, ... );
      }
    }

    Продолжение проекта http://govnokod.ru/15780

    Насколько я понял, то это "операция усечения даты" 8-D
    которая должна была выглядеть так:
    var date = this._datetime.Date;

    CodeKiller, 19 Апреля 2014

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

    +14

    1. 1
    2. 2
    struct Ziga : std::exception {};
    throw Ziga();

    Теперь вы знаете как кинуть зигу в C++ !!

    PSIAlt, 02 Сентября 2013

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

    +127

    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
    Function DiskInDrive(ADriveLetter : Char) : Boolean;
    var
      SectorsPerCluster,
      BytesPerSector,
      NumberOfFreeClusters,
      TotalNumberOfClusters   : Cardinal;
    begin
      Result := GetDiskFreeSpace(PChar(ADriveLetter+':\'),
                                  SectorsPerCluster,
                                  BytesPerSector,
                                  NumberOfFreeClusters,
                                  TotalNumberOfClusters);
    
    end;
    
    // еще один шедевр:
    
    var
     SR  : TSearchRec;
     Res : integer;
     OldErrMode : integer;
    begin
     // Запоминаем текущий режим обработки ошибок и устанавливаем SEM_FAILCRITICALERRORS
     // Это необходимо для подавления появления окна с сообщение о том, что устройство не готово
     OldErrMode = SetErrorMode(SEM_FAILCRITICALERRORS);
     try
      Res := FindFirst('a:\*.*', faAnyfile, SR);
      FindClose(SR);
     finally
      SetErrorMode(OldErrMode)
     end;
    end;

    С помощью этих процедур Олежик Зайцев на своем сайте предлагает определять доступность дисков, минуя сообщение WINDOWS "Диск не готов".
    Без комментариев.

    Stertor, 23 Июня 2013

    Комментарии (70)
  9. C# / Говнокод #13063

    +131

    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
    static uint ipToUint(byte[] ipBytes)
            {
            var bConvert = new ByteConverter();
            uint ipUint = 0;
            int shift = 24; //TODO: указывает количество бит для смещения лево
                foreach (byte b in ipBytes)
                {
                    if (ipUint == 0)
                    {
                        ipUint = (uint)bConvert.ConvertTo(b, typeof(uint)) << shift;
                        shift -= 8;
                        continue;
                    }
                    if (shift >= 8)
                        ipUint += (uint)bConvert.ConvertTo(b, typeof(uint)) << shift;
                    else
                        ipUint += (uint)bConvert.ConvertTo(b, typeof(uint));
                        shift -= 8;
                }
            return ipUint;
            }

    Функция конвертирующая массив байтов полученный из IPAddress.Parse("...").GetAddressBytes() в целочисленное представление.

    neeedle, 29 Мая 2013

    Комментарии (70)
  10. Куча / Говнокод #12377

    +84

    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
    >                          +
                              +++
                            +++++++
                         ++---[>++++++
                      +>+++++ +++ ++>++++
                             +++++
                           ++>++++++
                        +++++>+++++++++
                   +++>+++>++ +++ +++>++++++
                             ++++>
                          +++++++++++
                      +>+++>+++++++++>+++
                 +++++++>++++++++++>++++++++++
           +>+++><<<<<<<<<<<<<<<<-]>++>--->++>++>+>+
                             +>-->
                             +>->+
    +>->+>--->++++>+++><<<<<<<<<<<<<<<<>.>.>.>.>.>.>.>.>.>.+
    ->.>.>.>.>.[-]++++++++++.>[-]<[>+++<-]>++.....>+++++++++
    +[>+++++>+++++>+++++>+++++><<<<<-]>>-->->+><<<<<>.>.>.>.

    С новым 2013м годом!

    Пусть в новом году вас обойдут стороной индусизмы, баги и крестобатхерты,
    а красивые решения, чистый код и годные фичи не заставят себя ждать!

    bormand, 31 Декабря 2012

    Комментарии (70)
  11. Java / Говнокод #10721

    +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
    public void set...(...){
      ...
      throw INVALID_PARAM;
    }
    public void set...(...){
      ...
      throw INVALID_PARAM;
    }
    public void set...(...){
      ...
      throw INVALID_PARAM;
    }
    
    ...
    private final static Exception INVALID_PARAM=new RuntimeException("Incorrect value!");

    3.14159265, 08 Июня 2012

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