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

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

    +73

    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
    public static Rectangle2D fit(final Rectangle2D in, final Rectangle2D out) {
    		final Rectangle2D.Double fit = new Rectangle2D.Double();
    		if (in.getWidth() > in.getHeight()) {
    			fit.width = out.getWidth();
    			fit.height = (out.getHeight() * in.getHeight()) / in.getWidth();
    			fit.x = out.getX();
    			fit.y = out.getY() + ((out.getHeight() - fit.height) / 2);
    		} else {
    			fit.width = (out.getWidth() * in.getWidth()) / in.getHeight();
    			fit.height = out.getHeight();
    			fit.x = out.getX() + ((out.getWidth() - fit.width) / 2);
    			fit.y = out.getY();
    		}
    		// if ((in.getWidth() / in.getHeight()) != (fit.width / fit.height)) {
    		// throw new RuntimeException();
    		// }
    		// if (!fit.contains(fit)) {
    		// throw new RuntimeException();
    		// }
    		return fit;
    	}

    #14-19 - инлайн тесты!
    а вы говорите - юнит-тесты...

    Lure Of Chaos, 27 Июня 2013

    Комментарии (54)
  3. 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)
  4. PHP / Говнокод #12057

    +71

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

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

    Lowezar, 05 Ноября 2012

    Комментарии (54)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. C++ / Говнокод #7542

    +170

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

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

    rat4, 14 Августа 2011

    Комментарии (54)
  10. Си / Говнокод #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)
  11. 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)