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

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

    +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
    void g()
    {
        int sum;
        auto rec = [&sum](int i) -> int
        {
            static int (*inner)(int&, int) = [](int& _sum, int i)->int 
            {
                _sum += i;
                return i>0 ? inner(_sum, i-1)*i : 1; 
            };
            return inner(sum, i);
        };
    }

    LispGovno, 15 Марта 2016

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

    +5

    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
    if ($template)             // BAD
    if (isset($template))      // GOOD
    if ($template !== NULL))   // GOOD
    if ($template !== ''))     // GOOD
    
    if (strlen($template) > 0) // BAD! strlen("-1") is greater than 0
    if (is_string($template) && strlen($template) > 0) // BETTER
    
    if ($foo == $bar)          // BAD, avoid truthy comparisons
    if ($foo != $bar)          // BAD, avoid falsy comparisons
    if ($foo === $bar))        // GOOD
    if ($foo !== $bar))        // GOOD
    
     // We only allow valid persons
    if (is_object($p) && strlen($p->lastN) > 0 && $p->hidden === FALSE && $this->environment->moonPhase === MOON_LIB::CRESCENT) {
     $xmM = $thd;
    }
    
    if ($this->isValidPerson($person) {
      $xmM = $thd;
    }

    Решил погуглить гайдлайны по PHP: http://flowframework.readthedocs.org/en/stable/TheDefinitiveGuide/PartV/CodingGuideLines/PHP.html

    HiNeX, 07 Декабря 2015

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

    +5

    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
    <?php 
    include('config.php');
    $pasword_switch = $_GET["pass"];
    $mail = $_GET["mail"];
    $nashelsypa = 0;
    $sql = mysql_query("SELECT `user_id`, `email` FROM `users` WHERE `user_id`='".$pasword_switch."' AND `email`='".$mail."' LIMIT 1");
    while(mysql_fetch_array($sql))
    {
    	$nashelsypa = 1;
    }
    if($nashelsypa == 1)
    {
    	if(isset($_POST['submit']))
    	{
    		if($_POST['password'] == $_POST['password_re'])
    		{
    			mysql_query("UPDATE users SET password='".$_POST['password']."' WHERE `user_id`='".$pasword_switch."' AND `email`='".$mail."' ");
    			echo '<br>';
    			echo "Пароль успешно изменен";
    			mail($mail, "VK-SPS", "Ваш пароль для входу був змінений\nДані для входу \nE-mail:'".$mail."'\n Пароль:'".$_POST['password']."'"); 
    			header("Refresh: 5; url=login.php"); exit();
    		}
    		else
    		{
    			echo "Пароли не совпадают";
    		}
    	}
    ?>

    Смена пароля

    kissarat, 29 Октября 2015

    Комментарии (25)
  5. Си / Говнокод #18563

    +1000

    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
    int cutNCountLt3(char *in, char *out, long min) {
        int lt3 = 0;
        char *i = in, *j = in, *k = out;
    
        while (*j && *i) {
            j = i;
            while (*j != ' ' && *j)
                *k++ = *j++;
    
            *k++ = *j;
    
            int len = j - i;
            lt3 += len < 3;
    
            if (len < min)
                *(k -= len + 1) = '\0';
    
            i = j + 1;
        }
    
        return lt3;
    }

    К #9911
    А конкретнее http://govnokod.ru/9911#comment295215

    После нескольких ревизий в комментах, подумал, что наложить здесь будет лучше... Прошу любить, но не жаловать

    Elvenfighter, 03 Августа 2015

    Комментарии (25)
  6. Java / Говнокод #18106

    +143

    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
    MyNumber(String n) {
           try {
               for (int i = 0; i < n.length(); i++) {  
                    numbers[i] = charToInt(n.charAt(i));
               }
           } catch (InvalidArgumentException e) {
               e.printStackTrace();
           }
        }
    
        public int charToInt(char c) throws InvalidArgumentException{
            char[] digits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    
            for (int i = 0; i < 10; i++) {
                if (digits[i] == c) return i;
            }
    
            throw new InvalidArgumentException(null);
        }

    Попросили быстро написать перевод числа, закодированного в строку, в массив его цифр.

    Govnocoder#0xFF, 01 Мая 2015

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

    +159

    1. 1
    $home = $jsClass = $benchmark = $showAtom = $mainJS = $author = $update = $nameError = $mailError = $msgError = $slugError = $spamError = $codeError = $codeTitleError = $titleError = $error = $author = $authorEmail = $authorURL = $ga = $embed = $noIndex = false;

    Зачем?

    Отсюда:
    https://github.com/mathiasbynens/jsperf.com/blob/master/index.php#L25

    volter9, 21 Марта 2015

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

    +170

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $(".fast-view .slide a").click(function() {
    			$(this).parent().parent().parent().parent().parent().parent().parent().find(".fast-view-list .tab").css("display", "none");
    			$(this).parent().parent().parent().parent().parent().parent().parent().find($(this).attr("href")).css("display", "block");
    			return false;
    		});

    lennar, 18 Марта 2015

    Комментарии (25)
  9. C++ / Говнокод #17671

    +62

    1. 1
    2. 2
    3. 3
    4. 4
    if( state != !val ) 
    {
       state = !val;
    }

    Переключение. Обе переменные булевские.

    absolut, 20 Февраля 2015

    Комментарии (25)
  10. Си / Говнокод #17590

    +109

    1. 1
    memcpy (stderr, stdout, sizeof (FILE));

    gpr, 06 Февраля 2015

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

    +65

    1. 1
    2. 2
    3. 3
    4. 4
    std::string Operations::getLastError()
    	{
    		return "Произошла неизвестная ошибка при выполнении криптооперации";
    	}

    laMer007, 30 Января 2015

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