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

    В номинации:
    За время:
  2. Куча / Говнокод #26974

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    -module(server).
    -export([start/0]).
    
    start() ->
      rooster:start(#{port => 8080},
                    #{routes => [hello()]}).
    
    hello() ->
      {'GET', "/hello", fun(_) -> {200, #{message => <<"hello world">>}} end}.

    https://github.com/fbeline/rooster

    Rooster

    Simplistic REST framework that runs on top of mochiweb.

    3_dar, 24 Сентября 2020

    Комментарии (20)
  3. C++ / Говнокод #26946

    +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
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    foreach ($files as $n => $f) {
        $new_content = $common.$namespace_begin.$f.$namespace_end;
    
        $std_methods = array();
        preg_match_all('/std::[a-z_0-9]*/', $new_content, $std_methods);
        $std_methods = array_unique($std_methods[0]);
    
        $needed_std_headers = array();
        $type_headers = array(
            'std::move' => '',
            'std::vector' => '',
            'std::string' => '',
    // [...]
            'std::unordered_set' => 'unordered_set');
        foreach ($type_headers as $type => $header) {
            if (in_array($type, $std_methods)) {
                $std_methods = array_diff($std_methods, array($type));
                if ($header && !in_array($header, $needed_std_headers)) {
                    $needed_std_headers[] = $header;
                }
            }
        }
    
        if (!$std_methods) { // know all needed std headers
            $new_content = preg_replace_callback(
                '/#include <([a-z_]*)>/',
                function ($matches) use ($needed_std_headers) {
                    if (in_array($matches[1], $needed_std_headers)) {
                        return $matches[0];
                    }
                    return '';
                },
                $new_content
            );
        }

    Тут вот в https://govnokod.ru/20049 CHayT предлагал использовать «PHP» в качестве препроцессора для «C» — так вот в «Телеграме» совет оценили и решили взять на вооружение.
    https://github.com/tdlib/td/blob/master/SplitSource.php

    gost, 13 Сентября 2020

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

    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
    public bool IsTransfarable
            {
                get
                {
                    switch (unitType)
                    {
                        case UnitTypes.SIEGE_TANK:
                        case UnitTypes.WIDOW_MINE:
                        case UnitTypes.SIEGE_TANK_SIEGED:
                        case UnitTypes.WIDOW_MINE_BURROWED:
                            return true;
                    }
    
                    return false;
                }
            }

    если что догадается что это выложу весь код :)

    ASD_77, 24 Августа 2020

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

    +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
    // Вот код скрипта для отправки емейла:
    
    mb_internal_encoding ("utf-8");
    $from = "Иван Иванов <[email protected]>";
    $to = $name."<$email>";
    $subject = "Подтверждение подписки";
    $message = "текст письма здесь";
    $headers = "From: ".$from."\nReply-To: ".$from."\nContent-Type: text/plain; charset=utf-8\nContent-Transfer-Encoding: 8bit";
    mail ($to, $subject, $message, $headers);
    
    // И что характерно, само тело письма приходит в правильной кодировке. А вот поля отправителя,
    // получателя и сабж письма - в краказябинах. Сами тексты этих полей 100% написаны в utf-8, код скрипта тоже в utf-8.
    // Вот что что я вижу в почте:
    
    // Subject: РРѕРґСРІРµСждение РїРѕРґРїРёСРєРё
    // From: Рван Рванов <[email protected]>
    // Reply-To: Рван Рванов <[email protected]>
    
    // ...
    
    // Проблема решилась следующим образом:
    $subject = "=?utf-8?B?" . base64_encode("Подтверждение подписки") . "?=";
    // И так для каждого поля.

    https://phpclub.ru/talk/threads/Нужна-помощь-битая-кодировка-в-письме.82881/

    gost, 20 Мая 2020

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

    +6

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public DateTime Birth { get; }
    
    public int Age
    {
        get
       {
            var n = 0;
            while(Birth.AddYears(n + 1) < DateTime.Now) ++n;
            return n;
        }
    }

    Проверял работу у изворотливой студентки

    gravejohn4, 28 Апреля 2020

    Комментарии (20)
  7. PHP / Говнокод #26602

    +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
    for ($cycle = 1; $cycle <= 6; $cycle++) {
        $all_tasks = get_all_tasks();
        if ($all_tasks) {
            foreach($all_tasks as $one_task) {
                $lock_file_abs = __DIR__.'/locks/run_'.$one_task['id'];
                $fp = fopen($lock_file_abs,"w+");
                if (flock($fp, LOCK_EX | LOCK_NB)) {
                    solve_one_task($one_task);
                    flock($fp, LOCK_UN);
                }
                else {
                    #не можем запускать обработку задачи
                }
                fclose($fp);
                unlink($lock_file_abs);
            }
        }
        sleep(10);
    }

    «Как запускать cron чаще, чем раз в минуту при помощи PHP»
    https://habr.com/ru/post/498934/

    gost, 25 Апреля 2020

    Комментарии (20)
  8. Java / Говнокод #26555

    0

    1. 1
    https://i.postimg.cc/7Z5pfXKj/gavno.png

    --Существует ли функция с такими перегрузками, что у всякого, кто ее использует, возникает желание повести автора этой функции?
    --Конечно, лови

    MAKAKA, 07 Апреля 2020

    Комментарии (20)
  9. JavaScript / Говнокод #26470

    +2

    1. 1
    2. 2
    3. 3
    Global Install
    Installing Yarn 2.x globally is discouraged as we're moving to a per-project install strategy. 
    We advise you to keep Yarn 1.x (Classic) as your global binary by installing it via the instructions you can find here.

    https://yarnpkg.com/getting-started/install

    Мы выпустили вторую версию приложеньки, в которой исправили все недочёты первой.
    Именно поэтому запускать вы её будете через первую версию, которая с вами навсегда.
    Мы проработали другие варианты и пришли к решению, что они все неправильные.

    Сердечно ваши,
    джаваскриптеры.

    Fike, 07 Марта 2020

    Комментарии (20)
  10. 1C / Говнокод #26467

    +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
    ОбластьТело.Параметры.Нерабочий = ?(
    	(Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 1 И (День(СсылкаНаОбъект.ДатаНачалаСобытия) = 1 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 2 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 3 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 4 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 6 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 7 
    		ИЛИ День(СсылкаНаОбъект.ДатаНачалаСобытия) = 8))
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 2 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 23
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 3 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 8
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 1
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 5 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 9
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 6 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 12
    	ИЛИ Месяц(СсылкаНаОбъект.ДатаНачалаСобытия) = 11 И День(СсылкаНаОбъект.ДатаНачалаСобытия) = 4
    	,"праздничный", "выходной");

    Проверочка на соответствие даты действия документа праздничному дню.. не ну а чо бы нет то

    Stipa, 06 Марта 2020

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

    +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
    define method display (i :: <integer>)
      do-display-integer(i);
    end;
    
    define method display (s :: <string>)
      do-display-string(s);
    end;
    
    define method display (f :: <float>)
      do-display-float(f);
    end;
    
    define method display (c :: <collection>)
      for (item in c)
        display(item);  // runtime dispatch
      end;
    end;

    В закромах истории нашёлся язык с runtime dispatch/multimethods.

    Desktop, 03 Февраля 2020

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