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

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

    +141

    1. 1
    Кто нибудь юзал для построения веб приложений  wakanda ? Если да то как оно?

    Vasiliy, 11 Июня 2015

    Комментарии (3)
  3. ActionScript / Говнокод #18323

    −102

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public class Perechen
    	{		
    		static public var Nasos_IP_E_40_115_0_55_2:* = IP_E_40_115_0_55_2;
    		static public var Nasos_IP_E_40_120_1_5_2:* = IP_E_40_120_1_5_2;
    		static public var Nasos_IP_E_40_130_2_2_2:* = IP_E_40_130_2_2_2;
    		static public var Nasos_IP_E_40_150_3_2:* = IP_E_40_150_3_2;
    		static public var Nasos_IP_E_40_160_4_2:* = IP_E_40_160_4_2;
    		static public var Nasos_IP_E_65_120_3_2:* = IP_E_65_120_3_2;
    		static public var Nasos_IP_E_65_130_4_2:* = IP_E_65_130_4_2;
    		static public var Nasos_IP_E_80_115_2_2_2:* = IP_E_80_115_2_2_2;
    	}

    Nasos_IP_E_40_115_0_55_2 - название поля. IP_E_40_115_0_55_2 - класс.
    "Программист" ничего не знал о том, что есть коллекции.

    teoadal, 11 Июня 2015

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

    +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
    #include <iostream>
    #include <set> 
    #include <queue>
    #include <iterator>
    #include <algorithm>
    
    using namespace std;
    
    class Complex
    { 
    public: 
    	char a;
    	char b;
    
    public:
    
    	Complex(){}
    
    	Complex(char i, char j)
    	{
    		this->a = i;
    		this->b = j;
    	}
    	
    	
    	friend bool operator < (const Complex& complex1, const Complex& complex2)
    	{
    		return ((complex1.a < complex2.a && complex1.b < complex2.b) || (complex1.a < complex2.a && complex1.b == complex2.b) || (complex1.a == complex2.a && complex1.b < complex2.b));
    	}
    
    	friend bool operator >(const Complex& complex1, const Complex& complex2)
    	{
    		return ((complex1.a > complex2.a && complex1.b > complex2.b) || (complex1.a > complex2.a && complex1.b == complex2.b) || (complex1.a == complex2.a && complex1.b > complex2.b));
    	}
    
    	friend ostream& operator << (ostream& out, Complex const& complex)
    	{
    		out << "First: " << complex.a << " Second: " << complex.b;
    		return out;
    	}
    
    	friend bool operator == (const Complex& complex1, const Complex& complex2)
    	{
    		return ( complex1.a == complex2.a && complex1.b == complex2.b);
    	}
    
    	~Complex()
    	{
    	}
    };

    "Не говнокод, потому что работает" © Автор говнокода

    Giraffe, 02 Июня 2015

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

    +143

    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
    if ($fuck) {
      foreach ($objects as $obj) {
        if (!$obj['CAT_VALUE']) {
          die('У объекта ' . $obj['NAME'] . ' ошибка');
        }
        if (!$obj['DESCR_VALUE']) {
          die('У объекта ' . $obj['NAME'] . ' ошибка');
        }
        if (!$obj['DESCR_VALUE']) {
          die('У объекта ' . $obj['NAME'] . ' ошибка');
        }
        else {
          die('Какая-то ошибка');
        }
      }
    }

    Кусок самописного компонента под Битрикс от предыдущего разработчика (тот еще затейник!). Просто выпилил это, т.к. не понял как это отрефакторить, т.к. $fuck нигде никак не объявлена. Да и вообще ценность этого блока кода и так сильно пахнет.

    Franchesko, 01 Июня 2015

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

    −106

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    ДокументРасчетовСКонтрагентом = СсылкаНаОбъект.ДокументОснование;
    
    Для ы = 1  По 100 Цикл
    	Если ТипЗнч(ДокументРасчетовСКонтрагентом) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
    		Прервать;
    	Иначе
    		ДокументРасчетовСКонтрагентом = ДокументРасчетовСКонтрагентом.ДокументОснование;
    	КонецЕсли;
    КонецЦикла;

    С вероятностью 100% доберемся до нужного документа

    grandatlant, 27 Мая 2015

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

    +141

    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
    LoggerSngl::instance()->Trace("Заходим под семафор.");
    				QPRFQueueSemaphoreSngl::instance()->Lock(); //Гыгы.
    				{
    					LoggerSngl::instance()->Trace("Зашли под семафор.");
    					CSingleLock lock(QPREFQueueMutexSngl::instance().get(), TRUE);
    					LoggerSngl::instance()->Trace("Получение задачи из очереди...");
    					qprfTask = std::dynamic_pointer_cast<QPRFTask>(_tasks.front());
    					_tasks.pop();
    					LoggerSngl::instance()->TraceFmt("Получили задачу из очереди. Остаток длины %d.", _tasks.size());
    				}
    
    				if (qprfTask->isFinishTask())
    				{
    					CoUninitialize();
    					release_chckxml_lib();
    					qprfTask->semaphore()->Unlock();
    					_endthreadex(0);
    				}

    laMer007, 22 Мая 2015

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

    −107

    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
    Процедура ПокрытияКодПокрытияОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
    Покрытия = ЭтаФорма.Покрытия;
    Количество = 0;
    Для Каждого СтрокаПокрытия из Покрытия Цикл 
    Если СтрокаПокрытия.КодПокрытия = Текст Тогда
    Количество = 1;
    КонецЕсли;
    КонецЦикла;
    
    
    Если Количество > 0 Тогда 
    ПоказатьОповещениеПользователя("Ошибка!",,"Такое покрытие уже присутствует в составе изделия", БиблиотекаКартинок.Ошибка);
    НеНайденоПокрытие = Истина;
    Возврат;
    КонецЕсли;
    
    
    НеНайденоПокрытие = Ложь;
    ЭлементыФормы.Покрытия.ТекущиеДанные.СвязьСПокрытиями = Неопределено;
    
    
    Если ЭлементыФормы.Покрытия.ТекущиеДанные <> Неопределено Тогда
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    | Покрытия.Ссылка,
    | Покрытия.НаименованиеПокрытия
    |ИЗ
    | Документ.Покрытия КАК Покрытия
    |ГДЕ
    | Покрытия.КодПокрытия = &КодПокрытия";
    
    
    Запрос.УстановитьПараметр("КодПокрытия", Текст);
    
    
    Результат = Запрос.Выполнить();
    
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    
    Если ВыборкаДетальныеЗаписи.Количество() > 0 Тогда
    ВыборкаДетальныеЗаписи.Следующий();
    ЭлементыФормы.Покрытия.ТекущиеДанные.СвязьСПокрытиями = ВыборкаДетальныеЗаписи.Ссылка;
    ЭлементыФормы.Покрытия.ТекущиеДанные.НаименованиеПокрытия = ВыборкаДетальныеЗаписи.НаименованиеПокрытия;
    Иначе
    ПоказатьОповещениеПользователя("Ошибка!",,"Не найдено введенное покрытие", БиблиотекаКартинок.Ошибка);
    ЭлементыФормы.Покрытия.ТекущиеДанные.СвязьСПокрытиями = Неопределено;
    ЭлементыФормы.Покрытия.ТекущиеДанные.НаименованиеПокрытия = Неопределено;
    НеНайденоПокрытие = Истина;
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры

    Моё творение. =)

    Startwar, 20 Мая 2015

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

    −407

    1. 1
    Autoresizing mask -> Autolayout -> Size classes -> "android layout" (на apple watch)

    Эволюция "автонастройки" размеров в iOS или что бывает если один раз нормально не сесть и подумать.

    Для тех кто не в теме - все вышеперечисленное может быть в одном проекте одновременно.

    Gerchicov-bp, 15 Мая 2015

    Комментарии (3)
  10. Java / Говнокод #18131

    +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
    //Парсинг access_token
            webEngine.locationProperty().addListener(new ChangeListener<String>() {
                @Override
                public void changed(ObservableValue<? extends String> observable, final String oldValue, final String newValue) {
                    Log.i("URL", newValue);
                    try {
    
                        if (newValue.startsWith("https://oauth.vk.com/blank.html")) {
    
                            access_token = newValue.split("\\#")[1].split("\\&")[0].split("\\=")[1];
                            user_id = newValue.split("\\#")[1].split("\\&")[2].split("\\=")[1];
    
                            Log.i("access_token: "+access_token,"  user_id:  "+user_id);
                            MainController.vkApi = new Api(access_token, user_id);

    Парсинг строки вида "http://REDIRECT_URI#access_token= 533bacf01e11f55b536a565b57531ad114461ae8 736d6506a3&expires_in=86400&user_id=1234 "

    skydev, 08 Мая 2015

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

    −157

    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
    Функция ОпределитьБазовуюДату(стр,ТипДаты,Условие)
    	рез=NULL ;
    	Если ТипДаты=Перечисления._ВидБазовойДаты.ЗавершениеРаботы тогда
    		рез= Стр.ДатаОкончанияРаботы;
    	ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.НачалоРабот тогда
    		рез= Стр.ДатаНачалаРаботы;
    	ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.ФиксированнаяДата тогда
    		рез=Условие.ДатаАкта;
    	ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.НачалоРабот тогда
    		
    	ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.НачалоРабот тогда
    		
    	ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.НачалоРабот тогда
    		рез= Стр.ДатаЗавершенияРаботы;
    	КонецЕсли;
    	Попытка 
    		рез =Дата(рез);
    	исключение
    		рез=ТекущаяДата();
    		Сообщить("неопределена дата "+ТипДаты+" для локальной сметы  " + стр.ЛокальнаяСмета + ", ключ строки " + Стр.Ключ);
    	КонецПопытки;	
    	возврат рез;
    КонецФункции
    
    -------------------------------------------------------------------------------------------------------------------------
    
    
    Вот отдельные выжимки:
    /////////////////////
    Если  ст.Options="Percent" тогда //Нужно выяснить что за  Percent ибо не помню =( Лучше потом подумаю
    			Сообщить("Данная смета возможно не корректно рассчитывает концевики! Обратитесь к Администратору!");
    КонецЕсли;
    //////////////////////
    
    //ЧЧЧ Серега 09,12,12 слав, а почему ты это удалил? (без этих строк сумма сметы не была везде правильной)
    	Строки=Дерево.Строки.НайтиСтроки(новый Структура("ВидГруппы",Перечисления.ВидыГруппЛокальныхСмет.ДанныеСметы),истина);
    	
    //ЧЧЧ

    С помощью таких вот функций производится расчет бюджета проекта по капитальному строительству в очень крупной российской компании. Главное что функциональный заказчик этого добра, с глубокой уверенностью считает что у него замечательная конфигурация. Код специаьн

    Gostmair, 07 Мая 2015

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