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

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

    +75

    1. 1
    Long value = Long.valueOf(String.valueOf(avpValue));

    не специалист по жабе, но пахнет: сначала по всему коду нагородить огородов с Byte/Short/Integer/Long что бы потом в самом важном месте вот так в лоб все в Long конвертить...

    Dummy00001, 03 Декабря 2012

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

    +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
    template <typename A, typename B> 
    class ololo 
    {
    };
    
    template <typename A>
    class ololo <A, int>
    {
    };
    
    template <typename A>
    void bububu ()
    {
    }
    
    template <>
    void bububu <int> ()
    {
    }
    
    template <typename A, typename B> 
    void kokoko  ()
    {
    }
    
    template <typename A>
    void kokoko <A, int> ()
    {
    }

    http://www.gamedev.ru/flame/forum/?id=169781
    tarasboproblemi

    LispGovno, 29 Ноября 2012

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

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    private static class NullReader extends Reader {
        public int read(char[] cbuf, int off, int len) {
            return 0;
        }
        public void close() {}
    }

    Однажды понадобилось работать с модулем, который что-то читает с помощью StreamTokenizer, но вместо реального файла подсовывать ему что-то своё, генерируемое на ходу, и при этом быть в курсе, какое место он сейчас читает. Решил пронаследоваться от StreamTokenizer и переопределить ему nextToken(). Оказалось, что у StreamTokenizer нет пустого конструктора, надо обязательно вызвать super и передать туда какой-нибудь Reader. Попробовал передавать null - оказалось, что в его конструкторе стоит проверка, которая сразу кидает NullPointerException. Блин, зачем ему Reader, если он к этому Reader никогда не обратится, ведь я nextToken переопределил! Пришлось сделать свой Reader-заглушку. Но чтобы пронаследоваться от абстрактного Reader, нужно обязательно определить методы read и close. Вот такая шняга в итоге получилась. Недавно случайно открыл код на этом месте и долго на неё пялился :-)

    GoblinAlchemist, 23 Ноября 2012

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

    +139

    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
    <div class="slogan">
      <table>
        <tbody>
          <tr>
            <td>В</td>
            <td class="r"> </td>
            <td>с</td>
            <td class="r"> </td>
            <td>ё</td>
            <td> </td>
            <td class="r"> </td>
            <td>ч</td>
            <td class="r"> </td>
            <td>т</td>
            <td class="r"> </td>
            <td>о</td>
            <td> </td>
            <td class="r"> </td>
            <td>д</td>
            <td class="r"> </td>
            <td>в</td>
            <td class="r"> </td>
            <td>и</td>
            <td class="r"> </td>
            <td>ж</td>
            <td class="r"> </td>
            <td>е</td>
            <td class="r"> </td>
            <td>т</td>
            <td class="r"> </td>
            <td>с</td>
            <td class="r"> </td>
            <td>я</td>
          </tr>
        </tbody>
      </table>
    </div>

    Разрядка слогана "ВСЁ ЧТО ДВИЖЕТСЯ" на motor.ru

    Yurik, 18 Ноября 2012

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

    −123

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Запрос = Новый Запрос;
     Запрос.Текст = "какой-то там текст запроса с параметрами <Вариант> и <НеВариант>"
     
     Запрос.УстановитьПараметр("Вариант", ?(Вариант = Истина, Истина, Ложь));
     Запрос.УстановитьПараметр("НеВариант", ?(Вариант = Истина, Ложь, Истина));

    Упрощается все до ...("Вариант", Вариант) и ...("НеВариант", Не Вариант) (хотя два параметра, зависящие от одной переменной уже не ок)

    Теперь по офису на вопрос: "А можно ли упростить?" сразу летит в ответ сакральное "НЕ ВАРИАНТ!!!"

    nixel, 08 Ноября 2012

    Комментарии (7)
  7. SQL / Говнокод #12070

    −113

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    ..........
     WHERE
         a.id_contact = b.id AND b.company_id = d.id AND
         RIGHT( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( a.phone, ' ', '' ) , '(', '' ) , ')', '' ) , '-', '' ) , '+', '' ) , 7 )
         LIKE '5085532'
     LIMIT 1

    Кусок запроса, увиденный в списке процессов MySQL

    Lblss, 07 Ноября 2012

    Комментарии (7)
  8. Си / Говнокод #12065

    +134

    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
    stroka="Hello world!";
     
    SubStringStartWith(Char, String)
    {
            return strchr(String, Char);
    }
     
    #define cl 'w'
     
    main() 
    {
            printf("In character literal \'%c\' %d bytes \n", cl, sizeof(cl));
            printf("In string \"%s\" substring, that start with \'%c\' char is \'%s\'", stroka, cl,  SubStringStartWith(cl, stroka));
            return 0;
    }

    Оттуда же. Вот уж воистину говнокода-генераторы.
    http://ideone.com/ICydFM

    LispGovno, 06 Ноября 2012

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

    +76

    1. 1
    2. 2
    3. 3
    if (true == args[argInx++].equals("request")) {
      // ...
    }

    Бульшит Йода-стайл

    roman-kashitsyn, 06 Ноября 2012

    Комментарии (7)
  10. SQL / Говнокод #12058

    −123

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    DECLARE @Quarter int --квартал
    DECLARE @Year int --год
    DECLARE @Code int
    ...
    SET @Code =  CAST((CAST(@Year as char(4))+ CAST( (@Quarter) as char))as int)
    ...

    Получаем код квартала вида 20123 - третий квартал 2012 года

    CrazyMORF, 05 Ноября 2012

    Комментарии (7)
  11. ActionScript / Говнокод #12048

    −116

    1. 1
    ExternalInterface.call('setTimeout', exec, 60, 'reattachWeapon');

    Пришлось такую конструкцию использовать... Функция вызывает функцию, которая вызывает функцию.
    Объясню, есть библиотека для AS3 Deval, выполняющая ту же функцию, что и JS'овский eval, только в AS.
    Но в этой библиотеке есть свои минусы и из-за некоторых ограничений setTimeout там можно использовать только для заранее написанных функций.
    В общем пришлось JS'овский setTimeout использовать, который через время определенное вызовет JS функцию, а JS функция вызовет функцию из списка функций текстовых.

    swing1991, 02 Ноября 2012

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