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

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

    +1

    1. 1
    std::ranges::for_each(tasks, [](auto x) {x();});

    а ещё теперь не нужно писать std::begin(), std::end().
    c++ будущего.

    digitalEugene, 10 Мая 2021

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

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    В России почти 10 лет легально работает сервис по псевдоремонту компьютеров. Его главные жертвы — пенсионеры
    За переустановку Windows «мастера» сдирают до 200 тысяч рублей
    
    
    
    https://dailystorm.ru/obschestvo/v-rossii-pochti-10-let-legalno-rabotaet-servis-po-psevdoremontu-kompyuterov-ego-glavnye-zhertvy-pensionery?utm_source=lentach&utm_medium=ctr&utm_campaign=lentach

    ru66oH4uk, 02 Декабря 2019

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

    0

    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
    // Функция считывания списка из файла
    	private: int readContactList( System::String^ path ) {
    		contact_list_->clear();
    		try {
    			System::IO::StreamReader^ reader = gcnew System::IO::StreamReader( path ); // Объект чтения из файла
    			try {
    				System::String^ line; // считываемая строка
    				array<String^>^ contact = gcnew array<String^>( 32 ); // считываемая строка будет разбиваться 
    				array<String^>^ separator = { " " }; // разделитель строки - пробел
    				list_node* node; // вершина списка
    
    				while( line = reader->ReadLine() ) { 
    					contact = line->Split( ' ' ); // разделяем строку по пробелам
    					if ( contact->Length != 3 ) // Должно быть три числа
    						return 4;
    					try {
    						node = new list_node(); // Заводим вершину и инициализируем ее поля
    						node->element_number_ = Int32::Parse( contact[ 0 ] );
    						node->circuit_number_ = Int32::Parse( contact[ 1 ] );
    						node->contact_number_ = Int32::Parse( contact[ 2 ] );
    
    						contact_list_->pushBack( node );
    					} catch (Exception^ e) { // В случае ошибки удаляем вершину из кучи и выходим
    						delete node;
    						return 4;
    					}
    				}
    			} catch ( Exception^ e ) {
    				return 2;
    			}
    		} catch ( Exception^ e ) {
    			return 1;
    		}
    		return 0;
    	}

    Больше try - catch.
    Поля структуры не инкапсулировал потому, что тот, кому нужна эта программа не знает про инкапсуляцию.
    Кстати, сделано по примеру с MSDN

    OlegUP, 02 Июля 2018

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

    +163

    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
    #define LOKI_TYPELIST_4(T1, T2, T3, T4) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_3(T2, T3, T4) >
    #define LOKI_TYPELIST_5(T1, T2, T3, T4, T5) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_4(T2, T3, T4, T5) >
    ...
    ...
    #define LOKI_TYPELIST_49(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_48(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49) >
    #define LOKI_TYPELIST_50(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) \
        ::Loki::Typelist<T1, LOKI_TYPELIST_49(T2, T3, T4, T5, T6, T7, T8, T9, T10, \
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, \
            T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, \
            T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, \
            T41, T42, T43, T44, T45, T46, T47, T48, T49, T50) >

    Говногость, 21 Декабря 2010

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

    −96

    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
    srp_base64_table = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz./"
    
    def srpb64decode(s):
        ints = [srp_base64_table.index(c) for c in s]
        pad = len(ints) % 4
        if pad != 0:
            pad = 4 - pad
        ints = [0 for i in range(0, pad)] + ints
        notleading = False
        buf = []
    
        pos = 0
        while pos < len(ints):
            b = (ints[pos] << 2) | ((ints[pos+1] & 0x30) >> 4)
            if notleading or b != 0:
                buf.append(b)
                notleading = True
            b = ((ints[pos+1] & 0x0f) << 4) | ((ints[pos+2] & 0x3c) >> 2)
            if notleading or b != 0:
                buf.append(b)
                notleading = True
            b = ((ints[pos+2] & 0x03) << 6) | ints[pos+3]
            if notleading or b != 0:
                buf.append(b)
                notleading = True
            pos += 4
    
        return bytes(buf)
    
    def srpb64encode(b):
        pos = len(b) % 3
        b0 = 0
        b1 = 0
        b2 = 0
        notleading = False
        buf = ""
    
        if pos == 1:
            b2 = b[0]
        elif pos == 2:
            b1 = b[0]
            b2 = b[1]
    
        while True:
            c = (b0 & 0xfc) >> 2
            if notleading or c != 0:
                buf += srp_base64_table[c]
                notleading = True
            c = ((b0 & 3) << 4) | ((b1 & 0xf0) >> 4)
            if notleading or c != 0:
                buf += srp_base64_table[c]
                notleading = True
            c = ((b1 & 0xf) << 2) | ((b2 & 0xc0) >> 6)
            if notleading or c != 0:
                buf += srp_base64_table[c]
                notleading = True
            c = b2 & 0x3f
            if notleading or c != 0:
                buf += srp_base64_table[c]
                notleading = True
            if pos >= len(b):
                break
            b0 = b[pos]
            b1 = b[pos + 1]
            b2 = b[pos + 2]
            pos += 3
    
        return buf

    Кодирование и декодирование блобов для openssl SRP.

    А я построю свой диснейленд с блекджеком и шлюхами! (c) тот, кто пилил SRP в openssl

    bormand, 23 Апреля 2014

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

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public static void main(final String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
        try {
          UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
          JFrame.setDefaultLookAndFeelDecorated(false);
          JDialog.setDefaultLookAndFeelDecorated(false);
        } finally {
          new ImageMaps().start();
        }
      }

    НАКОНЕЦ запускаю десктоп-приложение.
    Не знаю как вам, а по мне - выглядит весьма странно.

    Lure Of Chaos, 10 Октября 2011

    Комментарии (153)
  8. bash / Говнокод #27651

    0

    1. 1
    /bin/cat /bin/cat

    https://ideone.com/QSSlWV

    3_dar, 08 Сентября 2021

    Комментарии (152)
  9. Куча / Говнокод #26927

    +3

    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
    В чём прикол "Go"?
    
    Попробовал сделать примитивное апцо - это сущий пиздец. Нельзя просто взять и на лету
    сформировать с нуля массив и отобразить его в виде "JSON" - надо под все случаи прописать
    какие-то долбоёбские структуры и строго их придерживаться. Нельзя просто так взять и
    закомментировать абы какую строку - под это приходится ломать и крушить половину кода
    в файле.
    
    Говорят, что это нужно для какой-то дисциплины, но схуяли программист не может распоряжаться
    СВОИМ кодом по своему усмотрению? С каких пор компилятор учит программиста стилю кода?
    В этом говноязыке чувствуешь себя, как на зоне.
    
    Очень гадостно в этом языке работать с базами данных.
    
    Я было обрадовался, что наконец-то появился язык, официально как будто не дающий возможности
    технически реализовать ООП-подход и ломающий стереотип о необходимости влажных фреймворков,
    но на деле это оказалось той же пиздой, только в другой обёртке.
    
    Поэтому я за "PHP".
    
    В нём я просто создаю на лету массив произвольной структуры и тут же превращаю его в "JSON".
    В нём я просто комментирую ту строку, которая мне в данный момент не нужна. В нём я просто
    создаю подключение к "MySQL" и использую его в коде даже без отсылки к переменной подключения.
    Наконец, в нём я могу не использовать ООП, если не хочу (а я не хочу).
    
    "PHP" переживает все другие языки для серверной разработки. "Ruby" мёртв, "Python" мёртв, "Java" и
    "NodeJS" уже подыхают, на очереди, я так понимаю, как раз "Go". И только "PHP" на коне.

    urinoterapevt, 07 Сентября 2020

    Комментарии (152)
  10. Си / Говнокод #25156

    0

    1. 1
    2. 2
    3. 3
    4. 4
    UCSR0A |= TXC0_MASK;
    UDR0 = value;
    while ((UCSR0A & TXC0_MASK) == 0)
      ;

    The TXCn flag ... can be cleared by writing a one to its location.
    Cleared by writing one, Carl.

    Steve_Brown, 05 Декабря 2018

    Комментарии (152)
  11. JavaScript / Говнокод #15952

    +153

    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
    // обработка наведения/убирания мышки на тултипы и ссылки
    $("a.popup-link").live("mouseenter", function(event) {
        var id = parseInt($(this).text().replace(">>", ""));
        $(window).data("currentTooltip", id);
        showTooltip(this, id);
    });
    
    $("a.popup-link").live("mouseleave", function(event) {
        $(window).data("currentTooltip", null);
        scheduleTooltipClose();
    });
    
    $("div.comment-tooltip").live("mouseover", function(event) {
        if (!$(event.target).hasClass("popup-link")) {
            $(window).data("currentTooltip", $(this).data("id"));
        }
    });
    
    $("div.comment-tooltip").live("mouseleave", function(event) {
        $(window).data("currentTooltip", null);
        scheduleTooltipClose();
    });

    https://github.com/bormand/govnokod-board

    Превращаем уютненький форум в уютненькую борду (скрипт для greasemonkey).

    P.S. На ГК стоит жквери 1.4, поэтому live() вместо on().

    bormand, 09 Мая 2014

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