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

    В номинации:
    За время:
  2. Куча / Говнокод #16828

    +132

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    @font-face {
        font-family: 'MyWebFont';
        src: url('webfont.eot#') format('eot'),
             url('webfont.woff') format('woff');
    }

    Если в «src» поместить больше одного формата шрифта, то IE не сможет загрузить его и сообщит об ошибке 404. Причина в том, что IE пытается использовать как адрес файла всё, что записано после первой открывающей скобки и до самой последней закрывающей скобки.

    IE как всегда в своём стиле...

    bormand, 09 Октября 2014

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

    +132

    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
    private const double A = -695.0;
    
            private const double B = 1136.0;
    
            private const double C = 172018;
    через 10 строк:
     topPanel.SplitterDistance = (int)
                                                Math.Round(
                                                    (-A*ApplicationDispatcher.Current.ApplicationContainer.Size.Width - C)/B,
                                                    MidpointRounding.AwayFromZero) - 5;
    
    и дальше внутри , где-то через 200 строк
    
     topPanel.SplitterDistance = (int)
                                                Math.Round(
                                                    (-A * ApplicationDispatcher.Current.ApplicationContainer.Size.Width - C) / B,
                                                    MidpointRounding.AwayFromZero) - 5;
    больше нигде не используется

    zxxc, 01 Сентября 2014

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

    +132

    1. 1
    Удалено по просьбе автора

    alt0, 08 Августа 2014

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

    +132

    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
    public void Insert(object obj, int id)
            {
                var a = Convert.ChangeType(obj, Types[id]);
                var b = Convert.ChangeType(ObjectSets[id],ObjectSets[id].GetType());
                b.GetType().GetMethod("AddObject").Invoke(b,new []{ a });
            }
    
            public void Delete(object obj, int id)
            {
                var a = Convert.ChangeType(obj, Types[id]);
                var b = Convert.ChangeType(ObjectSets[id], ObjectSets[id].GetType());
                b.GetType().GetMethod("DeleteObject").Invoke(b, new[] { a });
            }

    Рефлексия и Entity Framework. Продолжение

    Serg, 06 Августа 2014

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

    +132

    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
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    private NpgsqlDbType GetDbType(Type clrType, bool large = false)
            {
                if (clrType == null)
                    throw new ArgumentNullException("clrType");
    
                // Try to get underlying type if it is nullable type.
                clrType = Nullable.GetUnderlyingType(clrType) ?? clrType;
    
                if (clrType == typeof(int) || clrType == typeof(uint))
                {
                    return NpgsqlDbType.Integer;
                }
                else if (clrType == typeof(byte) || clrType == typeof(sbyte) || clrType == typeof(short) || clrType == typeof(ushort))
                {
                    return NpgsqlDbType.Smallint;
                }
                else if (clrType == typeof(long) || clrType == typeof(ulong))
                {
                    return NpgsqlDbType.Bigint;
                }
                else if (clrType == typeof(double))
                {
                    return NpgsqlDbType.Double;
                }
                else if (clrType == typeof(float))
                {
                    return NpgsqlDbType.Real;
                }
                else if (clrType == typeof(decimal))
                {
                    return NpgsqlDbType.Numeric;
                }
                else if (clrType == typeof(bool))
                {
                    return NpgsqlDbType.Boolean;
                }
                else if (clrType == typeof(string))
                {
                    return large ? NpgsqlDbType.Text : NpgsqlDbType.Varchar;
                }
                else if (clrType == typeof(char))
                {
                    return NpgsqlDbType.Char;
                }
                else if (clrType == typeof(DateTime))
                {
                    return NpgsqlDbType.Timestamp;
                }
                else if (clrType == typeof(Guid))
                {
                    return NpgsqlDbType.Uuid;
                }
                else if (typeof(Array).IsAssignableFrom(clrType))
                {
                    return NpgsqlDbType.Array | GetDbType(clrType.GetElementType(), large);
                }
                else
                    throw new NotSupportedException(string.Format("Not supported clr type {0} to convert {1}.", clrType.FullName, typeof(NpgsqlDbType).FullName));
            }

    определение типа

    mrg, 18 Июля 2014

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

    +132

    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
    private object N(Func<object> func)
            {
                try
                {
                    return func();
                }
                catch (NullReferenceException)
                {
                    return null;
                }
            }
    
    ...
    
    int? val = (int?)N(() => oldAttr.parent_value.Analyses_attribute);
    
    ...

    Мощный метод для поддержки паровозов.

    MainGovnokoder, 25 Июня 2014

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

    +132

    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
    public void Check()
    {
    	try
    	{
    		this.Function = "check";
    		this.Params = HttpUtility.UrlEncode((this.Params), Encoding.GetEncoding(1251));
    
    		if ((this.Function.Length > 0) &&
    			(this.PaymExtId.Length > 0) &&
    			(this.PaymSubjTp.ToString().Length > 0) &&
    			(this.Amount.ToString().Length > 0) &&
    			(this.Params.Length > 0) &&
    			(this.TermType.Length > 0) &&
    			(this.TermId.Length > 0) &&
    			(this.FeeSum.ToString().Length > 0))
    		{
    			this.Request = string.Format("function={0}&PaymExtId={1}&PaymSubjTp={2}&Amount={3}&Params={4}&TermType={5}&TermID={6}&FeeSum={7}",
    										 this.Function, this.PaymExtId, this.PaymSubjTp.ToString(), this.Amount.ToString(), this.Params, this.TermType, this.TermId, this.FeeSum.ToString());
    			SendRequest();
    		}
    		else
    		{
    			GetError("-1");
    		}                
    	}
    	catch
    	{
    		GetError("-9");
    	}
    }

    Оттуда же. Тип полей PaymSubjTp, Amount, FeeSum - int, всех остальных - string.
    Amount.ToString().Length > 0 и т.п. всегда true, а вот ноль или отрицательное значение спокойно пропустят.
    Интересно, разработчики хоть знают, что функции умеют принимать и возвращать данные? :)

    yamamoto, 18 Мая 2014

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

    +132

    1. 1
    <!--php session_start(); include('blocks/sessions.php'); -->

    Комментарии в php? Не, не слышали

    Webius, 09 Мая 2014

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

    +132

    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
    #include <stdio.h>
    
    unsigned int mid (unsigned int a, unsigned int b)
    {
    	if (a > b) {unsigned int c = a; a = b; b = c;}
    	for(; a < b; a--, b++) {;};
    	return a;
    }
    
    int main(void) {
    	printf("%u %u %u %u", mid(2,2), mid(3,2), mid(2,3), mid(3,3));
    	return 0;
    }

    Это я хочу найти середину. Где-то я туплю

    j123123, 04 Мая 2014

    Комментарии (27)
  11. Си / Говнокод #15870

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if(fileCounter < 1000){
          subDir =  "SUBDIREC.001";
          //много кода
        }else if (fileCounter < 2000 && fileCounter > 999){
          subDir =  "SUBDIREC.002";
          //много кода, плюс еще 17 таких же веток
        }else if (fileCounter < 20000 && fileCounter > 18999){
          subDir =  "SUBDIREC.020";
          //много кода
        }

    dm-ua, 30 Апреля 2014

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