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

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

    −111.2

    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
    # куски кода выдернуты
    #  смотрите внимательно на SQL
    #--- INSERT ------
    
    my $comment_id = $ej->{dbh}->insert('blog.comments', (
    	'id::primary'          => '',
    	'post_id::numeric'     => $param_id,
    	'user_id::numeric'     => $ej->{user}{id},
    	'text'                 => $newmess,
    	'time::numeric'        => $ej->{time},
    	'rating_ball::numeric' => $rating_ball
    ));
    my $_rating_ball = 0 + $ej->Query ('SELECT SUM(rating_ball) FROM blog.comments WHERE post_id = '.$param_id)->FetchRow;
    
    $ej->Query(
    	'UPDATE blog.posts SET update_time = '.$ej->{time}.', rating_ball = '.$_rating_ball.', '.
    	'comments_ptr = CONCAT('.Q(pack('L', $comment_id)).', comments_ptr)  WHERE id = '.$param_id
    );
    
    #--- DELETE ---
    
    $ej->Query('DELETE FROM blog.comments WHERE id = '.$comment_id);
    
    my $comments_ptr = pack('L*', $ej->Query('SELECT id FROM blog.comments WHERE post_id = '.$post_id.' ORDER BY time DESC')->FetchCol);
    my $_rating_ball = 0 + $ej->Query ('SELECT SUM(rating_ball) FROM blog.comments WHERE post_id = '.$post_id)->FetchRow;
    
    $ej->Query('UPDATE blog.posts SET comments_ptr = '.Q($comments_ptr).', rating_ball = '.$_rating_ball.' WHERE id = '.$post_id);
    
    
    #--- SELECT ----
    
    my %q = $ej->Query('SELECT user_id, topic_id, name, text, SUBSTRING(comments_ptr, '.(1+($page-1)*40).',40) AS ptr, round(length(comments_ptr) / 4) AS cnt, create_time, pics_ptr, rating_ball FROM blog.posts WHERE id = '.$param_id)->FetchHash;
    
    my @id = (); my @user_id = (); my @text = (); my @time = ();
    
    if ($q{ptr} ne '') {
    	my $r = $ej->Query('SELECT id, user_id, text, time FROM blog.comments WHERE id IN ('.join(',',unpack('L*', $q{ptr})).') ORDER BY time DESC');
    	@id      = $r->FetchCol;
    	@user_id = $r->FetchCol(1);
    	@text    = $r->FetchCol(2);
    	@time    = $r->FetchCol(3);
    }
    
    # потом еще вывод через Ж

    это работает на mySQL/PERL.
    да зачем нам реляционная база, мы сами можем манипулировать отношениями.
    comments_ptr это BLOB, c упакованным в него массивом int32 id'шников из comments.id
    хотя и есть comments.post_id <=> posts.id

    просто праздник какой-то!

    bmp20, 07 Февраля 2010

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

    +134.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private bool localGlobal;
    
    //...
    
    string filterActionOrder = FilterActionOrder.Text;
    //For sorting purpose, substract .5 to the ActionOrder to ensure
    //the order specified takes precedence
    double filterActionOrderTemp = Double.Parse(filterActionOrder) - .5;
    filterActionOrder = filterActionOrderTemp.ToString();

    без комментариев :)

    Sharp, 05 Февраля 2010

    Комментарии (1)
  4. SQL / Говнокод #2518

    −859.4

    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
    SET @DD = DATEPART(dd, GETDATE())
    SET @MM = DATEPART(mm, GETDATE())
    SET @YYYY = DATEPART(yyyy, GETDATE())
    
    IF LEN(@DD) = '1'
    	BEGIN
    		SET @DD = '0' + @DD
    	END
    IF LEN(@MM) = '1'
    	BEGIN
    		SET @MM = '0' + @MM
    	END
    
    SET @DT_D = @DD + '.' + @MM + '.' + @YYYY

    Изврат по превращению текущей даты в нужный формат в MSSQL

    Junior, 01 Февраля 2010

    Комментарии (1)
  5. Куча / Говнокод #2488

    +123.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    local string s1;
    
    s1 = "..\\Save";
    PC = PlayerOwner();
    PC.ConsoleCommand("set Core.System SavePath"@s1);
    SaveGameList.FontScale = FNS_Medium;
    SaveGameList.OnClickSound = CS_Down;

    Вот так не надо переопределять пути :(

    SkaarjZR, 26 Января 2010

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

    +144.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <?php
    /* КУЧА ГОВНОКОДА */
    ?>
    
    <TITLE><?php echo $m_feld[0];?></TITLE>
    
    <?php
    /* КУЧА ГОВНОКОДА */
    ?>

    ...вот так вот завернуть...навыворот можна ))

    v01t, 21 Января 2010

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

    +77.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
    protected static Map<Long, List<Bank.BankMoney>> getWinnersBanksMap(Map<Long, List<Bank.BankMoney>> sharedBank) {
            Map<Long,List<Bank.BankMoney>> winnersWithBanks = new HashMap<Long, List<Bank.BankMoney>>();
    
            for (Map.Entry<Long, List<Bank.BankMoney>> longListEntry : sharedBank.entrySet()) {
                    Long playerId = longListEntry.getKey();
                    List<Bank.BankMoney> banksWonOnThisIteration = longListEntry.getValue();
    
                    List<Bank.BankMoney> banks1 = winnersWithBanks.get(playerId);
                    if (banks1 == null) {
                        banks1 = new ArrayList<Bank.BankMoney>();
                        winnersWithBanks.put(playerId, banks1);
                    }
                    banks1.addAll(banksWonOnThisIteration);
                }
            return winnersWithBanks;
        }

    В результате серии рефакторингов чужого кода обнаружил следующий метод, над которым долго ломал голову - что он делает... Оказалось, ничего. Возвращает копию исходного объекта.

    dvb, 21 Января 2010

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

    −861.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    SELECT * FROM obj WHERE telephon LIKE '***' AND off = 0;
    
    SELECT obj.* FROM 
    obj 
    INNER JOIN obj2ls ON obj.ObjID = obj2ls.ObjKod AND obj2ls.Bdate <= CURDATE() AND obj2ls.Edate >= CURDATE() AND obj2ls.off = 0 
    INNER JOIN ls ON obj2ls.LsKod = ls.lsid AND ls.off = 0
    INNER JOIN ls2contr ON ls.lsid = ls2contr.lskod AND ls2contr.bdate <= CURDATE() AND ls2contr.edate >= CURDATE() AND ls2contr.off = 0
    INNER JOIN contr ON ls2contr.contrkod = contr.contrid AND contr.off = 0
    WHERE obj.telephon LIKE '***' AND obj.off = 0 AND contr.contr_type = 2;

    О плохом проектировании базы данных.
    Был простой запрос, к нему добавили проверку 1го(!) доп. условия.
    Еще умиляют JOINы в духе *Kod = *Id.

    Mihard, 19 Января 2010

    Комментарии (1)
  9. Куча / Говнокод #2413

    +126.6

    1. 1
    <meta млн="" $42="" за="" рынке,="" масличном="" на="" оператора="" украинского="" крупнейшего="" group,="" allseeds="" доли="" контрольной="" приобретении="" о="" соглашение="" подписала="" Украины,="" групп="" агропромышленных="" крупнейших="" из="" одна="" ,="" Групп="" Кернел="" content="" name="description"/>

    Говнодвижок слепил описание странички.

    condemetrius, 14 Января 2010

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

    +144.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <?php if (!$mode || true) { ?>
    <div class="yiiForm">
    <?php } else { ?>
    <div class="yiiForm">
    <?php } ?>

    последствия удаления ненужных частей кода

    Bethrezen, 28 Декабря 2009

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

    +153.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private function _createPath() {
          $_url = DEFAULT_URL;
          $_url = false === strpos($_url, 'http://') ? 'http://' . $_url : $_url;
          $_url = false === strpos($_url, '/', strlen($_url) - 1) ? $_url . '/' : $_url;
          return $_url . 'gateway.php?';
     }

    Давайте скидываться на киллеров. Заработаем больше :)

    asserte, 11 Декабря 2009

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