1. C# / Говнокод #9143

    +123

    1. 1
    internal static string TryingDownloadAgainDotDotDot

    Индусы суровы.

    anycolor, 17 Января 2012

    Комментарии (9)
  2. Java / Говнокод #9142

    +74

    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
    public class DataRetriever
    {
        public static Object deserializeData(String fileName)
        {
            Object returnValue = null;
            try
            {
                File inputFile = new File(fileName);
                if (inputFile.exists() && inputFile.isFile())
                {
                    try (ObjectInputStream readIn = new ObjectInputStream(new FileInputStream(fileName)))
                    {
                        returnValue = readIn.readObject();
                    }
                }
                else
                {
                    throw new RuntimeException(new FileNotFoundException(fileName + " not found"));
                }
            }
            catch (ClassNotFoundException | IOException exc)
            {
                throw new RuntimeException(exc);
            }
            return returnValue;
        }
    
        private DataRetriever() { throw new AssertionError(); }
    }

    Паранойя неконтролируемых исключений

    dwinner, 17 Января 2012

    Комментарии (6)
  3. JavaScript / Говнокод #9141

    +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
    $(function() {
        var $track = $('#track');
        var $thumb = $('#thumb');
    
        document.getElementById('thumb').setAttribute('onDragStart', 'return false');
    
        $thumb.mousedown(function(e) {
            clickPointX = e.pageX - $(this).offset().left;
            isClicked = true;
    
            $thumb.stop();
        });
    });

    Пример с хабры, лишний код был опущен. Видимо религия автора не позволила задать атрибут по другому.

    SerDIDG, 16 Января 2012

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

    −134

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    с = 0;
    Для Каждого стчТовары Из ЗаказНаряд.Товары Цикл
    	нстчТовары = НоваяНалоговая.Товары.Добавить();
    	нстчТовары.Номенклатура = ЗаказНаряд.Товары[с].Номенклатура;
    	нстчТовары.Количество = ЗаказНаряд.Товары[с].Количество;
    	нстчТовары.Цена = ЗаказНаряд.Товары[с].Цена; 
    	...
    	нстчТовары.СуммаВсего = ЗаказНаряд.Товары[с].СуммаВсего;
    	с = с + 1;
    КонецЦикла;

    Ни шагу без счетчика! Особенно в итераторе. =)

    zfilin, 16 Января 2012

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

    +161

    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
    <?php
    //...
    while (($data = fgetcsv($handle, 1000, $this->CSV_SEPARATOR, $this->CSV_ENCLOSURE)) !== FALSE) {
    				$num = count($data);
    				$item = array();
    
    				for ($c=0; $c < count($data); $c++) {
    					$item[] = $data[$c];
    				}
    
    //некие действия с $item. $data больше нигде используется
    
    ?>

    Итого, $num не используется в цикле, да и сам по себе цикл - бесполезен, можно было сделать просто $item = $data; Не говоря уже о том, что можно просто использовать $data.

    Код из одного модуля для opencart.

    mr.The, 16 Января 2012

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

    +149

    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
    <?php
    function check_brackets($s)
    {
        $brackets = array('(' => ')' , '[' => ']', '{' => '}');
        $stack = array();
        
        for($i = 0; $i < strlen($s); $i++)
        {
            if(in_array($s[$i], array_keys($brackets)))
            {
                array_push($stack, $brackets[$s[$i]]);
            }
            elseif(in_array($s[$i], array_values($brackets)))
            {
                if(empty($stack) || array_pop($stack) != $s[$i])
                {
                    return false;
                }
            }
        }
        if(empty($stack)) return true;
    }
    
    if($_POST["bracket_string"] && $_POST["bracket_string"] <= 30)
    {
        if(check_brackets($_POST["bracket_string"]))
        {
            $message = "Check passed";
        }
        else $message = "Check failed";
    }
    
    ?>

    Финальная версия.

    varg242, 16 Января 2012

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

    +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
    //Рекурсивная функция цепной проверки категории
    	function category(){
    		static $category;
    		static $level=0;
    		$myrow = mysql_query("SELECT id,pot_category FROM categroy WHERE sysname='".$_GET['do'][$level]."'");
    		if(mysql_num_rows($myrow)){
    		$result = mysql_fetch_assoc($myrow);
    		if($result['no_viev']==0){
    		if($result['sysname']==end($_GET['do'])){
    			return 'category';
    			}else{
    				$level++;
    				$this->category();
    				}
    				}else{return 'no_viev';}
    		}else{
    			//Если категории не найдено то показываем ошибку 404
    			return FALSE;}
    		
    		}

    Бессмысленная рекурсия

    lans8097, 16 Января 2012

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

    +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
    enum class TClockWise
    {
        CW=true,
        CCW=false
    };
    
    template<class T>
    std::ostream& operator<<(std::ostream &out, const TClockWise Cow)
    {
        switch(Cow)
        {
            case TClockWise::CW: out << "CW"; break;
            case TClockWise::CCW: out << "CCW"; break;
            default: MUST_NEVER_CAL_THAT;
        }
        return out;
    }

    Говногость, 16 Января 2012

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

    +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
    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
    class SMSSender
        {
            const string API_URL = "http://api.sms****.ru/?";
            string base_URL = "";
            private string _email;
            private string _password;
            XmlDocument doc = new XmlDocument();
            Dictionary<string,string> parameters;
    
            public SMSSender(string email, string password)
            {
                _email = email;
                _password = password;
                base_URL = API_URL + "email=" + _email + "&password=" + _password + "&";
            }
    
            public bool LoginAttempt()
            {
                parameters = new Dictionary<string, string>();
                parameters.Add("method", "login");
                return APIRequest(parameters);
            }
    
            public KeyValuePair<int,object> GetCreditsLeft()
            {
                parameters = new Dictionary<string, string>();
                parameters.Add("method", "get_profie");
                APIRequest(parameters);
                return new KeyValuePair<int, object>(0, int.Parse(GetValueByName("credits")));
            }
    
            public int SendSMS(string senderName, string internationalNumber, string text)
            {
                parameters = new Dictionary<string, string>();
                parameters.Add("method", "push_msg");
                parameters.Add("text", text);
                parameters.Add("phone", internationalNumber);
                parameters.Add("sender_name", senderName);
                APIRequest(parameters);
                return int.Parse(GetValueByName("n_raw_sms"));
            }
    
            public KeyValuePair<int, object> GetLastError()
            {
                return new KeyValuePair<int, object>(int.Parse(doc.GetElementsByTagName("err_code")[0].InnerText), doc.GetElementsByTagName("text")[0].InnerText);
            }
    
            private string GetValueByName(string keyToReturn)
            {
                return doc.GetElementsByTagName(keyToReturn)[0].InnerText;
            }
    
            private bool APIRequest(Dictionary<string, string> param)
            {
                string URL = base_URL;
                foreach (KeyValuePair<string, string> p in param)
                    URL = URL + p.Key + "=" + p.Value + "&";
                doc.Load(URL);
                if (GetLastError().Key == 0) return true;
                else throw new SMSSenderException(GetLastError().Key, GetLastError().Value.ToString());
            }
        }
    
        class SMSSenderException : Exception
        {
            int _errorCode;
            string _Message;
            public SMSSenderException(int errorCode, string Message)
            {
                _errorCode = errorCode;
                _Message = Message;
            }
    
            public int ErrorCode
            {
                get { return _errorCode; }
            }
    
            override public string Message
            {
                get { return _Message; }
            }
        }
    }

    API сервер отправки принимает запросы вида http://api.****sms.ru?method=send_msg&phone=+79 123456789&text=abcdef, возвращает простейший XML с err_code и результатом выполнения запроса.
    Казалось бы, 20 строчек кода и проблема решена? Нифига, без специального класса для этого не обойтись. Совсем никак. И уж совсем ничего нельзя делать без специального Exception для этого дела.

    A1mighty, 16 Января 2012

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

    +150

    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
    function check($string_to_search) {
    $stack = array();
    foreach (preg_split("//", $string_to_search) as $char) {
    switch ($char) {
    case '{':
    case '(':
    case '[':
    array_push($stack, $char);
    break;
    case '}':
    if (array_pop($stack) != "{") return false;
    break;
    case ')':
    if (array_pop($stack) != "(") return false;
    break;
    case ']':
    if (array_pop($stack) != "[") return false;
    break;
    }
    }
    return true;
    }

    by kolen

    varg242, 16 Января 2012

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