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

    В номинации:
    За время:
  2. Куча / Говнокод #17274

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <div class="lfrazrab">
        <div>
            <div class="lfra1"><span>Приёмная</span> 8(123)456-78-90</div>
            <div class="lfra2"><span>Отдел продаж</span> 8(123)456-78-90</div>
        </div>
        <div>
            <img class="daciconhd2" src="/visor.png"> 8(123)456-78-90
            <div class="vxvcdsf">г. ХХХ, ул. ХУZ 10А</div>
        </div>
    </div>

    Сдал веб сайт который делал около нескольки недель. Качество кода было ОК. Сайт видимо взялась допиливать студия http://kiweb.ru/ (т.к. в футере появилась надпись "Сделано студией kiweb.ru"). После некоторого времени меня попросили добавить функционал (за доп. плату), скопировал файлы на локальный сервер и... печаль-беда, добавили куча классов к CSS в формате ".adasadas" (может я их просто не понимаю) и кодировку файлов с отступами (пробелы вместо табов использовали :'( ) попортили.

    TL;DR – они видимо головой стучали по клавиатуре что бы создать такие "чудные" CSS классы :)

    volter9, 08 Декабря 2014

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

    −123

    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
    Функция ПолучитьДробнуюЧасть(Число)
    	
    	Если Не ТипЗнч(Число) = Тип("Число") Тогда
    		Возврат 0;
    	КонецЕсли;
    	ЧислоСтрокой = Строка(Число);
    	Инд = 1;
    	Пока Истина Цикл
    	Символ = Сред(ЧислоСтрокой, Инд, 1);	
    	Если Символ = "" Тогда
    		Возврат 0;
    	ИначеЕсли Символ = "," Тогда
    		Если Сред(ЧислоСтрокой, Инд + 1, 1) = "" Тогда
    			Возврат 0;
    		КонецЕсли;
    		
    		Если Сред(ЧислоСтрокой, Инд + 2, 1) = "" Тогда
    			Возврат Число(Сред(ЧислоСтрокой, Инд + 1, 1));
    		КонецЕсли;
    		
    		Если Сред(ЧислоСтрокой, Инд + 3, 1) = "" Тогда
    			Возврат Число(Сред(ЧислоСтрокой, Инд + 1, 1) + Сред(ЧислоСтрокой, Инд + 2, 1));
    		Иначе
    			Возврат Число(Сред(ЧислоСтрокой, Инд + 1, 1) + Сред(ЧислоСтрокой, Инд + 2, 1) + Сред(ЧислоСтрокой, Инд + 3, 1));
    		КонецЕсли;
    	КонецЕсли;
    	Инд = Инд + 1;
    	КонецЦикла;
    КонецФункции

    Еще один "анекдот" от неизвестного автора. Предыдущий здесь: http://govnokod.ru/16639

    Jeyrico, 07 Ноября 2014

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

    +166

    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
    <? print_form($login1,$email,$wm);
    else:
    if ($login1=='ADMIN'):
    ?>
    <font color="<?=$row['error'];?>"><b>Данный логин ADMIN запрещён!</b></font><br><br>
    <? print_form($login1,$email,$wm);
    else:
    if ($login1=='Admin'):
    ?>
    <font color="<?=$row['error'];?>"><b>Данный логин Admin запрещён!</b></font><br><br>
    <? print_form($login1,$email,$wm);
    else:
    if ($login1=='admin'):
    ?>
    <font color="<?=$row['error'];?>"><b>Данный логин admin запрещён!</b></font><br><br>
    <? print_form($login1,$email,$wm);
    else:
    if ($login1=='АДМИН'):
    ?>
    <font color="<?=$row['error'];?>"><b>Данный логин АДМИН запрещён!</b></font><br><br>
    <? print_form($login1,$email,$wm);
    else:
    if ($login1=='Админ'):
    ?>
    <font color="<?=$row['error'];?>"><b>Данный логин Админ запрещён!</b></font><br><br>
    <? print_form($login1,$email,$wm);
    else:
    if ($login1=='админ'):
    ?>
    <font color="<?=$row['error'];?>"><b>Данный логин админ запрещён!</b></font><br><br>

    Reds, 21 Сентября 2014

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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public static string GetString(string inpString, string defValue)
    {
    	if (inpString == null)
    		return defValue;
    	return inpString;
    }

    Этот метод заботливо лижит в файле с всякими вспомогательными функциями, мало ли где может понадобиться

    Smekalisty, 08 Сентября 2014

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

    +28

    1. 1
    2. 2
    // Пароль админа
    const unsigned int AdminPassword = 42;

    Откопал в своем старом коде. Кто тут говорил, что Борманд не говнокодит?

    bormand, 08 Июля 2014

    Комментарии (31)
  7. C++ / Говнокод #16271

    +18

    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
    #include <iostream>
    #include <memory>
    #include <mutex>
    #include <condition_variable>
    #include <atomic>
    
    
    typedef ::std::unique_lock<::std::mutex> TLock;
    
    using namespace std;
    template<typename T>
    class TQueueElement
    {
    public:
    	T _data;
    	std::shared_ptr<TQueueElement<T> > _prev;
    	mutable ::std::mutex _lockElem;
    
    public:
    	TQueueElement(T data):_data(data),_prev(nullptr){};
    	virtual ~TQueueElement(){};
    
    
    };
    
    template<typename T>
    class TQueue
    {
    private:
    	mutable ::std::mutex _lockHead;
    	mutable ::std::mutex _lockTail;
    	::std::condition_variable _pushToQueue;
    	std::atomic<bool> _isEmpty;
    	std::shared_ptr<TQueueElement<T> > _tail;
    	std::shared_ptr<TQueueElement<T> > _head;
    
    public:
    	TQueue():_lockHead(),_isEmpty(true){};
    	virtual ~TQueue(){};
    
    ///получаем элемент из очереди
    	T pop()
    	{
    		TLock lock(_lockTail);//блокируем все получения из очереди
    		if (_tail==nullptr) 
    			{_isEmpty=true; _pushToQueue.wait(lock,[this](){return !_isEmpty;});} //если очередь пуста ожидаем пока в ней чтото появиться 
    		{
    			TLock lockTail(_tail->_lockElem); //блокируем последний элемент в очереди возможно к нему попробуют обратиться во время запихивания в очередь
    			auto data=_tail->_data;
    			_tail=_tail->_prev;
    			return data;
    		}
    		
    	}
    
    	void push(T data)
    	{
    		auto el=std::shared_ptr<TQueueElement<T> >(new TQueueElement<T>(data));//заранее создаем элемент очереди 
    		TLock lock(_lockHead);
    		if (_isEmpty)//если очередь пуста говорим что наш элемент пока первый и последний
    		{
    			_head=el;
    			_tail=el;
    			_isEmpty=false;
    			_pushToQueue.notify_all();
    		}else//если очередь не пуста 
    		{
    			{
    				TLock lockHead(_head->_lockElem); //блокируем голову от возможного обращения с хвоста
    				_head->_prev=el; //выставляем ссылку на новую голову у старой
    			}
    			_head=el;//выставляем новую голову
    		}
    	}
    
    
    	
    };
    
    
    int main() {
    	TQueue<int> q;
    	q.push(7);
    	q.pop();
    	// your code goes here
    	return 0;
    }

    https://ideone.com/uGX56M
    Ничего не забыл ? Пытался написать очередь для межпоточной синхронизации.

    IKing, 02 Июля 2014

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

    +25

    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
    unsigned char ToChar(const char& c1, const char& c2)
    {
        static map<char,int> mapping;
        mapping['0'] = 0;
        mapping['1'] = 1;
        mapping['2'] = 2;
        mapping['3'] = 3;
        mapping['4'] = 4;
        mapping['5'] = 5;
        mapping['6'] = 6;
        mapping['7'] = 7;
        mapping['8'] = 8;
        mapping['9'] = 9;
        mapping['A'] = 10;
        mapping['B'] = 11;
        mapping['C'] = 12;
        mapping['D'] = 13;
        mapping['E'] = 14;
        mapping['F'] = 15;
        return (unsigned char)(mapping[c2] + mapping[c1] * 16);
    }
    
    int main()
    {
        // Assuming "vector<unsigned char> content" stores the data in Hex format, one Hex character per cell.
        for(size_t i=0, j=0; i < content.size(); i+=2, j++)
        {
            content[j] = ToChar(content[i], content[i+1]);  // one unsigned char => 2 Hex characters 
        }
    }

    Индусы на СО. Я даже не знаю, что тут самое нелепое.
    http://stackoverflow.com/a/24470147/2489083

    javahutt, 28 Июня 2014

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

    −165

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
    ........
    
    
    	если ЭтотОбъект.Проведен тогда 
    		Сообщить("Уже проведений, терміни не рухаємо");
    	иначе    ЭтотОбъект.ПолучитьФорму().Открыть();
    			     Сообщить("А тепер нажміть ОК");
            КонецЕсли;
    
    КонецПроцедуры // ОбработкаПроведения()

    омг...

    alexinzaz, 25 Июня 2014

    Комментарии (31)
  10. C++ / Говнокод #15976

    +17

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    switch (impl->used_hash)
                {
                case false:
                    break;
                case true :
                    ..........
            }

    Разбирал сырцы одного "гения" и нашел это...

    LuCiFer, 13 Мая 2014

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

    +72

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    auto val = map_.at(std::distance(map_.begin(),
    	std::min_element(map_.begin(), map_.end(), [](std::vector<int> a, std::vector<int> b)
    	{
    		return b.at(std::distance(b.begin(), std::min_element(b.begin(), b.end()))) > a.at(std::distance(a.begin(), std::min_element(a.begin(), a.end())));
    	})));
    
    return val.at(std::distance(val.begin(), std::min_element(val.begin(), val.end())));

    Разыменование итератора для слабаков!

    runewalsh, 18 Апреля 2014

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