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

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

    −859

    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
    create table test(
      id integer primary key auto_increment,
      d datetime not null
    );
    
    insert into test(id) values (1);
    
    -- а сейчас я покажу вам особую уличную магию
    select *, d is null, d is not null from test;
    
    select *, d is null, d is not null from test
    where d is not null;
    
    select *, d is null, d is not null from test
    where d is null;  -- WTF?!
    
    select *, d is null, d is not null from test
    where d is not null and d is null; -- WTF?!

    Все 4 select'а выводят одинаковый результат... MySQL такой MySQL...

    P.S. Вставка всякой херни вместо вывода ошибки лечится добавлением STRICT_ALL_TABLES в sql_mode. А вот where с нулевой датой не лечится, видимо, это баг движка.

    bormand, 17 Октября 2014

    Комментарии (14)
  3. Java / Говнокод #16768

    +80

    1. 1
    2. 2
    3. 3
    if (!driver.findElement(By.id(DD_LAUNCH_ID)).equals(null)) {
        pause(1000);
    }

    Тогда уж почему не null.equals(...)?

    Actine, 25 Сентября 2014

    Комментарии (14)
  4. Java / Говнокод #16718

    +76

    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
    function returnUserId() {
        if (document.getElementById('userstap') != null )  {
            var obj = document.getElementById('userstap');
            <% if ((sUserIdForPrint != null) && !sUserIdForPrint.equals("")) {%>
            if (obj.options[obj.selectedIndex].value == 0) {
                return "<%=sUserIdForPrint%>";
            <% } %>
            <% if (((sAccGrpUserIdForPrint != null) && !sAccGrpUserIdForPrint.equals("")) && ((sUserIdForPrint != null) && !sUserIdForPrint.equals(""))) {%>
            } else if (obj.options[obj.selectedIndex].value == 1 ) {
                return "<%=sAccGrpUserIdForPrint%>";
            <% } else if ((sAccGrpUserIdForPrint != null) && !sAccGrpUserIdForPrint.equals("")){%>
            if (obj.options[obj.selectedIndex].value == 1 ) {
                return "<%=sAccGrpUserIdForPrint%>";
            <% } %>
            <% if (((sAccGrpUserIdForPrint != null) && !sAccGrpUserIdForPrint.equals("")) || ((sUserIdForPrint != null) && !sUserIdForPrint.equals(""))) {%>
            } else if (obj.options[obj.selectedIndex].value == 2) {
                return "<%=userId%>";
            }
            <% } else {%>
            if (obj.options[obj.selectedIndex].value == 2) {
                return "<%=userId%>";
            }
            <% } %>
        } else {
            return "<%=userId%>";
        }
    }

    Любите ли вы JSP так, как люблю его я?

    codingHorror, 18 Сентября 2014

    Комментарии (14)
  5. Java / Говнокод #16711

    +79

    1. 1
    2. 2
    // Number a, Number b
    return new Double(a.doubleValue() - numericTolerance).compareTo(b.doubleValue()) < 0

    В продолжение #16698, после рефакторинга. Видимо, диагноз: ООП головного мозга.

    Actine, 17 Сентября 2014

    Комментарии (14)
  6. Perl / Говнокод #16701

    −153

    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
    eval {
            my $from = $class->get_env_sender($message);
    
            $smtp->mail($from)
                || croak("Email::Send::Gmail: error sending 'from' $from");
    
            my @to = $class->get_env_recipients($message);
    
            my @ok = $smtp->to( @to, { SkipBad => 1 } )
                || croak("Email::Send::Gmail: error sending 'to' @to");
    
            if ( @to != @ok ) {
                my %to;
                @to{@to} = (1) x @to;
                delete @to{@ok};
                @bad = keys %to;
            }
    
            croak("Email::Send::Gmail: no valid recipients") if @bad == @to;
        };

    Думаю понятно, какой это модуль с CPAN. Убило незнание приоритетов, в результате чего "|| croak" всегда возвращало в @ok число вместо результата выполнения $smtp->to

    NeoliteBSD, 16 Сентября 2014

    Комментарии (14)
  7. Perl / Говнокод #16668

    −161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    error_response("400 Bad request", "") unless (<> =~ /^GET\s+(.+?)\s+HTTP\/1\.1\r$/);                                                
    my $request_url = $1;                                                                                                               
    log_message "REQUEST $request_url";                                                                                                 
    get_bans() if ($request_url =~ /^\/bans\?auth=$authkey$/);                                                                          
    remove_ban($1) if ($request_url =~ /^\/bans\/(\d+\.\d+\.\d+\.\d+)\/remove\?auth=$authkey$/);                                        
    error_response("404 Not found", "");

    REST API через inetd (на этом серваке нету веб сервера, и ставить его влом). Новая жизнь старых технологий ;)

    bormand, 09 Сентября 2014

    Комментарии (14)
  8. PHP / Говнокод #16583

    +164

    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
    public function is_number($s){
      $result = true;
      for($i=0;$i<strlen($s); $i++){
       switch($s[$i]){
        case '0': break;
        case '1': break;
        case '2': break;
        case '3': break;
        case '4': break;
        case '5': break;
        case '6': break;
        case '7': break;
        case '8': break;
        case '9': break;
        default: $result = false; return;
       }
      }
      return ($result) ? $s : int($s);
     }

    whiskeysam, 23 Августа 2014

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

    +132

    1. 1
    Удалено по просьбе автора

    alt0, 08 Августа 2014

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

    −166

    1. 1
    Дата = Формат(День(Запись.Период),"ЧЦ=2; ЧРГ=; ЧВН=") + "/" + Формат(Месяц(Запись.Период),"ЧЦ=2; ЧРГ=; ЧВН=") + "/" + Формат(Год(Запись.Период),"ЧГ=");

    О как можно еще получить дату в формате: день/месяц/год.
    Хотя тот же результат будет, если: Дата = Формат(Запись.Период, "ДФ=dd/MM/yyyy");
    И этот бред писал специалист крупной внедренческой компании.

    Danik, 18 Июля 2014

    Комментарии (14)
  11. Perl / Говнокод #16294

    −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
    20. 20
    $minfts = $maxfts = undef;
    $c=$l=$x=$z=0;
    while (($id, @a) = $sth->fetchrow_array) {
        $l++;
        next unless defined($t{$a[1]});
        $c++;
        $s{$id} = [$r, $id, @a];
        $x++ if $s{$id}{rc} && !$s{$id}{rm};
        $z++ if $s{$id}{rm};
        $s{$id}{t} = $t{$s{$id}{tid}};
        $s{$id}{bonuses} = 0;
        push @{$sid{$s{$id}{sid}}}, $id;
        ### PATCH3 ###
        $sid2pid{$s{$id}{sid}} = $s{$id}{id2};
        ### END PATH3 ###
        $minfts = $s{$id}{sd} if !defined($minfts) || $s{$id}{sd}<$minfts;
        $maxfts = $s{$id}{ed} if !defined($maxfts) || ($maxfts && $s{$id}{ed}>$maxfts) || !$s{$id}{ed};
    }
    $sth->finish;
    $l-=$c;

    Минимализм в название переменных

    ptaag, 09 Июля 2014

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