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

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

    +141

    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
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    internal static double GetExtendedFromBytes(byte[] bytes)
            {
                /*
                    1   15      1   63
                    s   e       i 	f
    
                        The value v of the number is given by: 
                    if 0 <= e < 32767, then v = (-1)s * 2(e-16383) * (i.f) 
                    if e = 32767 and f = 0, then v = (-1)s * Inf 
                    if e = 32767 and f <> 0, then v is a NaN
                 */
                const int memSize = 10;
                if (bytes == null)
                    throw new ArgumentNullException("bytes");
                if (bytes.Length != memSize)
                    throw new ArgumentException("Must be " + memSize + " bytes", "bytes");
    
                int s = bytes[0] >> 7;
                int e = 0x7FFF & ((bytes[0] << 8) | bytes[1]);
                int i = bytes[2] >> 7;
                ulong f = (ulong)(0x7F & bytes[2]);
                for (int j = 3; j < memSize; j++)
                {
                    f <<= 8;
                    f |= bytes[j];
                }
    
                decimal df = (decimal)f / 10000000000000000000 /* 10^19 */; // число f в формате 0.f
                double v;
                if (0 <= e && e < 32767)
                {
                    int pow = e - 16383;
                    decimal c = (s == 0 ? 1 : -1) * (decimal)Math.Pow(2, pow);
                    decimal dv = c * (i + df); // значение, полученное по формуле для x86 Extended Precision Format
    
                    if (f != 0) // HACK при вычислении по формуле искомое значение не удается получить - исправляем
                    {
                        const decimal mn = 0.0776627963145224192m; // magic number, при значениях отличных от 2^x возникает разница кратная этому значению
    
                        decimal delta = Math.Abs(dv - c);
                        decimal add = 0;
                        if (pow >= 4)
                            add = Math.Round(delta * 1.0842021724855044340074528009m); // еще magic number
                        else if (pow >= 2)
                            add = Math.Ceiling(delta);
                        else if (pow >= 0)
                            add = Math.Ceiling(delta * 10) / 10m;
                        else
                        {
                            decimal m = 10m * (decimal)Math.Pow(2, Math.Abs(pow));
                            add = Math.Ceiling(delta * m) / m;
                        }
                        if (dv > 0)
                            dv += add * mn;
                        else
                            dv -= add * mn;
                    }
                    v = (double)dv;
                }
                else if (e == 32767)
                {
                    if (f == 0)
                        v = s == 0 ? double.PositiveInfinity : double.NegativeInfinity;
                    else
                        v = double.NaN;
                }
                else
                {
                    throw new ArgumentOutOfRangeException("bytes");
                }
    
                return v;
            }

    Местные индусы постарались. Перевод 80 bit floating point в double. Причём если прочитать спецификацию IEEE-754, то код займет 3-4 строчки с простыми битовыми операциями.

    NetDeveloper, 12 Сентября 2012

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    'constraints' => array(
                            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'id'     => '[0-9]+',
                        ),

    И опять регулярки, но уже на уровне гигантов...
    http://framework.zend.com/manual/2.0/en/user-guide/routing-and-controllers.html

    1_and_0, 07 Сентября 2012

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    try
    {
            concreteSubService.Price = strategy.GetPrice(concreteSubService);
    }
    catch (Exception ex)
    {
           throw ex;
            strategy.Dispose();
    }

    очень заботливый код, нежно очищающий память

    GeaR, 03 Сентября 2012

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    var number = new Random();
    if (number.Next(10)%2  == 0)
    {...}
    else
    {...}

    Нашёл такой шедевр в индокоде, которые мне дали модернизировать.

    badstarosta, 30 Августа 2012

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

    +141

    1. 1
    if (this.textControl1 != null && !"".Equals(text))

    String.Empty? Нет, не слышал.

    minuzZ, 28 Августа 2012

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <select>
    	<option class="a2" value="0" selected="selected">любой возраст</option>
    	<option class="a2" value="1">0 мес - 6 мес</option>
    	<option class="a2" value="2">0 мес - 12 мес</option>
    </select>

    selected="selected" для элемента, выбираемого по дефолту - зачем?
    ps. Код - кусок статичного html.

    domaster, 22 Августа 2012

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    http://www.ubuntu.com/download/desktop
    1. Открыть страницу в Firefox/Google-Chrome.
    2. Сверху над кнопкой "Download" сменить с 32 бит на 64 бит.
    3. Посмотреть внимательно на URL, откуда будет загружатся имидж.

    Код, который это делает трудно понять без контекста.

    wvxvw, 16 Августа 2012

    Комментарии (48)
  9. PHP / Говнокод #11559

    +141

    1. 1
    $exchange = $this->user_model->getFriends( $options );

    Чтоб никто не догадался... )

    dzen, 09 Августа 2012

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    foreach (var item in text.Split(' ')) {
    	if (!string.IsNullOrEmpty(item)) {
    		text = item;
    		break;
    	}
    }

    переменная text всегда содержит несколько пробелов и затем идентификатор.

    paladin80, 02 Августа 2012

    Комментарии (64)
  11. JavaScript / Говнокод #11474

    +141

    1. 1
    <div onclick="javascript: fun1();" style="position:absolyte; z-index:1;" id="div1">text</div>

    AjiTae, 24 Июля 2012

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