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

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

    +146.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    /**
         * @see Connection::applyLimit()
         */
        public function applyLimit(&$sql, $offset, $limit)
        {
            if ( $limit > 0 ) {
                $sql .= " LIMIT " . ($offset > 0 ? $offset . ", " : "") . $limit;
            } else if ( $offset > 0 ) {
                $sql .= " LIMIT " . $offset . ", 18446744073709551615";
            }
        }

    Propel Connection - жёсткий хардкод (если лимит не указан, выбираем записи от $offset до произвольно большого числа)

    guest, 30 Июня 2009

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

    +146.1

    1. 1
    function move($oldname, $newname, $context=null) { retrurn rename($oldname, $newname, $context); }

    greevex, 30 Сентября 2009

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

    +146.1

    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
    private function putContents($file, $string)
        {
            $result = false;
            $f = @fopen($file, 'ab+');
            if ($f) {
                fseek($f, 0);
                ftruncate($f, 0);
                $tmp = @fwrite($f, $string);
                if (!($tmp === FALSE)) {
                    $result = true;
                }
                @fclose($f);
            }
            @chmod($file, $this->options['file_umask']);
            return $result;
        }

    А почему не fopen($file, 'w'); ?

    guest, 06 Августа 2009

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

    +146

    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
    public ActionResult EditorValueChange(string value, string editor)
            {
                switch (editor)
                {
                    case "LastName": Session["LastName"] = value; break;
                    case "FirstName": Session["FirstName"] = value; break;
                    case "MiddleName": Session["MiddleName"] = value; break;
                    case "PhoneMobil": Session["PhoneMobil"] = value; break;
                    case "PhoneHome": Session["PhoneHome"] = value; break;
                    case "Birthday": Session["Birthday"] = value; break;
                    case "HeadOfGroupId": Session["HeadOfGroupId"] = value; break;
                }
    
                return Json(true);
            }

    Может еще "default: Session[editor] = value; break;" добавить?)

    dropdatabase, 23 Июля 2015

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    'use strict';
    'use strong';
    'use spiderman';
    'use terminator';

    :)

    AjiTae, 21 Июля 2015

    Комментарии (3)
  7. Куча / Говнокод #18251

    +146

    1. 1
    <span class="enrty-comments-count">(0)</span>

    Enligsh lagnauge rluze.

    inkanus-gray, 28 Мая 2015

    Комментарии (8)
  8. Си / Говнокод #18216

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if((pDir = opendir(pchPath)) != NULL)
    {
        strcpy(chBuffer, pchPath);
        strcat(chBuffer, "/");
        while((pTemp == NULL) && ((pDirent = readdir(pDir)) != NULL))
        {
            if(((pChar = strstr(pDirent->d_name, Info.pchFilePrefix)) == pDirent->d_name) &&
               ((pChar = strstr(pDirent->d_name, Info.pchFileExtension)) != NULL)  &&
               (pChar[strlen(Info.pchFileExtension)] == '\0'))
            {
                sprintf(strrchr(chBuffer, '/') + 1, "%s", pDirent->d_name);

    лаконичные программисты лаконично ходят по каталогам.

    Dummy00001, 21 Мая 2015

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if(isset($_GET['go']))
    	$go = htmlspecialchars(strip_tags(stripslashes(trim(urldecode(mysql_escape_string($_GET['go']))))));
    else
    	$go = "main";
    
    // ....
    
    switch($go){

    "Тыыыыыыы не пройдеееешь!". Зафильтровали (да ещё и криво) бедную переменную только для того, чтобы потом использовать её в switch-case блоке. Индусы-паникеры.

    bSun0000, 13 Мая 2015

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    var returnValue = false;
    
    bool result = doSomething();
    if (!result)
    {
    return returnValue;
    }
    
    returnValue = true;
    return returnValue;

    kuznetps, 30 Апреля 2015

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

    +146

    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
    #ifndef FILTER_H
    #define FILTER_H
    
    #include <cassert>
    #include <vector>
    #include <algorithm>
    
    template<typename T>
    class filter_container;
    namespace detail {
    	template<typename Iter, typename Pred>
    	class filter {
    	public:
    		filter(Iter begin, Iter end, Pred pred) :_begin(begin), _end(end), _pred(pred) { }
    		filter(const filter & f) : _begin(f._begin), _end(f._end), _pred(f._pred) { }
    		filter & operator = (const filter & f) {
    			if(this != &f) {
    				_begin = f._begin;
    				_end = f._end;
    				_pred = f._pred;
    			}
    			return *this;
    		}
    		~filter() { }
    
    		class const_iterator {
    		public:
    			typedef typename Iter::reference reference;
    			typedef typename Iter::pointer pointer;
    			const_iterator(Iter iter, const filter & cont) :_iter(iter), _cont(&cont) { advance_until_pred(); }
    			const_iterator(const const_iterator & i) :_iter(i._iter), _cont(i._cont) { }
    			const_iterator & operator = (const const_iterator & i) {
    				if(this != &i) {
    					_iter = i._iter;
    					_cont = i._cont
    				}
    				return *this;
    			}
    			~const_iterator() { }
    			const_iterator & operator++() { advance_until_pred(); return *this; }
    			const_iterator operator++(int) {
    				const_iterator ret = *this;
    				advance_until_pred();
    				return ret;
    			}
    			const reference operator*() const { return *_iter; }
    			const pointer operator->() const { return &*_iter; }
    			bool operator == (const const_iterator & i) const {
    				assert(_cont == i._cont);
    				return _iter == i._iter;
    			}
    			bool operator != (const const_iterator & i) const { return !(*this == i); }
    		protected:
    			Iter _iter;
    			const filter * _cont;
    		private:
    			void advance_until_pred() {
    				if(_iter != _cont->_end) {
    					std::advance(_iter, 1);
    				}
    				_iter = std::find_if(_iter, _cont->_end, _cont->_pred);
    			}
    		private:
    			const_iterator();
    		};
    
    		class iterator : public const_iterator {
    		public:
    			iterator(Iter iter, const filter & cont) :const_iterator(iter, cont) { }
    			iterator(const iterator & i) :const_iterator(i) { }
    			iterator & operator = (const iterator & i) { const_iterator::operator=(i); return *this; }
    			~iterator() { }
    			reference operator*() { return *_iter; }
    			pointer operator->() { return &*_iter;  }
    		private:
    			iterator();
    		};
    
    		iterator begin() { return iterator(_begin, *this); }
    		iterator end() { return iterator(_end, *this); }
    		const_iterator cbegin() const { return const_iterator(_begin, *this); }
    		const_iterator cend() const { return const_iterator(_end, *this); }
    	private:
    		Iter _begin, _end;
    		Pred _pred;
    	private:
    		filter();
    	}; 
    }
    
    template<typename Iter, typename Pred> 
    detail::filter<Iter, Pred> filter(Iter begin, Iter end, Pred pred) {
    	return detail::filter<Iter, Pred>(begin, end, pred);
    }
    
    #endif // FILTER_H

    Тривиальная крестовщина, ничего выдающегося. Внезапно подумалось, что подобный контейнер был бы довольно удобен.
    Мне просто любопытно, насколько быстро этот пост будет слит автоминусаторами :)

    Xom94ok, 29 Апреля 2015

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