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

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

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Float nan=Float.NaN;
    new Float(10).compareTo(nan);
    //-1
    nan.compareTo(nan);
    //0
    new Float(Float.POSITIVE_INFINITY).compareTo(nan);
    //-1. POSITIVE_INFINITY<NAN. LoL

    http://ideone.com/9WIo16
    Тут некоторые товарищи в соседнем треде предлагали сравнивать объекты через compareTo()==0, если возможно.
    Ну и беречься от equals как от огня, если есть Comparable.
    А вот к чему это приводит.

    3.14159265, 13 Ноября 2012

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

    +71

    1. 1
    2. 2
    3. 3
    <?php
    </script>
    ?>

    ПыхапеГовно выдаёт:
    ?>
    Как оказалось, ему асболютно пофиг каким тегом его открывают, и каким закрывают... <script language="php"> echo "blah-blah-blah"; ?> тоже работает...

    Lowezar, 05 Ноября 2012

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

    +68

    1. 1
    2. 2
    3. 3
    public ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel) {
         if (initialCapacity < 0)
           throw new IllegalArgumentException();

    - unsigned?
    - ЖАБАПРОБЛЕМЫ.

    А ещё это не портируется на 64хбитные платформы с 32хбитным intом.

    LispGovno, 04 Ноября 2012

    Комментарии (54)
  5. JavaScript / Говнокод #11297

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    try {
    	chrome.tabs.update(tabInfo.tabId, {"active" : true}); // chrome 15+
    } catch (e) {
    	chrome.tabs.update(tabInfo.tabId, {"selected" : true}); // older
    }

    Это ни капли не говнокод. Это - результат breaking changes в chrome.tabs API, про которое нигде не написали и из-за которого ваши расширения для Chrome, использующие chrome.tabs API могут запросто не работать в относительно старых версиях Chrome. При том, что заявлена поддержка Chrome 9+. Из-за такого странного подхода приходится городить такие конструкции, которые выглядят как непонятный говнокод для непосвященных людей.

    1999, 25 Июня 2012

    Комментарии (54)
  6. C++ / Говнокод #10904

    −25

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    bool operator<(const A *obj){
    if (obj->n < this->n)
    return true;
    else if (this->n < obj->n)
    return false;
    };

    Перегрузка оператора сравнения

    Diss, 11 Июня 2012

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

    +168

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if (!is_array($arFilter)) 
    			$filter_keys = Array();
    		else
    			$filter_keys = array_keys($arFilter);
    
    		for ($i=0; $i<count($filter_keys); $i++)
    		{
    			$key = strtoupper($filter_keys[$i]);
    			$val = $arFilter[$filter_keys[$i]];
    // ....
    }

    по всей видимости, в битриксе программистам выдают тяжелые наркотики при входе.. до такой реализации foreach я бы никогда не додумался!

    belukov, 12 Октября 2011

    Комментарии (54)
  8. C++ / Говнокод #7542

    +170

    1. 1
    [](){}();

    Поздравляю с новым стандартом, товарищи!

    rat4, 14 Августа 2011

    Комментарии (54)
  9. Си / Говнокод #7055

    +101

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    double k;
    
    if(deviceType == "firstType"){
      for(int i = 0;i < 100000;i++)
        k = pow(2,10);
    }
    else if(deviceType == "secondType"){
      for(int i = 0;i < 700000;i++)
        k = pow(2,10);
    }

    Думаю этот даунизм поймут все. Маразм крепчал)

    eclipse, 25 Июня 2011

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

    +108

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    using(FileStream fs = new FileStream("имя файла", FileMode.CreateNew))
    {
      using(StreamWriter sw = new StreamWriter(fs))
      {
        sw.Write("Lloyd ");
        sw.Write("is ");
        sw.Write("cool ");
        sw.Write("guy. ");
        sw.Write(":)");
        sw.Flush();
      }
    }

    Взято здесь http://www.rsdn.ru/forum/dotnet/394039.flat.aspx
    Я не очень часто пишу на C#, но насколько я знаю, использование конструкции using предполагает, автоматическое очищение буфферов в конце блока кода.

    g00d, 27 Апреля 2011

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

    +165

    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
    enum TextAlignment
    {
    	ALIGN_LEFT = 0,
    	ALIGN_RIGHT,
    	ALIGN_CENTER
    };
    
    ...
    
    if(m_textAlignment > 0 && maxLineWidth < m_desiredLength)
    {
    	float offsetx = (m_desiredLength - maxLineWidth) / m_textAlignment;
    	...
    }

    Выравниваем текст. Универсальненько.
    Что будет, если значения в энумке поменяются или добавится, к примеру, justify, никого не волнует.

    Kirinyale, 11 Февраля 2011

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