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

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

    +1

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

    antosha, 22 Декабря 2017

    Комментарии (5)
  3. 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)
  4. 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)
  5. C# / Говнокод #23593

    +1

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

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

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

    Комментарии (3)
  6. 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)
  7. 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)
  8. 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)
  9. Куча / Говнокод #23556

    +1

    1. 1
    По поводу Windows

    Вот мне говорят "Windows до некоторой версии была просто надстройкой над MS-DOS, а не самостоятельной операционной системой". А действительно, можно ли было считать тех времён Windows полноценной операционной системой? С одной стороны, можно было рассматривать семейство этих операционных систем как ребрендинг MS-DOS, что означает Windows = новая версия MS-DOS, что полноценно можно считать операционной системой. С другой стороны, Windows можно рассматривать как один из компонентов MS-DOS, что значит Windows = программа под MS-DOS, что нельзя считать полноценной операционной системой. Но тогда из этого вывода следует поразмыслить, являются Unix-подобные операционные системы настоящими операционными системами (поразмыслите об этом сами). Тогда, если Windows тех времён это просто программа, то что же сейчас такое Windows, что же произошло такого, что вдруг исчезли все споры по поводу того, является ли она настоящей операционной системой? Если до сих пор Windows запускается как программа MS-DOS либо чего-то, его заменившего (что пока не обнаружили), то является ли она настоящей операционной системой (см. выше)? Можно ли считать подобными операционными системами (если Windows тех времён настоящая операционная система и Windows этих времён тоже операционная система) Windows тех времён и Windows этих времён?

    d_fomenok, 20 Ноября 2017

    Комментарии (11)
  10. Java / Говнокод #23554

    +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
    driver_fire.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
            wait=new WebDriverWait(driver_fire,10);      
            driver_fire.navigate().to("http://www.mysite.com");
    
            LoginForm2 loginForm2 = PageFactory.initElements(driver_fire, LoginForm2.class);
            loginForm2.logIn("login", "password");
    wait.until((WebDriver d)->d.manage().getCookieNamed("user_id")).getValue(); // if we have this cookie, we have a logged in session
    
    // реализация класса формы логина
    public class LoginForm2 {
    
        @FindBy(css="div.log-in#log-in")
        private WebElement loginForm;
    
        @FindBy (css=".login")
        private WebElement invoke_button;
    
        WebDriverWait wait;
        WebDriver driver;
    
        public LoginForm2(WebDriver driver){
           driver.manage().timeouts().implicitlyWait(0,TimeUnit.SECONDS);
            this.driver = driver;
            wait = new WebDriverWait(driver,60);
        }
    
    private boolean checkCaptha() {
        try {
            WebElement captcha = loginForm.findElement(By.cssSelector("#newLoginForm iframe"));
            driver.switchTo().frame(captcha);
    
            try {
    wait.until(ExpectedConditions.attributeToBe(By.id("recaptcha-anchor"),"aria-checked","true"));
                System.out.println("Passed captcha");
                driver.switchTo().defaultContent(); 
                return true;
            } catch (TimeoutException e) {
                System.out.println("Too long to wait for captcha");   return false;
            }
    
        } catch (NoSuchElementException e) {
    System.out.println("No captcha )"); return true;
        }
     }
    
     public void logIn(String email, String password)
     {
         wait.until(ExpectedConditions.visibilityOf(invoke_button)).click();
         wait.until(ExpectedConditions.visibilityOf(loginForm));
         loginForm.findElement(By.name("name")).sendKeys(email);
         loginForm.findElement(By.name("passwd")).sendKeys(password);
        if( checkCaptha()) loginForm.findElement(By.name("login-button")).click();
     }
    }

    Selenium: Логин на сайте с задержкой на прохождение Google reCaptcha. Цель - только получить залогиненную сессию.

    dmytrocx75, 19 Ноября 2017

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

    +1

    1. 1
    github.com/php/php-src/commit/0e097f2c96ce31b16fa371981045f224e5a37160#diff-e0dff85f21e939e4e2a778bddb8a72d7R819

    Кто мне объяснит, как вообще работает этот PHP до сих пор, если они через строчку получают длину строки siezof'ом и при этом это ещё помогло исправить баг?

    d_fomenok, 18 Ноября 2017

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