1. JavaScript / Говнокод #17080

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for (var i=0; i<snake.length-25; ++i) {
        if (checkTouch(snake[i], newHead)) {
            state = "gameover";
            return;
        }
    }

    В приступе ностальгии портанул свой старый говнокодец с турбопасцаля на жс.

    Погамать можно тут: http://bormand.tk/snake/

    bormand, 07 Ноября 2014

    Комментарии (337)
  2. C# / Говнокод #17079

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    int i=1;
    Console.WriteLine((i+null)==null); //True			
    Console.WriteLine(1+null);             //1
    Console.WriteLine(null+1);             //1
    Console.WriteLine((1+null).GetType()); //System.Int32

    http://ideone.com/LomfRC

    3.14159265, 07 Ноября 2014

    Комментарии (12)
  3. Куча / Говнокод #17078

    +136

    1. 1
    2. 2
    -#location=Location
    +location=Localisation

    Прилетел коммит с обновлением французской локализации, а там такое.

    someone, 07 Ноября 2014

    Комментарии (2)
  4. C# / Говнокод #17077

    +133

    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
    [DataContract]
            class outColumnsList
            {
    ...
                [DataMember]
                public decimal? FK_ID_OBJECT { get; set; }
    ...
                [DataMember]
                public decimal? IS_PK { get; set; }
                [DataMember]
                public decimal? IS_EDIT { get; set; }
    ..
            }
    ....
                    List<outColumnsList> l = new List<outColumnsList>();
                    while (r.Read())
                    {
                        outColumnsList l1 = new outColumnsList();
                        if (r.GetOracleValue(0).ToString()!="null")
                        l1.ID_OBJECT = Convert.ToDecimal(r.GetOracleValue(0).ToString());
                        l1.NM_DISPLAY = r.GetOracleValue(1).ToString();
                        l1.NM_SOURCE = r.GetOracleValue(2).ToString();
                        if (r.GetOracleValue(3).ToString() != "null")
                        l1.DISPLAY_SIZE = Convert.ToDecimal(r.GetOracleValue(3).ToString());
                        if (r.GetOracleValue(4).ToString() != "null")
                        l1.FK_ID_OBJECT = Convert.ToDecimal(r.GetOracleValue(4).ToString());
                        if (r.GetOracleValue(5).ToString() != "null")
                        l1.ORDER_DISPLAY = Convert.ToDecimal(r.GetOracleValue(5).ToString());
                        if (r.GetOracleValue(6).ToString() != "null")
                        l1.IS_EDIT = Convert.ToDecimal(r.GetOracleValue(6).ToString());
                        if (r.GetOracleValue(7).ToString() != "null")
                        l1.IS_PK = Convert.ToDecimal(r.GetOracleValue(7).ToString());
                        l1.FK_FIELD = r.GetOracleValue(8).ToString();
                        l1.NM_SOURCE_FK = r.GetOracleValue(10).ToString();
                        l.Add(l1);
                    }

    это потрясающе. в качестве идентификатора использовать дробные числа... хорошо хоть не с плавающей запятой.
    а так же, их же, для булевых....

    а то, как они из базы читались, так это вообще сказка.
    все ToString(), и все ConvertToDecimal... и проверка, на null еще тоже на уровне. про IsDBNull явно не слышал ничего

    Lokich, 07 Ноября 2014

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

    −123

    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
    Функция ПолучитьДробнуюЧасть(Число)
    	
    	Если Не ТипЗнч(Число) = Тип("Число") Тогда
    		Возврат 0;
    	КонецЕсли;
    	ЧислоСтрокой = Строка(Число);
    	Инд = 1;
    	Пока Истина Цикл
    	Символ = Сред(ЧислоСтрокой, Инд, 1);	
    	Если Символ = "" Тогда
    		Возврат 0;
    	ИначеЕсли Символ = "," Тогда
    		Если Сред(ЧислоСтрокой, Инд + 1, 1) = "" Тогда
    			Возврат 0;
    		КонецЕсли;
    		
    		Если Сред(ЧислоСтрокой, Инд + 2, 1) = "" Тогда
    			Возврат Число(Сред(ЧислоСтрокой, Инд + 1, 1));
    		КонецЕсли;
    		
    		Если Сред(ЧислоСтрокой, Инд + 3, 1) = "" Тогда
    			Возврат Число(Сред(ЧислоСтрокой, Инд + 1, 1) + Сред(ЧислоСтрокой, Инд + 2, 1));
    		Иначе
    			Возврат Число(Сред(ЧислоСтрокой, Инд + 1, 1) + Сред(ЧислоСтрокой, Инд + 2, 1) + Сред(ЧислоСтрокой, Инд + 3, 1));
    		КонецЕсли;
    	КонецЕсли;
    	Инд = Инд + 1;
    	КонецЦикла;
    КонецФункции

    Еще один "анекдот" от неизвестного автора. Предыдущий здесь: http://govnokod.ru/16639

    Jeyrico, 07 Ноября 2014

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (!isset($_SERVER['DOCUMENT_ROOT'])) {
    	if (isset($_SERVER['SCRIPT_FILENAME'])) {
    		$_SERVER['DOCUMENT_ROOT'] = str_replace('\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0 - strlen($_SERVER['PHP_SELF'])));
    	}
    }

    Никогда не слышали о '&&' или 'and'?
    https://github.com/opencart/opencart/blob/master/upload/system/startup.php#L15-L19

    Интересное замечание: классы Controller и Model в OpenCart имеет один и тот же код.

    volter9, 06 Ноября 2014

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

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    $this->template_model = BaseCommunicationType::model()->findByAttributes(array('template' => $this->template));
    if(!$this->template_model === NULL) {
    		throw new Exception("Template name is wrong", 1);	
    }

    Угадайте, что будет из исключением?

    boddicheg, 06 Ноября 2014

    Комментарии (10)
  8. Perl / Говнокод #17073

    −161

    1. 1
    2. 2
    3. 3
    4. 4
    foreach my $i (0 .. (scalar @{ $PARAMS{Input} } - 1) )
    {
    	@{ $PARAMS{Input} }[$i] = expand_filename(@{ $PARAMS{Input} }[$i]);
    }

    Такая то экспрессия

    Anus, 06 Ноября 2014

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

    +73

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    @GET
    @Path("/store")
    void getStoreSummary(@QueryParam("id") final String id, final MethodCallback<StoreSummary> callback);
    
    @GET
    @Path("/store")
    void getStoreDetails(@QueryParam("id") final String id, @QueryParam("detailed") final boolean mustBeTrue, final MethodCallback<StoreInfo> callback);

    Есть API-вызов HTTP GET, который по ?detailed=true возвращает расширенный JSON с дополнительными полями.

    И вот в RestyGWT, оказывается, по-другому никак. То есть если бы других параметров запроса не было, можно было бы просто написать

    @Path("/store?detailed=true")
    . Но он не умеет добавлять динамические параметры запроса к захардкоженным. Если попытаться - получается два вопросительных знака: [/code]/store?detailed=true?id=[id][/code].

    someone, 06 Ноября 2014

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

    +163

    1. 1
    $result = $db->query("update `" . $table_prefix . "options` set `option_value`='a:2:{i:0;b:0;s:8:" . '"auto_add"' . ";a:0:{}}' where `option_name`='nav_menu_options';");

    unserialize "глазами на лету" - ЛЕГКО!!!!

    taras_shs, 06 Ноября 2014

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