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

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

    +1

    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
    // Define the module
    define(function(require) {
      // Require empty list error
      var EmptyListError = require('../errors/property_errors').EmptyListError;
    
      // Character-rank list class
      function WeightedList(/* ...keys */) {
        this._total = 0;
        this._generateList.apply(this, arguments);
      }
    
      WeightedList.prototype._generateList = function() {
        var collection;
        if (typeof arguments[0] == 'object') {
          collection = arguments[0];
        } else {
          collection = arguments;
        }
    
    
        for (var i = 0; i < collection.length; i++) {
          this[collection[i]] = this[collection[i]] === undefined ? 1 : this[collection[i]] + 1;
          this._total++;
        }
      }
    
      WeightedList.prototype.getRandomKey = function() {
        if (this._total < 1)
          throw new EmptyListError();
    
        var num = Math.random();
        var lowerBound = 0;
    
        var keys = Object.keys(this);
        for (var i = 0; i < keys.length; i++) {
          if (keys[i] != "_total") {
            if (num < lowerBound + this[keys[i]] / this._total) {
              return keys[i];
            }
            lowerBound += this[keys[i]] / this._total;
          }
        }
    
        return keys[keys.length - 1];
      };
    
      WeightedList.prototype.increaseRank = function(key) {
        if (key !== undefined && key != "_total") {
          if (this[key] !== undefined) {
            this[key]++;
          } else {
            this[key] = 1;
          }
    
          this._total++;
        }
      };
    
      WeightedList.prototype.clearRanks = function() {
        var keys = Object.keys(this);
        for (var i = 0; i < keys.length; i++) {
          if (keys[i] != "_total") {
            this._total -= this[keys[i]] - 1;
            this[keys[i]] = 1;
          }
        }
      };
    
      return WeightedList;
    });

    Вот почему я за четкое разделение объектов/структур и хэшей (ассоциативных массивов).

    JaneBurt, 07 Мая 2021

    Комментарии (10)
  3. Go / Говнокод #27395

    +1

    1. 1
    2. 2
    3. 3
    if req.Lang != "" {
    	req.Lang = "EN"
    }

    Я сказал английский!

    [Поставленная задача: если пришёл запрос без поля, поставить значение по умолчанию]

    anon007, 06 Мая 2021

    Комментарии (20)
  4. Python / Говнокод #27387

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    def main():
        pipe(int(input('Введите неотрицательное целое число: ')),   
             lambda n: (n, reduce(lambda x, y: x * y, range(1, n + 1))),   
             lambda tup: print(f'Факториал числа {tup[0]} равняется {tup[1]}'))

    Из https://habr.com/ru/post/555370/ (Функциональное ядро на Python).

    PolinaAksenova, 01 Мая 2021

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function main() {    
    	(function () {
    		print("Hello World!");
    	})();
    }

    а ваш С компилятор может так говнокодить? а мой компилятор может :)

    ASD_77, 30 Апреля 2021

    Комментарии (20)
  6. Куча / Говнокод #27385

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    var proto = $new(null);
    proto.foo = function() { 
      $print(this.msg) 
    }
    
    var o = $new(null);
    o.msg = "hello";
    $objsetproto(o,proto);
    o.foo(); // print "hello"
    
    $objsetproto(o,null); // remove proto
    o.foo(); // exception

    Давайте писать ня Neko!
    https://nekovm.org

    PolinaAksenova, 29 Апреля 2021

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

    +1

    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
    // Заполняет документ заказ данными с сайта.
    // 
    // Параметры:
    //  ДокументОбъект - ДокументОбъект - объект документа Заказ покупателя.
    //  РеквизитыЗаказа - Структура - содержит значения реквизитов заказа, загруженных с сайта:
    //     * Ид - Идентификатор заказа, очень часто тоже что и номер.
    //     * Дата				- дата создания заказа на сайте.
    //     * Номер				- номер заказа на сайте.
    //     * ДатаОтгрузки		- дата отгрузки товара по заказу.
    //     * ВалютаДокументаКод	- трехзначный идентификатор валюты.
    //     * ВидЦенНаименование	- наименование вида цены.
    //     * СуммаВключаетНДС	- признак включения НДС.
    //     * НаименованиеСкидки	- наименование скидки.
    //     * ПроцентСкидки		- процент скидки.
    //     * СуммаСкидки		- сумма скидки по заказу.
    //     * СкладНаименование 	- наименование склада, точки самовывоза.
    //     * ПодразделениеНаименование - наименование подразделения.
    //     * Контрагент			- ссылка на контрагента, который уже был идентифицирован в базе.
    //     * АдресДоставки      - строка адреса доставки.
    //     * ТочкаСамовывоза	- ссылка на элемент справочника, который в прикладном решении является справочником точек самовывоза или Неопределено.
    //     * Товары				- табличная часть документа.
    //     * Комментарий		- текстовый комментарий.
    //  СвойстваЗаказа - Соответствие - содержит строковое представления свойств (ключ) и значений (значение) заказа.
    //  ПрикладныеПараметры - Структура - содержит параметры прикладного решения, добавленные на форму узла плана обмена.
    //  ОписаниеОшибки - Строка - текстовое представление ошибки.
    //  Успешно - Булево - признак заполнения документа.
    //
    Процедура ЗаполнитьЗаказ(ДокументОбъект, РеквизитыЗаказа, СвойстваЗаказа,
                             ПрикладныеПараметры, ОписаниеОшибки, Успешно) Экспорт
    	//++ НЕ ГОСИС
    	Валюта = Неопределено;
    	ОбменССайтамиУТ.ОбработатьВалютуXML(Валюта, РеквизитыЗаказа.ВалютаДокументаКод);
    	
    	ДокументОбъект.Дата          = РеквизитыЗаказа.Дата;
    	ДокументОбъект.Валюта        = Валюта;
    	ДокументОбъект.Соглашение    = ПрикладныеПараметры.Соглашение;
    	ДокументОбъект.Организация   = ПрикладныеПараметры.Организация;
    	ДокументОбъект.Менеджер      = ПрикладныеПараметры.Менеджер;
    	ДокументОбъект.Контрагент    = РеквизитыЗаказа.Контрагент;
    	ДокументОбъект.Партнер       = РеквизитыЗаказа.Партнер;
    	ДокументОбъект.ЦенаВключаетНДС = РеквизитыЗаказа.СуммаВключаетНДС;
    	ДокументОбъект.Склад           = ?(ЗначениеЗаполнено(РеквизитыЗаказа.ТочкаСамовывоза),
    	                                   РеквизитыЗаказа.ТочкаСамовывоза, 
    	                                   ПрикладныеПараметры.Склад);
    	
    	УсловияПродаж = ПродажиСервер.ПолучитьУсловияПродаж(ПрикладныеПараметры.Соглашение);
    	
    	Если НЕ ЗначениеЗаполнено(УсловияПродаж.ИспользуютсяДоговорыКонтрагентов) 
    		ИЛИ НЕ УсловияПродаж.ИспользуютсяДоговорыКонтрагентов Тогда
    		ДокументОбъект.ПорядокОплаты = УсловияПродаж.ПорядокОплаты;
    	Иначе
    		ДокументОбъект.ПорядокОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.Договор, "ПорядокОплаты");
    	КонецЕсли;
    	
    	ДокументОбъект.ВернутьМногооборотнуюТару = УсловияПродаж.ВозвращатьМногооборотнуюТару;
    	ЗаполнитьЗначенияСвойств(ДокументОбъект,
    	                         УсловияПродаж,
    	                        "ХозяйственнаяОперация, ГруппаФинансовогоУчета,
    	                        |ТребуетсяЗалогЗаТару, ФормаОплаты, ГрафикОплаты");
    	Если ЗначениеЗаполнено(ДокументОбъект.ГрафикОплаты) Тогда
    		ДокументОбъект.ФормаОплаты = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.ГрафикОплаты, "ФормаОплаты");
    	КонецЕсли;
    	
    	ДокументОбъект.ВернутьМногооборотнуюТару = УсловияПродаж.ВозвращатьМногооборотнуюТару;
    	ДокументОбъект.Приоритет = Справочники.Приоритеты.ПолучитьПриоритетПоУмолчанию(ДокументОбъект.Приоритет);
    	Если УсловияПродаж.ИспользуютсяДоговорыКонтрагентов Тогда
    		
    		ДокументОбъект.Договор = ПродажиСервер.ПолучитьДоговорПоУмолчанию(ДокументОбъект,
    		                                                                  УсловияПродаж.ХозяйственнаяОперация,
    		                                                                  Валюта);
    		
    		Если ЗначениеЗаполнено(ДокументОбъект.Договор) Тогда
    			ДокументОбъект.НалогообложениеНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументОбъект.Договор,
    				"НалогообложениеНДС");
    		КонецЕсли;
    		
    	КонецЕсли;
    	
    	Если НЕ ЗначениеЗаполнено(ДокументОбъект.НалогообложениеНДС) Тогда
    		ДокументОбъект.НалогообложениеНДС = Справочники.Организации.НалогообложениеНДС(
    			ДокументОбъект.Организация,
    			ДокументОбъект.Склад,
    			ДокументОбъект.Дата);
    	КонецЕсли;
    	
    	Комментарий = "";
    	Если Не ПустаяСтрока(РеквизитыЗаказа.Комментарий) Тогда
    		Комментарий = Комментарий + НСтр("ru = 'Комментарий менеджера на сайте'") + ": " +РеквизитыЗаказа.Комментарий;
    	КонецЕсли;
    	
    	КомментарийПокупателя = СвойстваЗаказа.Получить("Комментарии покупателя");
    	Если Не КомментарийПокупателя = Неопределено И Не ПустаяСтрока(КомментарийПокупателя) Тогда
    		Комментарий = Комментарий + ?(ПустаяСтрока(Комментарий),"",Символы.ПС) + НСтр("ru = 'Комментарий покупателя на сайте'") + ": " + КомментарийПокупателя;
    	КонецЕсли;
    	
    	ДокументОбъект.Комментарий   = Комментарий;
    	
    	СтатусЗаказа = СвойстваЗаказа.Получить("Статус заказа");

    0x255, 29 Апреля 2021

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

    +1

    1. 1
    IT Оффтоп #85

    #55: https://govnokod.ru/26844 https://govnokod.xyz/_26844
    #56: https://govnokod.ru/26862 https://govnokod.xyz/_26862
    #57: https://govnokod.ru/26890 https://govnokod.xyz/_26890
    #58: https://govnokod.ru/26916 https://govnokod.xyz/_26916
    #59: https://govnokod.ru/26934 https://govnokod.xyz/_26934
    #60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
    #61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
    #62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
    #63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
    #64: https://govnokod.ru/27020 https://govnokod.xyz/_27020
    #65: https://govnokod.ru/27027 https://govnokod.xyz/_27027
    #66: https://govnokod.ru/27040 https://govnokod.xyz/_27040
    #67: https://govnokod.ru/27049 https://govnokod.xyz/_27049
    #68: https://govnokod.ru/27061 https://govnokod.xyz/_27061
    #69: https://govnokod.ru/27071 https://govnokod.xyz/_27071
    #70: https://govnokod.ru/27097 https://govnokod.xyz/_27097
    #71: https://govnokod.ru/27115 https://govnokod.xyz/_27115
    #72: https://govnokod.ru/27120 https://govnokod.xyz/_27120
    #73: https://govnokod.ru/27136 https://govnokod.xyz/_27136
    #74: https://govnokod.ru/27160 https://govnokod.xyz/_27160
    #75: https://govnokod.ru/27166 https://govnokod.xyz/_27166
    #76: https://govnokod.ru/27168 https://govnokod.xyz/_27168
    #77: https://govnokod.ru/27186 https://govnokod.xyz/_27186
    #78: https://govnokod.ru/27219 https://govnokod.xyz/_27219
    #79: https://govnokod.ru/27254 https://govnokod.xyz/_27254
    #80: https://govnokod.ru/27270 https://govnokod.xyz/_27270
    #81: https://govnokod.ru/27280 https://govnokod.xyz/_27280
    #82: https://govnokod.ru/27284 https://govnokod.xyz/_27284
    #83: https://govnokod.ru/27296 https://govnokod.xyz/_27296
    #84: https://govnokod.ru/27336 https://govnokod.xyz/_27336

    nepeKamHblu_nemyx, 28 Апреля 2021

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

    +1

    1. 1
    Просто оффтоп #18

    #1: https://govnokod.ru/20162 https://govnokod.xyz/_20162
    #2: https://govnokod.ru/25329 https://govnokod.xyz/_25329
    #3: https://govnokod.ru/25415 https://govnokod.xyz/_25415
    #4: (vanished) https://govnokod.xyz/_25472
    #5: https://govnokod.ru/25693 https://govnokod.xyz/_25693
    #6: (vanished) https://govnokod.xyz/_26649
    #7: https://govnokod.ru/26672 https://govnokod.xyz/_26672
    #8: https://govnokod.ru/26924 https://govnokod.xyz/_26924
    #9: https://govnokod.ru/27072 https://govnokod.xyz/_27072
    #10: https://govnokod.ru/27086 https://govnokod.xyz/_27086
    #11: https://govnokod.ru/27122 https://govnokod.xyz/_27122
    #12: https://govnokod.ru/27153 https://govnokod.xyz/_27153
    #13: https://govnokod.ru/27159 https://govnokod.xyz/_27159
    #14: https://govnokod.ru/27200 https://govnokod.xyz/_27200
    #15: https://govnokod.ru/27237 https://govnokod.xyz/_27237
    #16: https://govnokod.ru/27282 https://govnokod.xyz/_27282
    #17: https://govnokod.ru/27319 https://govnokod.xyz/_27319

    nepeKamHblu_nemyx, 28 Апреля 2021

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

    +1

    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
    (set-logic UF)
    ; https://smtlib.cs.uiowa.edu/logics.shtml
    ; UF for the extension allowing free sort and function symbols 
    
    (set-option :produce-proofs true)
    
    (declare-sort M_wff)
    
    
    ; AND2
    (declare-fun M_a2 (M_wff M_wff) M_wff)
    
    ; AND3
    (declare-fun M_a3 (M_wff M_wff M_wff) M_wff)
    
    
    
    ; (AND2 a b) <=> (AND2 b a)
    
    (assert 
      (forall ( (a M_wff) (b M_wff) )
        (=
          (M_a2 a b)
          (M_a2 b a)
        )
      )
    )
    
    
    
    ; (AND2 a a) <=> a
    
    (assert 
      (forall ( (a M_wff) )
        (=
          (M_a2 a a)
          a
        )
      )
    )
    
    
    
    ; (AND2 a (AND2 b c)) <=> (AND3 a b c)
    
    (assert 
      (forall ( (a M_wff) (b M_wff) (c M_wff) )
        (=
          (M_a2 a (M_a2 b c))
          (M_a3 a b c)
        )
      )
    )
    
    
    
    ; (AND3 a b c) <=> (AND3 b a c)
    
    (assert
      (forall ( (a M_wff) (b M_wff) (c M_wff) )
        (=
          (M_a3 a b c)
          (M_a3 b a c)
        )
      )
    )
    
    
    
    ; IMPL - implication
    (declare-fun M_impl (M_wff M_wff) M_wff)
    
    
    
    ; http://us.metamath.org/ileuni/ax-1.html
    ; Axiom Simp
    ; (IMPL a (IMPL b a)) <=> (AND2 a b)
    
    (assert
      (forall ( (a M_wff) (b M_wff) )
        (=
          (M_impl a (M_impl b a))
          (M_a2 a b)
        )
      )
    )
    
    ...

    Весь код не влазит.

    https://rise4fun.com/Z3/GnfIH
    https://paste.debian.net/hidden/38ef8493/ (запасная ссылка)

    Переписывал Metamath на язык из SMT солверов https://smtlib.cs.uiowa.edu/language.shtml
    Z3 даже умеет доказывать какую-то питушню там.

    j123123, 28 Апреля 2021

    Комментарии (72)
  11. Куча / Говнокод #27377

    +1

    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
    %% This function is needed as a hack to guide dialyzer into inferring
    %% the correct types.
    -spec id(A) -> A.
    id(A) ->
      A.
    
    %% Где-то в header'е....
    
    -define(deftarget(RECIPE), {RECIPE, fun my_module:id/1}).
    
    %% A horrible, horrible hack to make Dialyzer infer right type of the promise return value
    -define(want(TARGET),
            (fun() ->
                 case TARGET of
                   {_, ___IAmSorryYouHaveToSeeThisWorkaroundForDialyzer} ->
                     ___IAmSorryYouHaveToSeeThisWorkaroundForDialyzer(my_module:want(TARGET))
                 end
             end)()).

    Пути статический типизации в Erlang неисповедимы.

    CHayT, 26 Апреля 2021

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