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

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

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public static boolean isEmpty(CharSequence str) {
        if (str == null || str.length() == 0)
            return true;
        else
            return false;
    }

    Я считаю это странным
    Нашёл в android.text.TextUtils

    jonasas, 07 Июля 2014

    Комментарии (22)
  3. VisualBasic / Говнокод #16218

    −130

    1. 1
    2. 2
    3. 3
    4. 4
    Привет всем, помогите решить проблему.
    reached limit: cannot create any more controls for this from
    Как я понял, число контроллеров не должно превышать 255-256 в одной форме. Как этого избежать?
    Можно ли вообще создавать формы с общими переменными? Спасибо

    http://vbbook.ru/visual-basic/vvedenie-visual-basic/

    brutushafens, 24 Июня 2014

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

    +142

    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
    public Config(string[] str)
            {
                InitializeComponent();
                try
                {
                    textBox5.Text = str[0];
                    textBox6.Text = str[1];
                    textBox1.Text = str[2];
                    textBox2.Text = str[3];
                    textBox3.Text = str[4];
                    textBox4.Text = str[5];
                    textBox7.Text = str[6];
                    raz = str[7];
                }
                catch (Exception)
                {
                    return;
                }
            }

    Классика. Говнокод эпохи барокко. Строк мало, но пованивает.

    GreatMASTERcpp, 19 Июня 2014

    Комментарии (22)
  5. PHP / Говнокод #16144

    +159

    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
    97. 97
    98. 98
    99. 99
    <?
    function flevel($exp)
    {
    include_once "config/mysql.php";
    
    	$querylevel = "SELECT maxexp FROM level";
    	$levelquery = mysql_query($querylevel);
    	while($rowslvl = mysql_fetch_row($levelquery))
    	{
    	$levelarr[] = $rowslvl[0];
    	}
    	
    	
    	
    	switch(TRUE)
        {
    		
        case ($exp <= $levelarr[0]):
        return $level = "1";
        break;
    
        case ($exp <= $levelarr[1]):
        return $level = "2";
        break;
    
        case ($exp <= $levelarr[2]):
        return $level = "3";
        break;
    
        case ($exp <= $levelarr[3]):
        return $level = "4";
        break;
    	
    	case ($exp <= $levelarr[4]):
        return $level = "5";
        break;
    	
    	case ($exp <= $levelarr[5]):
        return $level = "6";
        break;
    	
    	case ($exp <= $levelarr[6]):
        return $level = "7";
        break;
    	
    	case ($exp <= $levelarr[7]):
        return $level = "8";
        break;
    	
    	case ($exp <= $levelarr[8]):
        return $level = "9";
        break;
    	
    	case ($exp <= $levelarr[9]):
        return $level = "10";
        break;
    	
    	case ($exp <= $levelarr[10]):
        return $level = "11";
        break;
    	
    	case ($exp <= $levelarr[11]):
        return $level = "12";
        break;
    	/* ... */
    	case ($exp <= $levelarr[42]):
        return $level = "43";
        break;
    	
    	case ($exp <= $levelarr[43]):
        return $level = "44";
        break;
    	
    	case ($exp <= $levelarr[44]):
        return $level = "45";
        break;
    	
    	case ($exp <= $levelarr[45]):
        return $level = "46";
        break;
    	
    	case ($exp <= $levelarr[46]):
        return $level = "47";
        break;
    	
    	case ($exp <= $levelarr[47]):
        return $level = "48";
        break;
    	
    	case ($exp <= $levelarr[48]):
        return $level = "49";
        break;
    	
    	case ($exp > $levelarr[49]):
        return $level = "50";
        break;
        }
    }
    ?>

    Пришел в проект по созданию веб игры, смотрю организацию проекта... Жопа там, что папки, что код, что база одно и тоже, каша. Вот нашел одну забавную функцию. Она возвращает уровень персонажа судя по кол-во XP. Вместо того что бы писать 'SELECT `level` FROM `level` WHERE `minexp` <= ' . $exp . ' AND `maxexp` > ' . $exp надо было switch .. case писать. Нету слов.

    volter9, 11 Июня 2014

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

    +166

    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
    $response = LINQ::from($products->as_array('id'))
                        ->join($images)
                        ->on(function ($from_key, $from_value, $join_key, $join_value){
                            return $from_key === $join_key;
                        })
                        ->select(function($from_key, $from_value, $join_key, $join_value)use($searchStr){
                            $replaceStr = '<span class="badge badge-success">'.$searchStr.'</span>';
                            return array(
                               'title' => str_ireplace($searchStr, $replaceStr, $from_value->title),
                               'href' => '/product/'.$from_value->alias.'.html',
                               'thumb' => '/public/'.$join_value->thumb
                            );
                        })
                        ->result();

    Так бывает когда приверженца C# заставляют писать на PHP. Он обязательно напишет свой аналог LINQ с театром и балеринами, а потом будет ныть о том, что в похапе нет нормальных лямбд.

    Strannik1941, 08 Июня 2014

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

    +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
    //checks if the string is a hex stream e.g. "31 32 33 6A F8"
            private bool _IsHexStream(string sValue)
            {
                sValue = sValue.Trim();
    
                
                if (sValue.Length < 2)
                {
                    return false;
                }
    
                for (int i = 0; i < sValue.Length; i++)
                {
                    if(_IsHexChar(Convert.ToChar(sValue.Substring(i,1))) == false)
                    {
                        return false;
                    }
                }
    
                //every third char must be a space, only possible in case of two bytes
                if (sValue.Length > 3)
                {
                    for (int i = 2; i < sValue.Length; i += 3)
                    {
                        string sBuffer = sValue.Substring(i, 1);
    
                        if (sBuffer.Equals(" ") == false)
                        {
                            return false;
                        }
                    }
                }
    
                //string is a hex stream 
                return true;
            }

    blackhearted, 02 Июня 2014

    Комментарии (22)
  8. JavaScript / Говнокод #16082

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var percent = 0;
    setInterval(function() {
        if(percent < 100) {
            percent += 10;
            showprogress(percent);
        }
    }, 50);

    Прогресс-бар асинхронной загрузки картинки

    kissarat, 30 Мая 2014

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $html = file_get_contents('http://2ip.ru/'); 
    preg_match_all('#<big id=\"d_clip_button\">(.*?)</big>#', $html, $ip); 
    $ip2 = $ip[1][0]; 
    
    if($pass == $pass2) 
    {$data = file_get_contents("http://$server$domain/$catalog/$files$format?login=$login&pass=$pass&email=$email&name=$name&famil=$famil&skype=$skype&ip=$ip2"); 
    MessageBox("$data", "Ответ с сервера"); 
    }else{ 
    messageDlg("Пароли не совпадают!", mtWarning, MB_OK);}

    Вот такая незамысловатая регистрация на сервере. GET запросом с использованием file_get_contents. Ну и конечно же серверу надо обязательно отправить свой ip.

    any0ne2567, 17 Апреля 2014

    Комментарии (22)
  10. Java / Говнокод #15661

    +65

    1. 1
    2. 2
    3. 3
    4. 4
    Graphics2D g = ...;
    String str = "Some string";
    FontRenderContext frc = g.getFontRenderContext();
    double height = g.getFont().createGlyphVector(frc, str).getPixelBounds(null, 0, 0).getHeight();

    Мне нужно было узнать точную высоту строки, которую я рисую на объекте Image. Спасибо stackoverflow за то, что он есть, по-моему, до этого способа просто невозможно догадаться, даже копая документацию, за несколько часов...

    evg_ever, 03 Апреля 2014

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

    +136

    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
    #include <stdio.h>
    #include <inttypes.h>
    
    inline uint8_t mid_ch (uint8_t a, uint8_t b, uint8_t res)
    {
      if (b == 0){ if (a >= 2) return mid_ch (a-2, b  , res+1); else return res;}
      if (a == 0){ if (b >= 2) return mid_ch (a  , b-2, res+1); else return res;}
      return mid_ch (a-1, b-1, res+1);
    }
    
    uint64_t mid_0_ch (uint64_t a, uint64_t b)
    {
      return mid_ch(a, b, 0);
    }
    
    
    int main(void)
    {
      printf("%u %u", mid_0_ch (253, 123), (253+123)/2);
      return 0;
    }

    Нахождение среднего арифметического двух чисел через рекурсию. Сначала сделал для uint64_t чтобы это имело смысл, ведь сложение двух 64-битных чисел с записью результата в третье может привести к целочисленному переполнению (для 64-битных чисел, сложение которых может привести к переполнению, этот код работал чрезвычайно медленно, поэтому я ограничился 8-битными). При таком наркоманско-рекурсивном алгоритме этого переполнения не будет. 128-битные типы есть только как нестандартное расширение, но тогда еще возникает вопрос, как найди среднее арифметическое двух таких 128-битных чисел? А если есть 256-битные, то как тогда их них находить среднеарифметическое... ну и так далее.
    Можно эту проблему еще решать через битовые маски т.е. убрать из обеих чисел самые старшие биты (предварительно сохранив их), сложить эти два числа, поделить на два, потом уже эти сохраненные биты вида 10000... или 0000... оба поделить на 2(сдвинуть на один разряд) и прибавить. Наркоманство какое-то.
    Почему бы не сделать в С некий особый целочисленный тип, в котором любая фигня влезет, но который бы использовался только временно для промежуточных вычислений, чтобы не делать бэкапы битиков всяких?

    j123123, 31 Марта 2014

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