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

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // где-то:
      public boolean isLoaded() {
        return (boolean) (this.sequencer.isOpen());
      }
    
    //там:
    public boolean isOpen();

    код к книжке

    Lure Of Chaos, 19 Ноября 2010

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

    +114

    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
    public static DataTable GetMainMenu()
    {
        DataTable dt = null;
        if (DataManager.IsClientServer)
        {
            dt = new DataTable();
            using (OracleCommand qGetMainMenu = new OracleCommand())
            {
                qGetMainMenu.Connection = DataManager.OracleSession;
                qGetMainMenu.CommandText = String.Format("SELECT * FROM {0}.V_MENU", DataManager.DataSchema);
                using (OracleDataReader odr = qGetMainMenu.ExecuteReader())
                {
                    dt.Load(odr);
                    odr.Close();
                }
            }
        }
        else
        {
            using (Service.AbvServiceClient client = Utils.CreateServiceClient())
            {
                dt = client.GetMainFormMenu();
            }
        }
        return dt;
    }

    2-х или 3-х звенка? прямой вызов или Wcf-служба?
    з.ы. повсеместно во всем проекте

    coyote, 18 Ноября 2010

    Комментарии (12)
  4. Си / Говнокод #4665

    +132

    1. 1
    2. 2
    3. 3
    const long long_value = PyInt_AsLong(value);                                      
    const int int_value = (int)long_value;                                            
    if (PyErr_Occurred() || long_value != int_value) { /* Overflow */

    PyMongo...

    raorn, 17 Ноября 2010

    Комментарии (12)
  5. JavaScript / Говнокод #4641

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function check() {
      if (document.login.user.value == "user" && document.login.password.value == "correct_password")
        window.location.href = 'http://this.site/login.html';
      else
        window.location.href = 'http://this.site/loginfehler.html';
    return false;
    }

    http://ithappens.ru/bytag/webdev/13 - И смех и грех!

    dwinner, 15 Ноября 2010

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

    +108

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    ...
    while (true)
    {
         if(i > 5 || SourceNumber == Math.Floor(SourceNumber)) break;
         ...
         i++;
    }
    ...

    Мартин, 15 Ноября 2010

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

    +156

    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
    <?php
    
            // ...
            $buffer='$buffer';
            $text = '$text';
            // ...
    
            $file = <<<CODE
    <?php
    
        // ...
    
        function prepareText($text)
        {
            $text = str_replace("\\n\\r", " ", $text);
            $text = str_replace("\\r\\n", " ", $text);
            $text = str_replace("\\n", " ", $text);
    
            return $text;
        }
    
        // ...
    CODE;

    Суть такова: нужно было генерировать пхп код, который впоследствии должен был выполняться на клиенте.
    Угадайте, зачем нужны переменные $buffer, $text и еще много таких, в которых лежит имя самой переменной в строке?

    user654321, 26 Октября 2010

    Комментарии (12)
  8. PHP / Говнокод #4376

    +164

    1. 1
    2. 2
    3. 3
    if( empty( $page ) || empty( $_REQUEST['page'])) {
    	if( !empty($_REQUEST['amp;page'])) {
    		$page = $_REQUEST['amp;page'];

    из VirtueMart - компонента для Джумлы.
    интересно, почему нету проверок на $_REQUEST['amp;amp;page']; и $_REQUEST['amp;amp;amp;page']; ?

    Shock, 17 Октября 2010

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

    +158

    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
    <?
    // регистрационная информация (пароль #1)
    // registration info (password #1)
    $mrh_pass1 = "Morbid11";
    
    // чтение параметров
    // read parameters
    $out_summ = $_REQUEST["OutSum"];
    $inv_id = $_REQUEST["InvId"];
    $shp_item = $_REQUEST["Shp_item"];
    $crc = $_REQUEST["SignatureValue"];
    
    $crc = strtoupper($crc);
    
    $my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item"));
    
    // проверка корректности подписи
    // check signature
    if ($my_crc != $crc)
    {
      echo "bad sign\n";
      exit();
    }
    
    // проверка наличия номера счета в истории операций
    // check of number of the order info in history of operations
    $f=@fopen("order.txt","r+") or die("error");
    
    while(!feof($f))
    {
      $str=fgets($f);
    
      $str_exp = explode(";", $str);
      if ($str_exp[0]=="order_num :$inv_id")
      { 
    	echo "Операция прошла успешно\n";
    	echo "Operation of payment is successfully completed\n";
      }
    }
    fclose($f);
    ?>

    учитесь, как надо с онлайн-наличкой работать
    http://www.robokassa.ru/Doc/demo_php.zip

    xXx_totalwar, 12 Октября 2010

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

    +152

    1. 1
    $this->Справочники = null;

    А вроде серьезная система...

    shizzard, 20 Сентября 2010

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

    +143

    1. 1
    (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

    "Использование значения "****" для параметра "Пароль для базы данных" невозможно. Значение должно соответствовать регулярному выражению (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
    говноюзабилити при инсталляции Джумлы - разрабы забыли, что регэкспы: а. не все знают, б. сложно читать. Почему бы не вывести сообщение в понятном виде, вроде "пароль должен состоять из ..., и не содержать символов ..., и должен быть от .. до .. символов длиной"?

    Lure Of Chaos, 18 Сентября 2010

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