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

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

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    public void LogInDB(Exception ex)
    {
          // TODO: реализовать
    }

    А мы то голову ломаем, чего в старых методах на сервере ошибки не логируются!

    NeoN, 11 Июня 2013

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

    +66

    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
    package islands.general.playerlist;
    
    import islands.general.player.Player;
    import java.io.Externalizable;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectOutput;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    /**
     * Список игроков.
     *
     * @author Григорий
     */
    public class PlayerList implements Externalizable, Iterable<Player> {
    
        private static final long serialVersionUID = -8237639142683577971L;
        private static final Player[] emptyPlayerArray = new Player[0];
        private List<Player> list;
        private int maxIndex;
    
        public PlayerList() {
            this(emptyPlayerArray);
        }
    
        public PlayerList(Player... players) {
            list = new ArrayList<Player>();
            maxIndex = 0;
            for (int i = 0; i < players.length; i++) {
                Player player = players[i];
                add(player);
            }
        }
    
        /**
         * Добавить нового игрока в конец списка.
         *
         * @param player новый игрок
         * @return индекс нового игрока
         */
        public final int add(Player player) {
            list.add(maxIndex, player);
            return maxIndex++;
        }
    
        /**
         * Установить нового игрока по указанному индексу.
         *
         * @param index индекс для установки
         * @param player новый игрок
         */
        public void set(int index, Player player) {
            list.set(index, player);
        }
    
        /**
         * Возвратить количество игроков.
         *
         * @return количество игроков
         */
        public int getLength() {
            return maxIndex;
        }
    
        /**
         * Возвратить игрока по указанному индексу.
         *
         * @param index индекс игрока
         * @return игрок
         */
        public Player get(int index) {
            return list.get(index);
        }
    
        @Override
        public void writeExternal(ObjectOutput out) throws IOException {
            out.writeInt(maxIndex);
            for (int i = 0; i < maxIndex; i++) {
                list.get(i).writeExternal(out);
            }
        }
    
        @Override
        public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
            maxIndex = in.readInt();
            for (int i = 0; i < maxIndex; i++) {
                Player player = new Player();
                player.readExternal(in);
                list.add(player);
            }
        }
    
        @Override
        public Iterator<Player> iterator() {
            return list.iterator();
        }
    }

    Dougrinch, 27 Мая 2013

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

    +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
    30. 30
    MashTextGen::MashTextGen()
    {
    	files.push_back("BarButton.cpp");
    	files.push_back("CreateBar.cpp");
    	files.push_back("Eventfulness.cpp");
    	files.push_back("Glob.cpp");
    	files.push_back("main.cpp");
    	files.push_back("mashtextgen.cpp");
    	files.push_back("MashWindow.cpp");
    	files.push_back("Note.cpp");
    	files.push_back("NotificationBar.cpp");
    	files.push_back("Render.cpp");
    	files.push_back("RogueWindow.cpp");
    	files.push_back("WorldWindow.cpp");
    	files.push_back("BarButton.h");
    	files.push_back("CreateBar.h");
    	files.push_back("Eventfulness.h");
    	files.push_back("Glob.h");
    	files.push_back("main.h");
    	files.push_back("mashtextgen.h");
    	files.push_back("MashWindow.h");
    	files.push_back("Note.h");
    	files.push_back("NotificationBar.h");
    	files.push_back("Render.h");
    	files.push_back("RogueWindow.h");
    	files.push_back("WorldWindow.h");
    	
    	LoadMoreData();
    	picker = 0;
    }

    Я так и не понял зачем этот код.
    Найдено в опенсорсной игре.

    x0m9k, 17 Апреля 2013

    Комментарии (30)
  5. JavaScript / Говнокод #12706

    +167

    1. 1
    http://habrahabr.ru/post/172015/

    Наш клиент.
    Не смотря на заголовок статьи, он упёрся в ограничение на количество параметров в функции.

    krypt, 08 Марта 2013

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

    −106

    1. 1
    NSString *locString = [NSString stringWithFormat:@"%@%@%@%@%@%@%@%@%@%@%@%@%@", model.QRCodeInfo.hostName, @"/get_menus.json?user_id=", model.QRCodeInfo.userId , @"&area_id=", model.QRCodeInfo.areaId, @"&lat=23.197927", @"&long=-50.938111", @"&nick=", model.QRCodeInfo.nickName, @"&uid=", model.QRCodeInfo.udid, @"&host_name=", model.QRCodeInfo.hostName];

    Конкатенация по-пакистански

    sxua, 07 Марта 2013

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

    +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
    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace ConsoleApplication49
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Введите 16-ричное число(не более 32 знаков)");
                string s = Console.ReadLine();
                string result = "";
                string t = "123456789abcdef0";
                int i = 0;
                char[] a = new char[32];
                a = s.ToCharArray();
                char[] b = new char[16];
                b = t.ToCharArray();
                while (i<a.Length) 
                 {
                     if (a[i] != b[0]) ; else result += "0001";
                     if (a[i] != b[1]) ; else result += "0010";
                     if (a[i] != b[2]) ; else result += "0011";
                     if (a[i] != b[3]) ; else result += "0100";
                     if (a[i] != b[4]) ; else result += "0101";
                     if (a[i] != b[5]) ; else result += "0110";
                     if (a[i] != b[6]) ; else result += "0111";
                     if (a[i] != b[7]) ; else result += "1000";
                     if (a[i] != b[8]) ; else result += "1001";
                     if (a[i] != b[9]) ; else result += "1010";
                     if (a[i] != b[10]) ; else result += "1011";
                     if (a[i] != b[11]) ; else result += "1100";
                     if (a[i] != b[12]) ; else result += "1101";
                     if (a[i] != b[13]) ; else result += "1110";
                     if (a[i] != b[14]) ; else result += "1111";
                     if (a[i] != b[15]) ; else result += "0000";
                     i++;
                 };
                 Console.WriteLine("{0} в двоичном виде выглядит так {1}",s,result);
                 
                Console.ReadKey();
            
            }
        }
    }

    Перевод из 16ричной в двоичную СС

    Psilon, 08 Февраля 2013

    Комментарии (30)
  8. Куча / Говнокод #12394

    +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
    Название: Регистрация заказчика.
    Основное действующее лицо: Менеджеру по работе с заказчиками
    Область действия: Система
    Уровень: Пользователя
    Минимальные гарантии: Система останется в рабочем состоянии
    Гарантии успеха: Клиент загеристрирован
    Триггер: Клиент обратился к менеджеру по работе с заказчиками с просьбой зарегистрироваться
    Основной сценарий:
    1. Клиент обращается к менеджеру по работе с заказчиками, менеджер открывает регистрацию, система запоминает.
    2. Менеджер по работе с заказчиками запрашивает у клиента, имя, клиент сообщает имя, менеджер вводит имя в соответвующую форму, система запоминает.
    3. Менеджер по работе с заказчиками запрашивает у клиента, отчество, клиент сообщает отчество, менеджер вводит отчество в соответвующую форму, система запоминает.
    4. Менеджер по работе с заказчиками запрашивает у клиента, фамилию, клиент сообщает фамилию, менеджер вводит фамилию в соответвующую форму, система запоминает.
    5. Менеджер по работе с заказчиками запрашивает у клиента, номер паспорта, клиент сообщает номер паспорта, менеджер вводит номер паспорта пв соответвующую форму, система подтверждает правильность номера паспорта.
    6. Менеджер по работе с заказчиками запрашивает у клиента, дату выдачи паспорта, клиент сообщает дату выдачи паспорта, менеджер вводит дату выдачи паспорта в соответвующую форму, система подтверждает.
    7. Менеджер по работе с заказчиками запрашивает у клиента, контактный номер, клиент сообщает контактный номер, менеджер вводит контактный номер в соответвующую форму, система подтверждает.
    8. Менеджер по работе с заказчиками закрывает регистрацию, система сохраняет информацию о клиенте и подтверждает успешность регистрации.
    Альтернативы:
    5.а. Введен неверный номер паспорта.
    	1. Система сообщает об ошибке
    	2. Переход к пункту 5 основного сценария.
    6.а. Клиент уже зарегистрирован.
    	1. Система сообщает об ошибке.

    Моя боль...

    myzone, 06 Января 2013

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

    +107

    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
    //  define types
    const int FB2 = 0;
    const int TXT = 1;
    
    // private
    private int Type;
    …
    
    //  class methods
    public CVBook(string path, string type) {
        switch(type)
        {
            case "fb2":
                {
                    Type = 0;
                }
                break;
            case "txt":
                {
                    Type = 1;
                }
                break;
            default:
                {
                    throw new Exception("Unknown Book Format");
                }
        }
        …
        switch (Type) {
            case FB2: { … }
            case TXT: { … }
            default:
                {
                    throw new Exception("Unknown Book Format");
                }
            }
        }
    }

    Парсер книг, все в одном методе.

    ArtFeel, 30 Ноября 2012

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

    +53

    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
    protected function CreateClass($className, $params) {
    		switch (count($params)) {
    			case 0:
    				return new $className();
    				break;
    			case 1:
    				return new $className($params[0]);
    				break;
    			case 2:
    				return new $className($params[0], $params[1]);
    				break;
    			case 3:
    				return new $className($params[0], $params[1], $params[2]);
    				break;
    			case 4:
    				return new $className($params[0], $params[1], $params[2], $params[3]);
    				break;
    			case 5:
    				return new $className($params[0], $params[1], $params[2], $params[3], $params[4]);
    				break;
    			case 6:
    				return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5]);
    				break;
    			case 7:
    				return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6]);
    				break;
    			case 8:
    				return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6], $params[7]);
    				break;
    			case 9:
    				return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6], $params[7], $params[8]);
    				break;
    			case 10:
    				return new $className($params[0], $params[1], $params[2], $params[3], $params[4], $params[5], $params[6], $params[7], $params[8], $params[9]);
    				break;
    			default:
    				echo "Too many arguments";
    				return null;
    				break;
    		}
    }

    Продолжение одного нашумевшего блокбастера: Радж и "шоколадная" фабрика.
    Исходники взяты из компонента JEvents для Joomla. Файл из папки "icalevent". Думаю что стоит сделать акцент на iCAL, есть в этом что-то особенное.

    SunnyMagadan, 24 Октября 2012

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

    +27

    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
    #define говно NULL
    #define нихуя void
    #define факт bool
    #define хуёво false
    #define пиздато true
    #define цифра int
    #define число float
    #define базар char
    #define ТамГде *
    #define типа {
    #define ёба }
    #define это =
    #define сука ==
    #define и &&
    #define или ||
    #define чатко const
    #define базарь cout<<
    #define спроси cin>>
    #define блять ;
    #define то )
    #define иначе else
    
    #include <iostream>
    using namespace std;
    
    нихуя main()
    типа
    	факт Semki блять
    		базарь "Семки есть,, ёба? /n" блять
    		спроси Semki блять
    			если Semki сука пиздато то
    			типа
    				базарь "Красава" блять
    			ёба
    			иначе
    			типа
    				базарь "Нарываешься, сука? /n" блять
    			ёба
    ёба

    Быдло-код!

    NeZeD, 21 Сентября 2012

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