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

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

    +2

    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
    template <typename F, class = decltype(F()(E()))>
        auto map(F p) -> std::vector< decltype(p(E())) >
        {        
            std::vector< decltype(p(E())) > result;
            std::transform(get().begin(), get().end(), std::back_inserter(result), [=](auto &v) {
                return mutable_(p)(v);
            });
    
            return result;
        }
    
        template <typename F, class = decltype(F()(E(), 0))>
        auto map(F p) -> std::vector< decltype(p(E(), 0)) >
        {        
            std::vector< decltype(p(E(), 0)) > result;
            auto first = &(get())[0];
            std::transform(get().begin(), get().end(), std::back_inserter(result), [=](auto &v) {
                auto index = &v - first;
                return mutable_(p)(v, index);
            });
    
            return result;
        }
    
    // и применение (e) => f()
        auto strs = (array<int>{ 1, 2, 3 }).map([](auto x)
        {
            return "X" + x;
        });
    
    // или (e, index) => f()
    
        auto strs = (array<int>{ 1, 2, 3 }).map([](auto x)
        {
            return x + i;
        });

    как я выкрутился бля... с разными маперами... как генерики в c#

    ASD_77, 27 Мая 2020

    Комментарии (24)
  3. JavaScript / Говнокод #26691

    +2

    1. 1
    2. 2
    3. 3
    function isNative (Ctor){
      return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
    }

    https://habr.com/ru/company/ruvds/blog/503634/
    >>> 5 интересных JavaScript-находок, сделанных в исходном коде Vue

    gost, 26 Мая 2020

    Комментарии (46)
  4. PHP / Говнокод #26674

    +2

    1. 1
    2. 2
    https://habr.com/ru/post/501798/
    > C++/Qt: пора валить?.

    Выбор небогат – это PHP. Да, я сказал PHP. И мне не стыдно.

    Ещё раз напомню, о каком типе приложений идёт речь: о тех, где сложная логика, требующая вычислительной производительности, реализована на C/C++, а к ним в пару нам нужен как можно более простой открытый язык/экосистема для общения с внешним миром и связи компонентов между собой. А если будет C-подобный синтаксис – вообще хорошо. И тут мы ставим галочки напротив каждого пункта наших требований.

    Главное – PHP прост. При том круге задач, которые он (и экосистема) может решать — он божественно прост. И дело не только в когнитивной нагрузке при кодинге и переключении контекста. Простота ещё и в развёртывании, администрировании и минимальном количестве вариантов, которыми можно решить одну задачу.
    PHP медленно, без резких движений, ползёт в правильную сторону, от увеличения производительности в 3 раза, до строгой типизации, решая задачи простым способом. И обрастая по пути крутыми штуками типа Swoole.
    PHP реализовал офигенский FFI (foreign function interface) к C. Офигенский в том контексте, о котором идёт речь — сочетании простоты и возможностей. Вы только наберите в гугле «PHP: Basic FFI usage».
    В PHP кругом $, а кто по нынешнему курсу их не любит...
    PHP быстрый. Да. Могу по слогам: бы-стрый. Для своей простоты и задач он божественно быстрый.

    j123123, 20 Мая 2020

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

    +2

    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
    //Начало новый код
    |select 
    |	НомерСтроки,
    |	Номенклатура,
    |	ЕдиницаИзмерения,
    |	Партия,
    |	КоличествоВозврата как Количество
    |поместить ДанныеДок
    |from Документ.РеализацияКассаВозврат.Номенклатура
    |where (ссылка=&ТекДок)
    //Конец новый код
    |;
    |
    |select 
    |	Номенклатура,
    |	ЕдиницаИзмерения,
    |	Партия,
    //Основание изменения:
    //Ускорение процесса:
    //Начало старый код
    //|	Количество как Количество,
    //|	СтоимостьРуб как СтоимостьРуб,
    //|	СуммаНДСРуб как СуммаНДСРуб,
    //|	СтоимостьУпр как СтоимостьУпр
    //|поместить ДанныеСклад
    //|from РегистрНакопления.ПартииТоваровНаСкладах
    //|where 
    //	(Период <= &Дата) и (Организация=&Организация и Подразделение=&Подразделение) 
    //Конец старый код
    
    //Начало новый код
    |	СУММА(КоличествоПриход) как Количество,
    |	СУММА(СтоимостьРубПриход) как СтоимостьРуб,
    |	СУММА(СуммаНДСРубПриход) как СуммаНДСРуб,
    //	Тригубович Л. 2016.06.29
    //Основание изменения:
    //Задача № 4036: Корректировка баз в связи с деноминацией
    //Начало новый код
    |	СУММА(СтоимостьBYNПриход) как СтоимостьBYN,
    |	СУММА(СуммаНДСBYNПриход) как СуммаНДСBYN,
    //Конец новый код
    |	СУММА(СтоимостьУпрПриход) как СтоимостьУпр
    |поместить ДанныеСклад
    //Основание изменения:
    //Договор комиссии:
    //Начало старый код
    //|from РегистрНакопления.ПартииТоваровНаСкладах.Обороты(,&Дата, Регистратор, Организация=&Организация и Подразделение=&Подразделение)
    //Конец старый код
    
    //Начало новый код
    |from РегистрНакопления.ПартииТоваровНаСкладах.Обороты("+?(Подразделение.Инглот И Дата >= '20140701', "ДатаВремя(2014,07,01)", "")+",&Дата, Регистратор, Организация=&Организация и Подразделение=&Подразделение)
    //Конец новый код
    |where 
    //Конец новый код
    |	(Номенклатура в (select Номенклатура from ДанныеДок)) 
    
    //Основание изменения:
    //Письмо Александровской Ольги от 01.02.2013 (п.2)
    //Начало новый код
    |	и (Партия в (select Партия from ДанныеДок)) 
    //Конец новый код
    |	и (Регистратор ссылка Документ.ПоступлениеТМЦ или Регистратор ссылка Документ.ПоступлениеТМЦИмпорт ИЛИ Регистратор ссылка Документ.ПеремещениеТМЦ ИЛИ Регистратор ссылка Документ.Пересорт ИЛИ Регистратор ссылка Документ.КомплектацияНаборов ИЛИ Регистратор ссылка Документ.РазукомплектацияНаборов ИЛИ Регистратор ссылка Документ.СкидкиПоСрокамГодности)
    |group by Номенклатура,ЕдиницаИзмерения,Партия
    |;
    |
    //Основание изменения:
    //Учтем данные по продажам
    //Начало новый код
    |select 
    |	Номенклатура,
    |	ЕдиницаИзмерения,
    |	Партия,
    |	СУММА(-КоличествоОборот) как Количество,
    |	СУММА(-СтоимостьРубОборот) как СтоимостьРуб,
    |	СУММА(-СуммаНДСРубОборот) как СуммаНДСРуб,
    //Основание изменения:
    //Задача № 4036: Корректировка баз в связи с деноминацией
    //Начало новый код
    |	СУММА(-СтоимостьBYNОборот) как СтоимостьBYN,
    |	СУММА(-СуммаНДСBYNОборот) как СуммаНДСBYN,
    //Конец новый код
    |	СУММА(-СтоимостьУпрОборот) как СтоимостьУпр
    |поместить ДанныеПродаж
    |from РегистрНакопления._ИмяРегистра_.Обороты("+?(ДатаРеализации = '00010101', "", "&ДатаНач")+",&ДатаКон, Регистратор, Организация=&Организация и _УсловиеПодразделение_)
    |where 
    |	Номенклатура в (select Номенклатура from ДанныеДок)
    |	и Партия в (select Партия from ДанныеДок)
    |	и (Регистратор ссылка Документ.РеализацияКасса ИЛИ Регистратор ссылка Документ.РеализацияКассаВозврат)
    |group by Номенклатура,ЕдиницаИзмерения,Партия
    |;
    |
    //Конец новый код
    |// сводные данные
    |select
    //Основание изменения:
    //Управленческий учет:
    //Начало новый код
    |	док.НомерСтроки КАК НомерСтрокиДокумента,
    //Конец новый код

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

    valchara, 30 Апреля 2020

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

    +2

    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
    function get_page() {
        $routes = Utility::get_routes('', 'admin/*', '[0-9a-z\.\/\-]*');
    
        $entities = [];
        foreach ($routes as $key => $value) {
            $entities[$value['entity_type']][$value['entity']][] = $value;
        }
    
        $map = [
            'core' => Utility::get_string('Ядро'),
            'base' => Utility::get_string('Базовое'),
            'custom' => Utility::get_string('Пользовательское')
        ];
    
        $menu = [];
        if ($entities) {
            $entities = [
                'core' => $entities['core'] ?? [],
                'base' => $entities['base'] ?? [],
                'custom' => $entities['custom'] ?? []
            ];
    
            foreach ($entities as $key => $value) {
                $count = 0;
                foreach ($value as $key2 => $value2) {
                    $index = $map[$key];
                    $entity = str_replace('_', ' ', $key2);
                    $entity_upper = ucfirst($key2);
                    $title = $route = '';
    
                    $on = false;
                    $items = [];
                    foreach ($value2 as $key3 => $value3) {
                        if ((!isset($value3['menu']) || $value3['menu']) && (!isset($value3['type']) || $value3['type'] == 'replace') && (!isset($value3['access']) || (new User)->get_access($value3['access']))) {
                            $first = count(explode('/', $value3['route'])) <= 2;
    
                            if (!$title && $first) {
                                $title = $value3['title'] ?? $entity_upper;
                                $route = $value3['route'];
                            }
    
                            $items[$value3['route']] = $value3['title'] ?? $entity_upper;
    
                            $on = true;
                        }
                    }
    
                    if ($on) {
                        $menu[$index][$key2] = [
                            'title' => $title ?: $entity_upper,
                            'title_link' => $route ?: 'admin/'.$entity,
                            'items' => $items,
                            'tr' => $count && $count % 3 === 0 ? '</tr><tr>' : '',
                        ];
    
                        $count++;
                    }
                }
            }
        }
    
        return $menu;
    }

    eqsash-2.0.zip/eqsash-2.0/core/admin/admin.php
    >>> Eqsash
    >>> Премиум технологии

    gost, 09 Апреля 2020

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

    +2

    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
    System.Action callback = null;
    
                            // TODO
                            if (true)
                            {
                                callback = () =>
                                {
                                    GameLogic_TheFixer.I.SetGameState(GameLogic_TheFixer.GameAction.clean);
                                };
                            }
                            else
                            {
    
                            }
                            foamSpawner.onEndWork = callback;

    Копаюсь в чьем-то легаси

    recstazy, 09 Апреля 2020

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    interface TemplateReducerInterface {
        getConfigParameters(): Promise<ConfigParametersResult>
        getConfig(): Record<string, any>
        setConfig(config: Record<string, any>): void
        getDirectoriesForRemove(): Promise<string[]>
        getFilesForRemove(): Promise<string[]>
        getDependenciesForRemove(): Promise<string[]>
        getFilesContentReplacers(): Promise<ReplaceFileContentItem[]>
        finish(): Promise<void>
        getTestConfigSet(): Promise<Record<string, any>[]>
    }

    Какой «TypeScript» )))

    https://habr.com/ru/post/487648/

    gost, 14 Марта 2020

    Комментарии (63)
  9. PHP / Говнокод #26488

    +2

    1. 1
    Оффтоп словаря терминов говнокода.

    Для всего, что хотели ответить на комментарий из http://govnokod.ru/26478.
    Поддержим чистоту расы словаря!

    1024--, 11 Марта 2020

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

    +2

    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
    // https://shitcode.net/557
    
    int getChar(char charachter){
     int returnValue = Z;
     switch(charachter){
      case 'A': returnValue = A; break;
      case 'a': returnValue = A; break;
      case 'B': returnValue = B; break;
      case 'b': returnValue = B; break;
      case 'C': returnValue = C; break;
      case 'c': returnValue = C; break;
      case 'D': returnValue = D; break;
      case 'd': returnValue = D; break;
      case 'E': returnValue = E; break;
      case 'e': returnValue = E; break;
      case 'F': returnValue = F; break;
      case 'f': returnValue = F; break;
      case 'G': returnValue = G; break;
      case 'g': returnValue = G; break;
      case 'H': returnValue = H; break;
      case 'h': returnValue = H; break;
      case 'I': returnValue = I; break;
      case 'i': returnValue = I; break;
      case 'J': returnValue = J; break;
      case 'j': returnValue = J; break;
      case 'K': returnValue = K; break;
      case 'k': returnValue = K; break;
      case 'L': returnValue = L; break;
      case 'l': returnValue = L; break;
      case 'M': returnValue = M; break;
      case 'm': returnValue = M; break;
      case 'N': returnValue = N; break;
      case 'n': returnValue = N; break;
      case 'O': returnValue = O; break;
      case 'o': returnValue = O; break;
      case 'P': returnValue = P; break;
      case 'p': returnValue = P; break;
      case 'Q': returnValue = Q; break;
      case 'q': returnValue = Q; break;
      case 'R': returnValue = R; break;
      case 'r': returnValue = R; break;
      case 'S': returnValue = S; break;
      case 's': returnValue = S; break;
      case 'T': returnValue = T; break;
      case 't': returnValue = T; break;
      case 'U': returnValue = U; break;
      case 'u': returnValue = U; break;
      case 'V': returnValue = V; break;
      case 'v': returnValue = V; break;
      case 'W': returnValue = W; break;
      case 'w': returnValue = W; break;
      case 'X': returnValue = X; break;
      case 'x': returnValue = X; break;
      case 'Y': returnValue = Y; break;
      case 'y': returnValue = Y; break;
      case 'Z': returnValue = Z; break;
      case 'z': returnValue = Z; break;
      case ' ': returnValue = _; break;
      case '3': returnValue = B2; break;
      case '<': returnValue = TEMP; break;
      case '*': returnValue = FULL; break;
      case '|': returnValue = LINE; break;  
      case '_': returnValue = _; break;  
      case ':': returnValue = COL; break;  
      case '-': returnValue = DASH; break;  
      case ')': returnValue = BRA2; break;  
      case '%': returnValue = SMILE; break;  
      case '.': returnValue = DOT; break;    
      case '^': returnValue = COLDOT; break;      
      }
      return returnValue; //RETORNO DE INFORMAÇÃO
    }

    Тут IsBukva до getChar допромоутили

    Fike, 10 Марта 2020

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

    +2

    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
    function isEven(a) {
      a = a. toString(). replace(/[^0-9.]/g, "");
      var stack = [];
      var rev = a. split(''). reverse();
      for (var ix = 0; ix < rev. length; ix++) {
        if (rev[ix] == ".") stack. push("dot")
        else if (rev[ix] == "1" || rev[ix] == "3" || rev[ix] =="5" || rev[ix] == "7" || rev[ix] == "9")
          stack. push ("odd")
        else
          stack. push('even')
      }
      var wholenumber = stack. splice(stack. indexof("dot") + 1)
      return wholenumber[0] == "even";
    }

    Определение чётности числа.

    IIIuMnAH3E, 08 Марта 2020

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