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

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

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var f,i:Integer;
    begin
    for i:=1 to 100 do
    for i:=100 downto 1 do
    writeln('I=',i);
    end.

    "ПОЧЕМУ ЭТА ТВАР СЧИТАЕТ ТОЛЬКО В 1 СТОРОНУ?!"

    grouch, 30 Мая 2011

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

    +125

    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
    /// <summary>
            /// Return a DateTime version of the given Jabber date.  Example date: 20020504T20:39:42
            /// </summary>
            /// <param name="dt">The pseudo-ISO-8601 formatted date (no milliseconds)</param>
            /// <returns>A (usually UTC) DateTime</returns>
            public static DateTime JabberDate(string dt)
            {
                if ((dt == null) || (dt == ""))
                    return DateTime.MinValue;
                try
                {
                    return new DateTime(int.Parse(dt.Substring(0, 4)),
                                        int.Parse(dt.Substring(4, 2)),
                                        int.Parse(dt.Substring(6, 2)),
                                        int.Parse(dt.Substring(9,2)),
                                        int.Parse(dt.Substring(12,2)),
                                        int.Parse(dt.Substring(15,2)));
                }
                catch
                {
                    return DateTime.MinValue;
                }
            }
            /// <summary>
            /// Get a jabber-formated date for the DateTime.   Example date: 20020504T20:39:42
            /// </summary>
            /// <param name="dt">The (usually UTC) DateTime to format</param>
            /// <returns>The pseudo-ISO-8601 formatted date (no milliseconds)</returns>
            public static string JabberDate(DateTime dt)
            {
                return string.Format("{0:yyyy}{0:MM}{0:dd}T{0:HH}:{0:mm}:{0:ss}", dt);
            }

    Перевод DateTime в строку вида "20020504T20:39:42" и обратно. Из исходников библиотеки Jabber-net.
    TryParseExact и ToString с форматом "yyyyMMddTHH:mm:ss" - это пусть лентяи используют.

    Nagg, 09 Мая 2011

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

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    if (NewsId == 0)
        categoriesList.Get();
    else
        categoriesList.Get();

    Встретил при модернизации одного веб ресурса с посещаемостью около 10 тыс.пользователей в сутки

    lexx-pnz, 31 Марта 2011

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

    +125

    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
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    public void BindBanners()
            {
                StringBuilder obj1 = new StringBuilder();
                
                obj1.Append("<div class='contentdiv'>");
                obj1.Append("<div class='showHideDivContent' style='width:275px;'>");
                obj1.Append(" </div>");
                obj1.Append("<img src='"+ Page.ResolveUrl("portals/_default/Skins/Life2Good/Images/tabSlide1.jpg") +"' alt='' usemap='#MaptabSlide1' />");
                obj1.Append("</div>");
             
             ........... 
    
                string[] objArray = new string[10];
                objArray[0] = obj1.ToString();
                objArray[1] = obj2.ToString();
                objArray[2] = obj3.ToString();
                objArray[3] = obj4.ToString();
                objArray[4] = obj5.ToString();
                objArray[5] = obj6.ToString();
                objArray[6] = obj7.ToString();
                objArray[7] = obj8.ToString();
                objArray[8] = obj9.ToString();
                objArray[9] = obj10.ToString();
                objArray[10] = obj11.ToString();
                //objArray[11] = obj12.ToString();
                //objArray[12] = obj13.ToString();
                //objArray[13] = obj14.ToString();
                //objArray[14] = obj15.ToString();
                SetBanners(objArray);
                //Response.Write(LitContentdiv1.Text + LitContentdiv2.Text + LitContentdiv3.Text + LitContentdiv4.Text + LitContentdiv5.Text);
            }
    
    public void SetBanners(string[] objArray)
            {
                OLOLOProj.Modules.ManageHomePageBanners.ManageHomePageBannersController  objBannerController = new OLOLOProj.Modules.ManageHomePageBanners.ManageHomePageBannersController();
                List<OLOLOProj.Modules.ManageHomePageBanners.ManageHomePageBannersInfo> objBannerInfo = objBannerController.GetActiveHomeBanners();
                for (int i = 0; i < objBannerInfo.Count; i++)
                {
                    if (i == 0)
                    {
                        LitContentdiv1.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
                    if (i == 1)
                    {
                        LitContentdiv2.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
    
                    if (i == 2)
                    {
                        LitContentdiv3.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
    
                    if (i == 3)
                    {
                        LitContentdiv4.Text = objArray[objBannerInfo[i].ItemId - 1];
    
                    }
                    if (i == 4)
                    {
                        LitContentdiv5.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
                    if (i == 5)
                    {
                        LitContentdiv6.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
                    if (i == 6)
                    {
                        LitContentdiv7.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
                    if (i == 7)
                    {
                        LitContentdiv8.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
    
                    //Mukesh
                    if (i == 8)
                    {
                        LitContentdiv9.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
    
                    if (i == 9)
                    {
                        LitContentdiv10.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
    
                    if (i == 10)
                    {
                        LitContentdiv11.Text = objArray[objBannerInfo[i].ItemId - 1];
                    }
    
                }
                }

    поддержка одного интернет магазина. мне нужно добавить еще один баннер на сайт, а там такое....

    DJm00n, 21 Марта 2011

    Комментарии (6)
  6. Си / Говнокод #5968

    +125

    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
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    #line 411 "ext/standard/var_unserializer.c"
    {
    	YYCTYPE yych;
    
    	if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
    	yych = *YYCURSOR;
    	switch (yych) {
    	case 'C':
    	case 'O':	goto yy13;
    	case 'N':	goto yy5;
    	case 'R':	goto yy2;
    	case 'S':	goto yy10;
    	case 'a':	goto yy11;
    	case 'b':	goto yy6;
    	case 'd':	goto yy8;
    	case 'i':	goto yy7;
    	case 'o':	goto yy12;
    	case 'r':	goto yy4;
    	case 's':	goto yy9;
    	case '}':	goto yy14;
    	default:	goto yy16;
    	}
    yy2:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy95;
    	default:	goto yy3;
    	}
    yy3:
    #line 733 "ext/standard/var_unserializer.re"
    	{ return 0; }
    #line 442 "ext/standard/var_unserializer.c"
    yy4:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy89;
    	default:	goto yy3;
    	}
    yy5:
    	yych = *++YYCURSOR;
    	switch (yych) {
    	case ';':	goto yy87;
    	default:	goto yy3;
    	}
    yy6:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy83;
    	default:	goto yy3;
    	}
    yy7:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy77;
    	default:	goto yy3;
    	}
    yy8:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy53;
    	default:	goto yy3;
    	}
    yy9:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy46;
    	default:	goto yy3;
    	}
    yy10:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy39;
    	default:	goto yy3;
    	}
    yy11:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy32;
    	default:	goto yy3;
    	}
    yy12:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy25;
    	default:	goto yy3;
    	}
    yy13:
    	yych = *(YYMARKER = ++YYCURSOR);
    	switch (yych) {
    	case ':':	goto yy17;
    	default:	goto yy3;
    	}
    yy14:
    	++YYCURSOR;
    
    /* далее еще несколько похожих кусков кода чуть менее хардкорных */

    http://svn.php.net/viewvc/php/php-src/trunk/ext/standard/var_unserializer.c?view=markup

    Исходники функции unserialize в php, не зря она так медленно работает на больших массивах...

    dim-s, 13 Марта 2011

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

    +125

    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
    // ****************************************************************************************
            // checkArguments
            // 
            // 
            // ****************************************************************************************
            private bool checkArguments()
            
            {
    
                bool boolSourceUserNameOK      = false;
                bool boolPathOK                = true;
    
                // Check the user name has been provided.
                if (this.UserName != null)
                {
                    if (this.UserName.Length > 0)
                    {
                        boolSourceUserNameOK = true;
                    }
                }
    
                // Check the source path has been provided.
                if (this.SourcePath == null)
                {
                    boolPathOK = false;
                }
                else
                {
                    if (this.SourcePath.Length == 0)
                    {
                        boolPathOK = false;
                    }
                }
    
                return boolSourceUserNameOK && boolPathOK;
    
            }

    Очень поэтичная проверка на две пустые строки =)

    victorko, 25 Января 2011

    Комментарии (30)
  8. Си / Говнокод #5186

    +125

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    int function(void) {
        static int i, state = 0;
        switch (state) {
            case 0: /* start of function */
            for (i = 0; i < 10; i++) {
                state = 1; /* so we will come back to "case 1" */
                return i;
                case 1:; /* resume control straight after the return */
            }
        }
    }

    Нестандартное применение свитча.
    Тут оно нафиг не нужно.
    Источник: http://www.gamedev.ru/code/forum/?id=142536

    TarasB, 09 Января 2011

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

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    static void Initialize()
            {
                if (Manager.Current == null)
                {
                    new Manager();
                }
            }

    человек изобрел новый тип singleton, instance которого выставляется при вызове конструктора его типа. Если вызвать два раза - второй перекроет первый. Тип public, конструктор тоже public

    eval_2009, 05 Января 2011

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

    +125

    1. 1
    m_PRICEURL = m_PRICEURL.Replace("{0}", "2010");

    Новый Год принёс не только подарки, но и коллекцию говнокода вроде такого

    Shokker, 03 Января 2011

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

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <form ...>
    ...
    <input type="text"  id="fname" name="fname"  method="post" maxlength=4></input>
    ...
    </form>

    fddpro, 28 Октября 2010

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