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

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

    +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
    //Server errors
    var BAD_REQUEST = 400; 			//Неверный запрос
    var UNAUTHORIZED = 401; 			//Authentication Required
    var METHOD_NOT_ALLOWED = 405; 		//Метод не поддерживается
    var SERVICE_UNAVAILABLE = 503; 	//Сервис недоступен
    
    //User errors
    var UNKNOWN_ERROR = 1000; 			//Неизвестная ошибка
    var BAD_PARAMETERS = 1001; 		//Неверные параметры запроса
    var BAD_LOGIN = 1002; 				//Неверный логин
    var BAD_VERSION = 1003; 			//Неверна задана версия
    var AUTHENTICATION_ERROR = 1004; 	//Ошибка аутентификации
    var NO_SUCH_RECORD = 1005; 		//Запись не найдена (например, при попытке удалить несуществующий контакт будет выдана данная ошибка)
    
    
    var BAD_CONTACT_ID = 2000; 		//Неверный ID контакта
    var REV_GET_FAILED = 2001; 		//Ошибка получения ревизии
    
    var BAD_CAPTCHA = 3000;
    var BAD_EMAIL = 3001;
    var BAD_PASSWORD = 3002;
    var BAD_AGREEMENT = 3003;
    var BAD_IPPORT_ID = 3004;
    var BAD_ACTIVATION_ID = 3005;

    Очень здорово и удобно объявлять константы(и др. объекты) в общей области видимости!

    rudolff, 05 Августа 2010

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

    +144

    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
    if ($_FILES['file1']['tmp_name'])
    	{
    		if($_FILES['file1']['type'] == 'image/gif' or $_FILES['file1']['type'] == 'image/jpeg' or $_FILES['file1']['type'] == 'image/pjpeg' or	$_FILES['file1']['type'] == 'image/png')
    		{
    			if(move_uploaded_file($_FILES['file1']['tmp_name'], $upload_foto_new))
    			{
    				print 1;//good
    			}
    			else
    			{
    				print 2;//bad
    			}
    
    		}
    			else
    				print 3;//wrong format
    	}

    загрузка картинки

    Lure Of Chaos, 03 Августа 2010

    Комментарии (6)
  4. ActionScript / Говнокод #3857

    −92

    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
    Вот так выкидывает исключение 
    (this._sliderGraphic as flash.display.DisplayObject).addEventListener(flash.events.MouseEvent.MOUSE_DOWN, function (arg1:flash.events.MouseEvent):*
                {
                    _holdPin();
                    return;
    			})
    (this._sliderGraphic as flash.display.DisplayObject).addEventListener(flash.events.MouseEvent.MOUSE_UP, function (arg1:flash.events.MouseEvent):*
                {
                    _releasePin();
                    return;
                })
    
    А вот так нет :)
                (this._sliderGraphic as flash.display.DisplayObject).addEventListener(flash.events.MouseEvent.MOUSE_DOWN, function (arg1:flash.events.MouseEvent):*
                {
                    _holdPin();
                    return;
    			})
                o=this._sliderGraphic as flash.display.DisplayObject;//добавленно мной
                (this._sliderGraphic as flash.display.DisplayObject).addEventListener(flash.events.MouseEvent.MOUSE_UP, function (arg1:flash.events.MouseEvent):*
                {
                    _releasePin();
                    return;
                })

    вот наткнулся в исходниках что мне досталось :)

    ageron, 03 Августа 2010

    Комментарии (6)
  5. Java / Говнокод #3825

    +74

    1. 1
    for (Integer i = 0; i<_pwiList.size(); i++)

    Вот к чему приводит бездумное использование классов-обёрток "для унификации". Конечно, оптимизатор может здесь сообразить, но не факт. А если данный фрагмент трактовать буквально, то i++ приведёт к unboxing, увеличению и последующему boxing.

    konsoletyper, 30 Июля 2010

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

    +147

    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
    <?php
    
    require_once 'MDB2.php';
    
    $dsn = "mysql://user:pass@localhost/db";
    
    $mdb2 = & MDB2::singleton($dsn);
    if (PEAR::isError($mdb2)) {
        die($mdb2->getMessage());
    }
    
    class DB {
    
        static private $instance = NULL;
        static private $mdb2 = NULL;
    
        private function  __construct() {
            self::$mdb2 = & MDB2::singleton();
            self::$mdb2->exec("SET NAMES utf8");
            self::$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);
        }
    
        static function getInstance() {
            if(self::$instance == NULL) {
                self::$instance =  & new DB();
            }
            return self::$instance;
        }
    
        public function query($sql = false) {
            $res = self::$mdb2->query($sql);
            if (PEAR::isError($res)) {
                die($res->getMessage());
            }
            if(!$res->numRows()) {
                return FALSE;
            }
            return $res;
        }
    
        private function __clone() {
    
        }
    }
    
    
    class Page{
    
        public   $limit = 10;
        private $conn = FALSE;  
    
        function  __construct() {
            $this->conn = & DB::getInstance();
        }
    
        public function getPageList() {
    
            $result = FALSE;
    
            $sql = "SELECT * FROM table LIMIT ".$this->limit;
            $res = $this->conn->query($sql);
            if($res) {
                $result = $res->fetchAll();
            }
            
            return $result;
        }
    
    }
    
    $p = & new Page();
    $nodes = $p->getPageList(25);
    print '<pre>'.print_r($nodes, 1).'</pre>';
    
    ?>

    Дайте, пожалуйста, оценку такой конструкции. Не говнокод ли?

    cartman, 29 Июля 2010

    Комментарии (6)
  7. VisualBasic / Говнокод #3812

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    If (gs.OrgID=0) Or gs.OrgID = 0 Then
     gs.OrgID = 0
     Response.Redirect("<%=cb_home%>default.asp?timeout=true")
    End If

    О_о

    dimas_art, 29 Июля 2010

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    function repeattimer(functionname, looptime){
    	eval(functionname+"();");
    	setTimeout("repeattimer(\""+functionname+"\", "+looptime+");", looptime);
    }

    Не знаю насчёт того, ГК это или нет, но я бы сделал совсем не таким способом.

    XyHb, 28 Июля 2010

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

    +130

    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
    public static string[] cInt = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
    
    ...
    
    bool cont = true;
    int i=0;
    string ss = "";
    
    ...
    
    while ((cont) && (i < e_number.Text.Length))
    {
      if (Array.IndexOf(cInt, e_number.Text[i].ToString()) > -1)
      {
        ss = ss + e_number.Text[i];
        num = Convert.ToInt32(ss);
      }
      else { cont = false; }
      i = i + 1;
    }
    if (ss == "")
    { num = 0; }

    Это повергло меня в ужас. Проверка, введено ли в e_number числовое значение и преобразование его в int.

    WalterSullivan, 28 Июля 2010

    Комментарии (6)
  10. Python / Говнокод #3793

    −168

    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
    piarra=[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8, 8, 4, 1, 9, 7, 1, 6, 9, 3, 9, 9, 3, 7, 5, 1, 0, 5, 8, 2, 0, 9, 7, 4, 9, 4, 4, 5, 9, 2, 3, 0, 7, 8, 1, 6, 4, 0, 6, 2, 8, 6, 2, 0, 8, 9, 9, 8, 6, 2, 8, 0, 3, 4, 8, 2, 5, 3, 4, 2, 1, 1, 7, 0, 6, 7, 9]
    piarrb=[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8, 8, 4, 1, 9, 7, 1, 6, 9, 3, 9, 9, 3, 7, 5, 1, 0, 5, 8, 2, 0, 9, 7, 4, 9, 4, 4, 5, 9, 2, 3, 0, 7, 8, 1, 6, 4, 0, 6, 2, 8, 6, 2, 0, 8, 9, 9, 8, 6, 2, 8, 0, 3, 4, 8, 2, 5, 3, 4, 2, 1, 1, 7, 0, 6, 7, 9]
    
    result = []
    for i in range(len(piarra)**2):
    	result.append(0)
    
    def decr(a):
    	if a[-1]>0:
    		a[-1]-=1
    	else:
    		a.pop()
    		decr(a)
    		a.append(9)
    		if a[0]==0:
    			a.remove(0)
    		
    while piarra != [0]:
    	decr(piarra)
    	for i in range(len(piarrb)):
    		result[-1-i]+=piarrb[-1-i]
    	while(sorted(result)[-1]>9):
    		for i in range(len(result)):
    			if result[i]>9:
    				result[i]-=10
    				result[i-1]+=1
    				
    while result[0]==0:
    	result.remove(0)
    	
    sqrstr=''
    for i in result:
    	sqrsrt+=`i`
    print sqrstr

    Пи в квадрате. Оцените нетривиальность решений.

    htoto1, 27 Июля 2010

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

    +119

    1. 1
    2. 2
    3. 3
    4. 4
    percentDiscount = Math.Round( Math.Round( (toChequeLine.AmountDose - fromChequeLine.Amount) /
                                                                                      toChequeLine.AmountDose * 100, 6,
                                                                                      MidpointRounding.AwayFromZero)
                                                            , 1, MidpointRounding.AwayFromZero);

    Вычисляем процент с округлением до первого знака.

    markbrutt, 26 Июля 2010

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