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

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

    +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
    def get_build_version():
        """Return the version of MSVC that was used to build Python.
    
        For Python 2.3 and up, the version number is included in
        sys.version.  For earlier versions, assume the compiler is MSVC 6.
        """
        prefix = "MSC v."
        i = sys.version.find(prefix)
        if i == -1:
            return 6
        i = i + len(prefix)
        s, rest = sys.version[i:].split(" ", 1)
        majorVersion = int(s[:-2]) - 6
        if majorVersion >= 13:
            # v13 was skipped and should be v14
            majorVersion += 1
        minorVersion = int(s[2:3]) / 10.0
        # I don't think paths are affected by minor version in version 6
        if majorVersion == 6:
            minorVersion = 0
        if majorVersion >= 6:
            return majorVersion + minorVersion
        # else we don't know what version of the compiler this is
        return None

    Определение версии конпелятора, которой был собран «CPython».

    TEH3OPHblu_nemyx, 30 Мая 2020

    Комментарии (40)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. PHP / Говнокод #26488

    +2

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

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

    1024--, 11 Марта 2020

    Комментарии (71)
  11. 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)