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

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

    +169

    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
    /**
         * Retrieve minimum query length
         *
         * @deprecated after 1.3.2.3 use getMinQueryLength() instead
         * @return int
         */
        public function getMinQueryLenght()
        {
            return Mage::getStoreConfig(self::XML_PATH_MIN_QUERY_LENGTH, $this->getStoreId());
        }
    
        /**
         * Retrieve minimum query length
         *
         * @return int
         */
        public function getMinQueryLength(){
            return $this->getMinQueryLenght();
        }

    Интересный подход к орфографическим ошибкам :)

    vo1, 11 Ноября 2010

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

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php
    
            if($key === false){
                return false;
            }else{
                return $key;
            }

    user654321, 03 Ноября 2010

    Комментарии (24)
  4. PHP / Говнокод #4338

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    /* создать задачу */
    function add_problem($value) {
    ...
    }

    prof3d, 11 Октября 2010

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

    +169

    1. 1
    setInterval("(d=document).body.removeChild(d.body.appendChild(x=d.createElement('INPUT'))&&(x.style.display='none')&&!x.focus()&&x);",50);

    Запрещаем выделение текста на странице. Это пиздец.

    eval, 18 Сентября 2010

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

    +169

    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
    if(typeid(*Line1)==typeid(TLine)) ; else
    if(typeid(*Line2)==typeid(TLine)) {cLine=Line1; Line1=Line2; Line2=cLine;} else
    if(typeid(*Line1)==typeid(TRay)) ; else
    if(typeid(*Line2)==typeid(TRay)) {cLine=Line1; Line1=Line2; Line2=cLine;} else
    if(typeid(*Line1)==typeid(TLineSegment)) ; else
    if(typeid(*Line2)==typeid(TLineSegment)) {cLine=Line1; Line1=Line2; Line2=cLine;}
    
    if(typeid(*Line1)==typeid(TLine)) {
    	if(typeid(*Line2)==typeid(TLine))  return 1; else
    	if(typeid(*Line2)==typeid(TRay)) {
    		if(
    			(( ((TRay*)Line2)->X1<=((TRay*)Line2)->X2 && ((TRay*)Line2)->X1<=Point.x )  ||
    			 ( ((TRay*)Line2)->X1>=((TRay*)Line2)->X2 && ((TRay*)Line2)->X1>=Point.x )) &&
    			(( ((TRay*)Line2)->Y1<=((TRay*)Line2)->Y2 && ((TRay*)Line2)->Y1<=Point.y )  ||
    			 ( ((TRay*)Line2)->Y1>=((TRay*)Line2)->Y2 && ((TRay*)Line2)->Y1>=Point.y ))
    		  )
    			return 1;
    		else
    			return -1;
    	} else
    	if(typeid(*Line2)==typeid(TLineSegment)) {
    		if(
    			(( ((TLineSegment*)Line2)->X1<=Point.x && Point.x<=((TLineSegment*)Line2)->X2 )||( ((TLineSegment*)Line2)->X2<=Point.x && Point.x<=((TLineSegment*)Line2)->X1 )) &&
    			(( ((TLineSegment*)Line2)->Y1<=Point.y && Point.y<=((TLineSegment*)Line2)->Y2 )||( ((TLineSegment*)Line2)->Y2<=Point.y && Point.y<=((TLineSegment*)Line2)->Y1 ))
    		  )
    			return 1;
    		  else
    			return -1;
    	}
    } else
    if(typeid(*Line1)==typeid(TRay)) {
    	if(typeid(*Line2)==typeid(TRay)) {
    		if(
    			((( ((TRay*)Line1)->X1<=((TRay*)Line1)->X2 && ((TRay*)Line1)->X1<=Point.x )  ||
    			  ( ((TRay*)Line1)->X1>=((TRay*)Line1)->X2 && ((TRay*)Line1)->X1>=Point.x )) &&
    			 (( ((TRay*)Line1)->Y1<=((TRay*)Line1)->Y2 && ((TRay*)Line1)->Y1<=Point.y )  ||
    			  ( ((TRay*)Line1)->Y1>=((TRay*)Line1)->Y2 && ((TRay*)Line1)->Y1>=Point.y )))
    			&&
    			((( ((TRay*)Line2)->X1<=((TRay*)Line2)->X2 && ((TRay*)Line2)->X1<=Point.x )  ||
    			  ( ((TRay*)Line2)->X1>=((TRay*)Line2)->X2 && ((TRay*)Line2)->X1>=Point.x )) &&
    			 (( ((TRay*)Line2)->Y1<=((TRay*)Line2)->Y2 && ((TRay*)Line2)->Y1<=Point.y )  ||
    			  ( ((TRay*)Line2)->Y1>=((TRay*)Line2)->Y2 && ((TRay*)Line2)->Y1>=Point.y )))
    		  )
    			return 1;
    		else
    			return -1;
    	} else
    	if(typeid(*Line2)==typeid(TLineSegment)) {
    		if(
    			((( ((TRay*)Line1)->X1<=((TRay*)Line1)->X2 && ((TRay*)Line1)->X1<=Point.x )  ||
    			  ( ((TRay*)Line1)->X1>=((TRay*)Line1)->X2 && ((TRay*)Line1)->X1>=Point.x )) &&
    			 (( ((TRay*)Line1)->Y1<=((TRay*)Line1)->Y2 && ((TRay*)Line1)->Y1<=Point.y )  ||
    			  ( ((TRay*)Line1)->Y1>=((TRay*)Line1)->Y2 && ((TRay*)Line1)->Y1>=Point.y )))
    			&&
    			((( ((TLineSegment*)Line2)->X1<=Point.x && Point.x<=((TLineSegment*)Line2)->X2 )||( ((TLineSegment*)Line2)->X2<=Point.x && Point.x<=((TLineSegment*)Line2)->X1 )) &&
    			((  ((TLineSegment*)Line2)->Y1<=Point.y && Point.y<=((TLineSegment*)Line2)->Y2 )||( ((TLineSegment*)Line2)->Y2<=Point.y && Point.y<=((TLineSegment*)Line2)->Y1 )))
    		  )
    			return 1;
    		else
    			return -1;
    	}
    	return 1;
    } else
    if(typeid(*Line1)==typeid(TLineSegment)) {
    	if(
    		((( ((TLineSegment*)Line1)->X1<=Point.x && Point.x<=((TLineSegment*)Line1)->X2 )||( ((TLineSegment*)Line1)->X2<=Point.x && Point.x<=((TLineSegment*)Line1)->X1 )) &&
    		((  ((TLineSegment*)Line1)->Y1<=Point.y && Point.y<=((TLineSegment*)Line1)->Y2 )||( ((TLineSegment*)Line1)->Y2<=Point.y && Point.y<=((TLineSegment*)Line1)->Y1 )))
    		&&
    		((( ((TLineSegment*)Line2)->X1<=Point.x && Point.x<=((TLineSegment*)Line2)->X2 )||( ((TLineSegment*)Line2)->X2<=Point.x && Point.x<=((TLineSegment*)Line2)->X1 )) &&
    		((  ((TLineSegment*)Line2)->Y1<=Point.y && Point.y<=((TLineSegment*)Line2)->Y2 )||( ((TLineSegment*)Line2)->Y2<=Point.y && Point.y<=((TLineSegment*)Line2)->Y1 )))
    	  )
    		return 1;
    	else
    		return -1;
    }

    Имеются классы:
    class TLine; // Линия
    class TRay: public TLine; // Луч
    class TLineSegment: public TRay; // Отрезок
    Функция записывает в Point точку пересечения прямых и возвращает 0 если прямые параллельны, -1 если пересекаются продолжения отрезков и 1 если пересекаются отрезки.
    Выше представлен кусок кода где проводится проверка, принадлежит точка пересечения отрезкам или их продолжениям.

    sanchousf, 17 Сентября 2010

    Комментарии (10)
  7. JavaScript / Говнокод #4258

    +169

    1. 1
    eval(handler.replace(/this/g,'document.getElementsByTagName("A")'));

    Вот такая вот альтернатива для Function.prototype.call

    eval, 16 Сентября 2010

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

    +169

    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
    
    $res = "-1";
    if($num>0) {
    	for($d=1;$d<=$num;$d++) {
    		$res.=",".$data[$d-1];
    		
    	}
    	$res=substr($res,3,100000);
    	$res=str_replace(",",", ", $res);
    }
    
    ?>

    ferry-very-good, 13 Сентября 2010

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

    +169

    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
    int mr_word_compare(const char* r1, int s1, const char* r2, int s2)
    {
       char* p1 = (char*)r1;
       char* p2 = (char*)r2;
       while (*p1 != ' ')
          ++ p1;
       *p1 = '\0';
       while (*p2 != ' ')
          ++ p2;
       *p2 = '\0';
    
       int res = strcmp(r1, r2);
       *p1 = ' ';
       *p2 = ' ';
    
       return res;
    }

    vayerx, 24 Августа 2010

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

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public function Add()
    {
    $db->query ('DELETE FROM ' . $this->_table . ' WHERE clientId=' . $this->clientId . ' AND memberId=' . $this->userId);
    $db->query ('INSERT INTO ' . $this->_table . ' SET clientId=' . $this->clientId . ', memberId=' . $this->userId);
    return true;
    }

    без комментариев

    rtfm, 28 Июля 2010

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

    +169

    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
    struct IText{
     
    	typedef boost::shared_ptr<IText> SPtr;
     
    	virtual void draw() = 0;
     
    	virtual void add(const SPtr&) {
    		throw std::runtime_error("IText: Can't add to a leaf");
    	}
     
    	virtual void remove(const SPtr&){
    		throw std::runtime_error("IText: Can't remove from a leaf");
    	}
    };
     
    struct CompositeText: public IText{
     
    	void add(const SPtr& sptr){
    		children_.push_back(sptr);
    	}
     
    	void remove(const SPtr& sptr){
    		children_.remove(sptr);
    	}
     
    	void replace(const SPtr& oldValue, const SPtr& newValue){
    		std::replace(children_.begin(), children_.end(), oldValue, newValue);
    	}
     
    	virtual void draw(){
    		BOOST_FOREACH(SPtr& sptr, children_){
    			sptr->draw();
    		}
    	}
     
    private:
    	std::list<SPtr> children_;
    };
     
    struct Letter: public IText{
     
    	Letter(char c):c_(c) {}
     
    	virtual void draw(){
    		std::cout<<c_;
    	}
     
    private:
    	char c_;
    };
     
     
    int main(){
     
    	CompositeText sentence;
     
    	IText::SPtr lSpace(new Letter(' '));
    	IText::SPtr lExcl(new Letter('!'));
    	IText::SPtr lComma(new Letter(','));
    	IText::SPtr lNewLine(new Letter('\n'));
    	IText::SPtr lH(new Letter('H')); // letter 'H'
    	IText::SPtr le(new Letter('e')); // letter 'e'
    	IText::SPtr ll(new Letter('l')); // letter 'l'
    	IText::SPtr lo(new Letter('o')); // letter 'o'
    	IText::SPtr lW(new Letter('W')); // letter 'W'
    	IText::SPtr lr(new Letter('r')); // letter 'r'
    	IText::SPtr ld(new Letter('d')); // letter 'd'
    	IText::SPtr li(new Letter('i')); // letter 'i'
     
    	IText::SPtr wHello(new CompositeText);
    	wHello->add(lH);
    	wHello->add(le);
    	wHello->add(ll);
    	wHello->add(ll);
    	wHello->add(lo);
     
    	IText::SPtr wWorld(new CompositeText); // word "World"
    	wWorld->add(lW);
    	wWorld->add(lo);
    	wWorld->add(lr);
    	wWorld->add(ll);
    	wWorld->add(ld);
     
    	sentence.add(wHello);
    	sentence.add(lComma);
    	sentence.add(lSpace);
    	sentence.add(wWorld);
    	sentence.add(lExcl);
    	sentence.add(lNewLine);
     	sentence.draw();  // ptrints "Hello, World!\n"
     	IText::SPtr wHi(new CompositeText); // word "Hi"
    	wHi->add(lH);
    	wHi->add(li);
     	sentence.replace(wHello, wHi);
    	sentence.draw();  // ptrints "Hi, World!\n"
     	sentence.remove(wWorld);
                 sentence.remove(lSpace);
    	sentence.remove(lComma);
    	sentence.draw();  // ptrints "Hi!\n"

    Hi, World! Психологическая зависимость от надуманного ООП убивает проекты и их создателей. Всё хорошо в меру. (Найдено на просторах интернета).

    Говногость, 25 Июня 2010

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