1. JavaScript / Говнокод #19014

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $(window).on('load', function () {
            var date = new Date();
            day = date.getDate();
            day = (parseInt(day, 10) < 10) ? ('0' + day) : (day);
            $('[name = "PROPERTY[15][0]"]').val(day + '.' + (date.getMonth() + 1) + '.' + date.getFullYear() + ' ' + date.getHours() + ':' + (date.getMinutes() + 10) + ':00');
        });

    15:69 замечательное время!

    akanit, 12 Ноября 2015

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

    −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
    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
    Если НЕ(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента=""И тДокументОткрытияКредитнойЛинии="" И тВидЗаписи="" И тВидНачала="" И тКонтрагент="" И тПериод="" И тРазРегистратор="" И тДатаНачала="" И тДатаОкончания="" И тСумма="" И тКоличествоДней="" И тСуммаЭтоПроцент="") Тогда Запрос.Текст=Запрос.Текст+"
    	|ГДЕ";
    	КонецЕсли;
    	Если НЕ тСостояниеЗаписи="" Тогда Запрос.Текст=Запрос.Текст+"
    	| опмИзмененияСтандартныхУсловийОплаты.СостояниеЗаписи "+тЗнакСостоянияЗаписи+?(тЗнакСостоянияЗаписи="В"," (","")+"&СостояниеЗаписи"+?(тЗнакСостоянияЗаписи="В",")","");КонецЕсли;  // опм 04.05.2015 доб. ?(тЗнакСостоянияЗаписи="В"," (","")   +?(тЗнакСостоянияЗаписи="В",")","")
    	Если НЕ тРегистратор="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.теРегистратор "+тЗнакРегистратора+" &Регистратор";
    	КонецЕсли;
    	Если НЕ тДоговорКонтрагента="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.ДоговорКонтрагента "+тЗнакДоговораКонтрагента+" &ДоговорКонтрагента";
    	КонецЕсли;
    	Если НЕ тКонтрагент="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.ДоговорКонтрагента.Владелец "+тЗнакКонтрагента+?(тЗнакКонтрагента="В"," (","")+"&Контрагент"+?(тЗнакКонтрагента="В",")","");   // опм 04.05.2015 доб. ?(тЗнакКонтрагента="В"," (","")  +?(тЗнакКонтрагента="В",")","")
        КонецЕсли;
    	Если НЕ тДокументОткрытияКредитнойЛинии="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.ДокументОткрытияКредитнойЛинии "+тЗнакДокументаОткрытияКредитнойЛинии+" &ДокументОткрытияКредитнойЛинии";
    	КонецЕсли;
    	Если НЕ тВидЗаписи="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="" И тДокументОткрытияКредитнойЛинии="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.ВидЗаписи "+тЗнакВидаЗаписи+" &ВидЗаписи";
    	КонецЕсли;
    	Если НЕ тВидНачала="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="" И тДокументОткрытияКредитнойЛинии="" И тВидЗаписи="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.ВидНачала "+тЗнакВидаНачала+" &ВидНачала";
    	КонецЕсли;
    	Если НЕ тПериод="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="" И тДокументОткрытияКредитнойЛинии="" И тВидЗаписи="" И тВидНачала="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.Период "+тЗнакПериода+" &тПериод";
    	КонецЕсли;
    	Если НЕ тРазРегистратор="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="" И тДокументОткрытияКредитнойЛинии="" И тВидЗаписи="" И тВидНачала="" И тПериод="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.РазРегистратор "+тЗнакРазРегистратора+" &РазРегистратор";
    	КонецЕсли;
    	Если НЕ тДатаНачала="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="" И тДокументОткрытияКредитнойЛинии="" И тВидЗаписи="" И тВидНачала="" И тПериод="" И тРазРегистратор="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.ДатаНачала "+тЗнакДатыНачала+" &ДатаНачала";
    	КонецЕсли;
    	Если НЕ тДатаОкончания="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="" И тДокументОткрытияКредитнойЛинии="" И тВидЗаписи="" И тВидНачала="" И тПериод="" И тРазРегистратор="" И тДатаНачала="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.ДатаОкончания "+тЗнакДатыОкончания+" &ДатаОкончания";
    	КонецЕсли;
    	Если НЕ тСумма="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="" И тДокументОткрытияКредитнойЛинии="" И тВидЗаписи="" И тВидНачала="" И тПериод="" И тРазРегистратор="" И тДатаНачала="" И тДатаОкончания="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.Сумма "+тЗнакСуммы+" &Сумма";
    	КонецЕсли;
    	Если НЕ тКоличествоДней="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="" И тДокументОткрытияКредитнойЛинии="" И тВидЗаписи="" И тВидНачала="" И тПериод="" И тРазРегистратор="" И тДатаНачала="" И тДатаОкончания="" И тСумма="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.КоличествоДней "+тЗнакКоличестваДней+" &КоличествоДней";
    	КонецЕсли;
    	Если НЕ тСуммаЭтоПроцент="" Тогда Запрос.Текст=Запрос.Текст+"
    	| "+?(тСостояниеЗаписи="" И тРегистратор="" И тДоговорКонтрагента="" И тКонтрагент="" И тДокументОткрытияКредитнойЛинии="" И тВидЗаписи="" И тВидНачала="" И тПериод="" И тРазРегистратор="" И тДатаНачала="" И тДатаОкончания="" И тСумма="" И тКоличествоДней="",""," И")+" опмИзмененияСтандартныхУсловийОплаты.СуммаЭтоПроцент "+тЗнакСуммыЭтоПроцент+" &СуммаЭтоПроцент";
    	КонецЕсли;

    И так далее на 122 строки.

    HomoAlbus, 12 Ноября 2015

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

    +8

    1. 1
    if(copytype==WHOLE_FILE) //whole file

    О пользе комментариев

    absolut, 12 Ноября 2015

    Комментарии (16)
  4. Куча / Говнокод #19011

    +2

    1. 1
    Как избавиться от говнокода?

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

    Как с этим бороться? Убеждать менеджера, что вам нужно несколько недель, а то и месяцев на полный рефакторинг всего? Заниматься этим в свободное время? Забить и говнокодить дальше? Уйти в другое место (не факт ведь, что там будет лучше)?

    imihajlov, 12 Ноября 2015

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

    +5

    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
    if (logsData.Count == 1) {
    				msg += logsData [logsData.Count - 1] + "\n";
    			} else if (logsData.Count == 2) {
    				msg += logsData [logsData.Count - 2] + "\n";
    				msg += logsData [logsData.Count - 1] + "\n";
    			} else if (logsData.Count == 3) {
    				msg += logsData [logsData.Count - 3] + "\n";
    				msg += logsData [logsData.Count - 2] + "\n";
    				msg += logsData [logsData.Count - 1] + "\n";
    			} else if (logsData.Count == 4) {
    				msg += logsData [logsData.Count - 4] + "\n";
    				msg += logsData [logsData.Count - 3] + "\n";
    				msg += logsData [logsData.Count - 2] + "\n";
    				msg += logsData [logsData.Count - 1] + "\n";
    			} else if (logsData.Count >= 5) {
    				msg += logsData [logsData.Count - 5] + "\n";
    				msg += logsData [logsData.Count - 4] + "\n";
    				msg += logsData [logsData.Count - 3] + "\n";
    				msg += logsData [logsData.Count - 2] + "\n";
    				msg += logsData [logsData.Count - 1] + "\n";
    			}

    kschingiz, 12 Ноября 2015

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

    +2

    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
    public function generateRequestXml()
    {
        echo "Start generate request xml\n";
        $dt = date("c");
        $output = "";
        $output .= "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
        $output .= "\t<request>\n";
        $output .= "\t<requestTime>" . $dt . "</requestTime>\n";
        $output .= "\t<operatorName>ИМЯ</operatorName>\n";
        $output .= "\t<inn>98989898989</inn>\n";
        $output .= "\t<ogrn>998545454545</ogrn>\n";
        $output .= "\t<email>[email protected]</email>\n";
        $output .= "</request>";
    
        if (!file_put_contents(self::REQUEST_FILE, $output))
            return false;
    }

    SimpleXMLElement? Не, не слышал

    podvzbzdnul, 12 Ноября 2015

    Комментарии (13)
  7. 1C / Говнокод #19006

    −99

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

    HomoAlbus, 11 Ноября 2015

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

    −96

    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
    Функция мПолучитьДанныеПоОтсрочкеОплатыРТУнаДт(тРТУ, тДт, тНедоплатаПоРТУ, теРегЗапись="", текЗаказыПокупателей="", текЗнакЗаказыПокупателей="=", текОтрицаниеЗнакаЗаказыПокупателей=Ложь, тРазрешенныхДнейОтсрочки=0, тМаксДеньПогашения="", КЛ_тРТУ="" , тРТУ_Дата="", тСтрокаТЗотчета, УровеньПоЕжеМесКва=0) // релиз 3.3 доб. , тСтрокаТЗотчета , УровеньПоЕжеМесква=0  // релиз 3.1 доб. , тРТУ_Дата=""
    	                        текРТУ_Дата=?(ТипЗнч(тРТУ_Дата)=Тип("Дата") И НЕ тРТУ_Дата='00010101', тРТУ_Дата, тРТУ.Дата); // релиз 3.1 доб.
    //...	
    	КЛ_тРТУ=теРегЗапись.теРегистратор; тЕстьЕжемес=теРегЗапись.ДеньПогашенияМесяц>0   И теРегЗапись.ДеньПогашенияМесяц<=31;   
    	                                     тЕстьЕжеква=теРегЗапись.ДеньПогашенияКвартал>0 И теРегЗапись.ДеньПогашенияКвартал<=31; 
    		Если      тЕстьЕжемес И теРегЗапись.ДеньМесяцЭтоСледующийЗаОтгрузкой Тогда
    тМаксДеньПогашения=Мин(Дата(Год(ДобавитьМесяц(текРТУ_Дата,1)),Месяц(ДобавитьМесяц(текРТУ_Дата,1)),теРегЗапись.ДеньПогашенияМесяц), теРегЗапись.ДатаОкончания);   // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата
    		ИначеЕсли тЕстьЕжеква И Найти("/3/6/9/12/","/"+Строка(Месяц(текРТУ_Дата))+"/")<>0 И теРегЗапись.ДеньПогашенияКвартал>День(текРТУ_Дата) Тогда             // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата
    тМаксДеньПогашения=Мин(Дата(Год(текРТУ_Дата),Месяц(текРТУ_Дата),теРегЗапись.ДеньПогашенияКвартал), теРегЗапись.ДатаОкончания);                                   // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата                                         
            ИначеЕсли тЕстьЕжемес И ?(Найти("/3/6/9/12/","/"+Строка(Месяц(текРТУ_Дата))+"/")=0,Истина,НЕ тЕстьЕжеква) И теРегЗапись.ДеньПогашенияМесяц>День(текРТУ_Дата)   // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата 
                    И НЕ(УровеньПоЕжеМесКва=1) Тогда  // релиз 3.3 доб. строку
    тМаксДеньПогашения=Мин(Дата(Год(текРТУ_Дата),Месяц(текРТУ_Дата),теРегЗапись.ДеньПогашенияМесяц), теРегЗапись.ДатаОкончания); ПроверитьЕжеМесКваНаНеполноеПогашение(1,теРегЗапись,тСтрокаТЗотчета); // релиз 3.3 доб. ПроверитьЕжеМесКваНаНеполноеПогашение(1,теРегЗапись,тСтрокаТЗотчета); // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата                                      
    		ИначеЕсли тЕстьЕжеква И Найти("/3/6/9/12/","/"+Строка(Месяц(ДобавитьМесяц(текРТУ_Дата,1)))+"/")<>0 Тогда                                                 // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата
    тМаксДеньПогашения=Мин(Дата(Год(ДобавитьМесяц(текРТУ_Дата,1)),Месяц(ДобавитьМесяц(текРТУ_Дата,1)),теРегЗапись.ДеньПогашенияКвартал), теРегЗапись.ДатаОкончания);ПроверитьЕжеМесКваНаНеполноеПогашение(2,теРегЗапись,тСтрокаТЗотчета); // релиз 3.3 доб. ПроверитьЕжеМесКваНаНеполноеПогашение(2,теРегЗапись,тСтрокаТЗотчета); // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата                                         
            ИначеЕсли тЕстьЕжемес 
                    И НЕ(УровеньПоЕжеМесКва=1 И тМаксДеньПогашения>=Мин(Дата(Год(ДобавитьМесяц(текРТУ_Дата,1)),Месяц(ДобавитьМесяц(текРТУ_Дата,1)),теРегЗапись.ДеньПогашенияМесяц), теРегЗапись.ДатаОкончания)) Тогда  // релиз 3.3 доб. строку
    
    	//...
    		
    	                          тМаксДеньПогашения=НачалоДня(тМаксДеньПогашения);
    	тРазрешенныхДнейОтсрочки=(тМаксДеньПогашения-НачалоДня(текРТУ_Дата))/(24*60*60); // релиз 3.1 зам. тРТУ.Дата на текРТУ_Дата
    	Возврат                  (тМаксДеньПогашения-НачалоДня(тДт))/(24*60*60);
    КонецФункции

    Там, говорят, работы на час: посмотреть как в отчете данные собираются и перенести то, что надо. Открываю отчет, а там с два десятка вот таких функций и процедур. Орфография и пунктуация сохранена, жаль вся функция не поместилась.

    HomoAlbus, 11 Ноября 2015

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

    +2

    1. 1
    2. 2
    -- Hehehe
    typeGroups ll = (\(t, tt) -> printf "\n~~~~~~~~~~~~~~~\n%s\n~~~~~~~~~~~~~~~\n%s" t (show tt))  >>= (nub . map (_measInfoId &&&(snd .unzip . M.toList . _measTypes)) . (>>= _measInfo) . (>>= _measData)) $ (concat `fmap` mapM (\file -> runX $ readXml file >>> parseFile)) ll

    скрипт, высранный в спешке для обработки данных в одной задаче перерос в утилиту

    CHayT, 10 Ноября 2015

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $HighSpeed = new HighLoad();
    	$redis = new Redis();
    	$redis->connect($HighSpeed->passwd);
    	$redis->auth('ХХХХХХХХХХХХХХХ');
    	$redis->select(1);

    Всё что после первой строки уже реализовано в самом классе

    proweb, 10 Ноября 2015

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