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

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

    +1

    1. 1
    SELECT a.*, ads.*, CASE ads.operation_id WHEN 1 THEN 2 WHEN 2 THEN 1 ELSE 3 END AS sort

    Когда очень надо поменять местами порядок операций

    SeniorShaurman, 18 Января 2018

    Комментарии (2)
  3. Python / Говнокод #23661

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    def ajax_check_manager_promocode(promocode, type_license):
        if (not promocode):
            return False
        if (promocode is None):
            return False
        if (promocode.isdigit()):
            return False
        if (len(promocode) < 8):
            return False

    хуита, 18 Января 2018

    Комментарии (2)
  4. JavaScript / Говнокод #23645

    +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
    brainfuck()
        
          .plus .plus .plus .plus .plus .plus .plus 
          .plus .plus .plus .plus .plus .plus .plus
          .begin
                .minus.next .plus .plus .plus .plus
                .plus .next .plus .plus .plus .plus
                .plus .plus .next .plus .plus .plus
                .plus .plus .plus .prev .prev .prev
          .end
          .next .plus .print.next .minus.minus.minus
          .minus.minus.print.next .plus .plus .print
          .prev .minus.print.plus .print.minus.minus
          .minus.minus.print.plus .plus .plus .plus
          .print.prev .minus.minus.minus.print

    https://github.com/1024--/peetooshnya/blob/master/bfdot.js

    huesto, 09 Января 2018

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

    +1

    1. 1
    $data->setReferrerCode($data->getReferrerCode());

    antosha, 22 Декабря 2017

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

    +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
    switch (true) {
                        case puid.TrafIntensityCoefficient>=0 && puid.TrafIntensityCoefficient<0.05:
                            value = "000";
                            break;
                        case puid.TrafIntensityCoefficient>=0.05 && puid.TrafIntensityCoefficient<0.1:
                            value = "005";
                            break;
                        case puid.TrafIntensityCoefficient>=0.1 && puid.TrafIntensityCoefficient<0.15:
                            value = "010";
                            break;
                        case puid.TrafIntensityCoefficient>=0.15 && puid.TrafIntensityCoefficient<0.2:
                            value = "015";
                            break;
                        case puid.TrafIntensityCoefficient>=0.2 && puid.TrafIntensityCoefficient<0.25:
                            value = "020";
                            break;
                        case puid.TrafIntensityCoefficient>=0.25 && puid.TrafIntensityCoefficient<0.3:
                            value = "025";
                            break;
                        case puid.TrafIntensityCoefficient>=0.3 && puid.TrafIntensityCoefficient<0.35:
                            value = "030";
                            break;
                        case puid.TrafIntensityCoefficient>=0.35 && puid.TrafIntensityCoefficient<0.4:
                            value = "035";
                            break;
                        case puid.TrafIntensityCoefficient>=0.4 && puid.TrafIntensityCoefficient<0.45:
                            value = "040";
                            break;
                        case puid.TrafIntensityCoefficient>=0.45 && puid.TrafIntensityCoefficient<0.5:
                            value = "045";
                            break;
                        case puid.TrafIntensityCoefficient>=0.5 && puid.TrafIntensityCoefficient<0.55:
                            value = "050";
                            break;
                        case puid.TrafIntensityCoefficient>=0.55 && puid.TrafIntensityCoefficient<0.6:
                            value = "055";
                            break;
                        case puid.TrafIntensityCoefficient>=0.6 && puid.TrafIntensityCoefficient<0.65:
                            value = "060";
                            break;
                        case puid.TrafIntensityCoefficient>=0.65 && puid.TrafIntensityCoefficient<0.7:
                            value = "065";
                            break;
                        case puid.TrafIntensityCoefficient>=0.7 && puid.TrafIntensityCoefficient<0.75:
                            value = "070";
                            break;
                        case puid.TrafIntensityCoefficient>=0.75 && puid.TrafIntensityCoefficient<0.8:
                            value = "075";
                            break;
                        case puid.TrafIntensityCoefficient>=0.8 && puid.TrafIntensityCoefficient<0.85:
                            value = "080";
                            break;
                        case puid.TrafIntensityCoefficient>=0.85 && puid.TrafIntensityCoefficient<0.9:
                            value = "085";
                            break;
                        case puid.TrafIntensityCoefficient>=0.9 && puid.TrafIntensityCoefficient<0.95:
                            value = "090";
                            break;
                        case puid.TrafIntensityCoefficient>=0.95:
                            value = "100";
                            break;
                    }

    ivli, 21 Декабря 2017

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public static function getInstance($model, $attribute)
        {
            //$name = Html::getInputName($model, $attribute); заменил просто на attribute, чтобы работать без Active::Form и т.д.
            $name = $attribute;
            return static::getInstanceByName($name);
        }

    Yii2 - найдено в непосредственно файлах фреймворка

    P.S. getInstanceByName - публичный метод

    Hvreg, 20 Декабря 2017

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

    +1

    1. 1
    var now = DateTimeOffset.Now.AddHours(-1);

    Почти сейчас.

    vladdy-moses, 16 Декабря 2017

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

    +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
    function TL($a) 
    {
        $tkk = explode('.', TKK());
        $b = $tkk[0];
    
        for($d = array(), $e = 0, $f = 0; $f < mb_strlen ( $a, 'UTF-8' ); $f ++) {
            $g = charCodeAt ( $a, $f );
            if (128 > $g) {
                $d [$e ++] = $g;
            } else {
                if (2048 > $g) {
                    $d [$e ++] = $g >> 6 | 192;
                } else {
                    if (55296 == ($g & 64512) && $f + 1 < mb_strlen ( $a, 'UTF-8' ) && 56320 == (charCodeAt ( $a, $f + 1 ) & 64512)) {
                        $g = 65536 + (($g & 1023) << 10) + (charCodeAt ( $a, ++ $f ) & 1023);
                        $d [$e ++] = $g >> 18 | 240;
                        $d [$e ++] = $g >> 12 & 63 | 128;
                    } else {
                        $d [$e ++] = $g >> 12 | 224;
                        $d [$e ++] = $g >> 6 & 63 | 128;
                    }
                }
                $d [$e ++] = $g & 63 | 128;
            }
        }
        $a = $b;
        for($e = 0; $e < count ( $d ); $e ++) {
            $a += $d [$e];
            $a = RL ( $a, '+-a^+6' );
        }
        $a = RL ( $a, "+-3^+b+-f" );
        $a ^= $tkk[1];
        if (0 > $a) {
            $a = ($a & 2147483647) + 2147483648;
        }
        $a = fmod ( $a, pow ( 10, 6 ) );
        return $a . "." . ($a ^ $b);
    }
    
    function translate($sl, $tl, $q)
    {
        $tk = TL($q);
        $q = urlencode(stripslashes($q));
    
        $url = "https://translate.google.com/translate_a/t?client=webapp&sl=".$sl."&tl=".$tl."&hl=".$tl."&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&otf=2&ssel=0&tsel=0&kc=1&tk=". $tk ."&q=" . $q;
    
        $output = json_decode(file_get_contents($url));
    
        return str_replace('"', '', $output);
    }

    Локализация из одного индусского проекта за 50$

    Undefined_one, 14 Декабря 2017

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

    +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
    class Задачи
        {
            public static ФормаМоделирование Форма;
    
            public Задачи(ФормаМоделирование f)
            {
                Форма = f;          
            }
    
            public static void ЗД_1()
            {
                bool Необход_рисов_первой_вертикальной = true;
                int Tконца_отрисовки;
                int тик_рисования;
                int Т_С_буф=Общая_Память.Тсеанса.T1;
              
    t1:
                Системное_ПО.поток_1_старт.WaitOne();
                тик_рисования = Общая_Память.Тик_Таймера;
                Tконца_отрисовки = Общая_Память.Тик_Таймера + Общая_Память.Тсеанса.T1;
                while (true)
                {
                    #region Задача превысила Т сеанса
                                   
                    if (Системное_ПО.Задача_превысила_Т_сеанса.Т1)
                    {
                        Tконца_отрисовки = Общая_Память.Тик_Таймера;
                       Системное_ПО.Задача_превысила_Т_сеанса.Т1 = false;
                        Общая_Память.Тсеанса.T1 = Т_С_буф;
                        Общая_Память.Тсеанса.T1--;
                    }
                    #endregion
                    if (Общая_Память.Флаг_остановка_задачи.T1 == false)
                          {
                        #region Вывод первой вертикальной линии                  
                        if (Необход_рисов_первой_вертикальной)
                              {
                                  for (double i = 0; i <= 1; i += 0.2)
                                      Форма.ГрафикЗадача1.Invoke((MethodInvoker)(delegate () { Форма.ГрафикЗадача1.Series["Моделирование"].Points.AddXY(Общая_Память.Тик_Таймера, i); }));
                                   Необход_рисов_первой_вертикальной = false;
                              }
                        #endregion
    
                        #region Вывод последней горизонтальной и вертикальной линии
                        if (Общая_Память.Тик_Таймера == Tконца_отрисовки)
                              {
                                for (double i = тик_рисования; i <= Общая_Память.Тик_Таймера; i += 0.2)
                                    Форма.ГрафикЗадача1.Invoke((MethodInvoker)(delegate () { Форма.ГрафикЗадача1.Series["Моделирование"].Points.AddXY(i, 1); }));
                                for (double i = 0; i <= 1; i += 0.2)
                                    Форма.ГрафикЗадача1.Invoke((MethodInvoker)(delegate () { Форма.ГрафикЗадача1.Series["Моделирование"].Points.AddXY(Общая_Память.Тик_Таймера, i); }));
                                Необход_рисов_первой_вертикальной = true;
                                Системное_ПО.Задача_выполняется.Т1 = false;
                               //    Общая_Память.Тсеанса.T1++;
                                goto t1;
                          }
                        #endregion
    
                        #region Вывод горизонтальной линии
                        if (тик_рисования != Общая_Память.Тик_Таймера)
                        {
                            for (double i = тик_рисования; i <= Общая_Память.Тик_Таймера; i += 0.2)
                                Форма.ГрафикЗадача1.Invoke((MethodInvoker)(delegate () { Форма.ГрафикЗадача1.Series["Моделирование"].Points.AddXY(i, 1); }));
                            тик_рисования = Общая_Память.Тик_Таймера;
    
                        }
                        #endregion
                          }
                    else
                    {
                        #region Вывод Аварийной последней горизонтальной и вертикальной линии
                        for (double i = тик_рисования; i <= Общая_Память.Тик_Таймера; i += 0.2)
                            Форма.ГрафикЗадача1.Invoke((MethodInvoker)(delegate () { Форма.ГрафикЗадача1.Series["Моделирование"].Points.AddXY(i, 1); }));
                        for (double i = 0; i <= 1; i += 0.2)
                            Форма.ГрафикЗадача1.Invoke((MethodInvoker)(delegate () { Форма.ГрафикЗадача1.Series["Моделирование"].Points.AddXY(Общая_Память.Тик_Таймера, i); }));
                        Необход_рисов_первой_вертикальной = true;
                        Системное_ПО.Задача_выполняется.Т1 = false;
                        break;
                        #endregion
                    }
                    Thread.Sleep(TimeSpan.FromMilliseconds(500));
                }
            }

    Это из чьей-то курсовой. Там весь проект такой.
    Проект нашел на фрилансе и заказчик к ТЗ приложил его как пример того, как надо сделать его курсовую.
    Я думаю, что написавший это стер себе пальцы и кнопки переключения раскладки клавиатуры)
    Может я чего-то не понимаю и знающие люди мне объяснят в чем вообще смысл? зачем?

    camper, 12 Декабря 2017

    Комментарии (13)
  11. C++ / Говнокод #23568

    +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
    #include <experimental/coroutine>
    #include <iostream>
    #include <optional>
    #include <utility>
    
    template<typename T>
    class Maybe
    {
        std::shared_ptr<std::optional<T>> m_maybe = std::make_shared<std::optional<T>>();
    public:
        Maybe() = default;
        
        Maybe(const T& t)
        : m_maybe { std::make_shared<std::optional<T>>(t) }
        {
        }
    
        explicit operator bool() const { return static_cast<bool>(*m_maybe); }
        T& operator* () { return **m_maybe; }
        const T& operator*() const { return **m_maybe; }
        
        void reset() { m_maybe->reset(); }
        
        template<typename U>
        void emplace(U&& u) { m_maybe->emplace(std::forward<U>(u)); }
    };
    
    template<typename T>
    void printMaybe(const Maybe<T>& opt)
    {
        if (opt)
            std::cout << *opt << std::endl;
        else
            std::cout << "<empty>" << std::endl;
    }
    
    template<typename T, typename... Args>
    struct std::experimental::coroutine_traits<Maybe<T>, Args...>
    {
        struct promise_type
        {
            Maybe<T> m_maybe;
            
            auto get_return_object() { return m_maybe; }
            
            std::experimental::suspend_never initial_suspend() { return {}; }
            std::experimental::suspend_never final_suspend() { return {}; }
            
            void unhandled_exception() { m_maybe.reset(); }
            
            template<typename U>
            void return_value(U&& u) { m_maybe.emplace(std::forward<U>(u)); }
        };
    };
    
    template<typename T>
    auto operator co_await(const Maybe<T>& maybe)
    {
        struct Awaiter
        {
            const Maybe<T>& input;
    
            bool await_ready() { return static_cast<bool>(input); }
            auto await_resume() { return *input; }
            void await_suspend(std::experimental::coroutine_handle<> coro) { coro.destroy(); }
        };
    
        return Awaiter { maybe };
    }
    
    Maybe<int> maybeAdd(const Maybe<int>& maybeA, const Maybe<int>& maybeB)
    {
        auto a = co_await maybeA;
        auto b = co_await maybeB;
        co_return a + b;
    }
    
    int main()
    {
      /*
        printMaybe(maybeAdd({ 1 }, { 2 }));
        printMaybe(maybeAdd({}, { 2 }));
        printMaybe(maybeAdd({ 1 }, {}));
        */
        const auto res = maybeAdd({ 1 }, { 2 });
        return res ? *res : 0;
    }

    do-нотация в плюсах

    j123123, 07 Декабря 2017

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