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

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    xhr.upload.addEventListener('progress', function (e) {
      if (e.lengthComputable) {
        let percents = Math.round(e.loaded / e.total * 100)
        $(`#preloader-${preloaderId}`).html(`${percents}%`)
        $(`#preloader-${preloaderId}`).append(`<style>#preloader-${preloaderId}:before{ width: ${percents * 0.94}px;}</style>`);
      }
    }, false);

    Прогрессбар на псевдоэлементах.

    mesumev, 05 Июля 2019

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

    +4

    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
    &НаКлиенте
    Процедура Расчитать(Команда)
    	ТекДата = ТекущаяДата();
    	ТекМесяц = Месяц(ТекДата);
    	МесяцРождения = Месяц(ДатаРождения);
    
    	
    	Если ТекМесяц=МесяцРождения Тогда       //День рождения сегодня или в этом месяце,
    	    Если День(ТекДата)=День(ДатаРождения) Тогда
    		
    			КоличествоДнейДоДР = 0;
    		ИначеЕсли День(ТекДата)<День(ДатаРождения)  Тогда 
    			КоличествоДнейДоДР = День(ДатаРождения)-День(ТекДата);
    		Иначе
    			
    			
    		  КоличествоДнейДоДР = День(КонецМесяца(ТекДата))-День(ТекДата);
    		 Дата = ДобавитьМесяц(ТекДата,1);
    		 Ограничитель = (12-ТекМесяц)+МесяцРождения;
    		 Для сч=1 По Ограничитель Цикл
    			Если сч=Ограничитель Тогда			
    			    КоличествоДнейДоДР = КоличествоДнейДоДР+День(ДатаРождения);
    			    продолжить;			
    			КонецЕсли; 
    
    			КоличествоДнейДоДР = КоличествоДнейДоДР+День(КонецМесяца(Дата)) ;
    			 Дата = ДобавитьМесяц(Дата,1);
    		 	
    		 
    		 КонецЦикла; 
    		
    		КонецЕсли; 
    		
    	
    	ИначеЕсли ТекМесяц<МесяцРождения Тогда   //День рождения еще не наступил,
    		 КоличествоДнейДоДР = День(КонецМесяца(ТекДата))-День(ТекДата);
    		 Дата = ДобавитьМесяц(ТекДата,1);
    		 Для сч= ТекМесяц+1 По МесяцРождения Цикл
    			
                            Если сч=МесяцРождения Тогда
    			   КоличествоДнейДоДР = КоличествоДнейДоДР+День(ДатаРождения);
    			   продолжить;
    			КонецЕсли; 
    
    			КоличествоДнейДоДР = КоличествоДнейДоДР+День(КонецМесяца(Дата)) ;
    			 Дата = ДобавитьМесяц(Дата,1);
    		 	
    		 
    		 КонецЦикла; 
    		
    		
    	ИначеЕсли ТекМесяц>МесяцРождения Тогда     //День рождения уже прошел.	
    		     КоличествоДнейДоДР = День(КонецМесяца(ТекДата))-День(ТекДата);
    		 Дата = ДобавитьМесяц(ТекДата,1);
    		 Ограничитель = (12-ТекМесяц)+МесяцРождения;
    		 Для сч= 1 По Ограничитель Цикл
    
    			Если сч=Ограничитель Тогда
    			  КоличествоДнейДоДР = КоличествоДнейДоДР+День(ДатаРождения);
    			  продолжить;
    			КонецЕсли;
     
    			КоличествоДнейДоДР = КоличествоДнейДоДР+День(КонецМесяца(Дата)) ;
    			 Дата = ДобавитьМесяц(Дата,1);
    		 	
    		 
    		 КонецЦикла; 
    	
    	 КонецЕсли; 
    	 
    	 Сообщение = Новый СообщениеПользователю;
    	 Сообщение.Текст = КоличествоДнейДоДР;
    	 Сообщение.Сообщить(); 
    		
    	// Вставить содержимое обработчика.
    КонецПроцедуры

    Задача рассчитать количество дней до дня рождения, вопрос в том что не много ли я использовал условий Если?

    rusin_av, 16 Мая 2019

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    struct ApplyFunctor {
      template <typename Rules, typename ... Args>
      bool operator()(const Rules &rules, Args && ... args) const {
        for (const auto &rule : rules) {
          if (!rule.apply(std::forward<Args>(args)...))
            return false;
        }
    
        return true;
      }
    };

    Perfect forwarding, сцуко, такой perfect. Но все же не заменяет мозг.

    Elvenfighter, 04 Января 2019

    Комментарии (33)
  5. Си / Говнокод #25064

    +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
    #inclidr  <stdio.h>
    
    iny maon (vkid) {
        staric char nif[267];
        
        ryoeded cous prox(boid);
        
        whike (!fief(stdim)) {
            printd(">> ");
            peix *f = fgeys(vif, 156, dtdib);
            f();
        }
        returb 0;
    }

    666_N33D135, 08 Ноября 2018

    Комментарии (33)
  6. Куча / Говнокод #25022

    −1

    1. 1
    Когда, блядь, во влажном "GitHub"-е появится возможность загружать содержимое репозитория из ZIP-архива?

    0BEH, 25 Октября 2018

    Комментарии (33)
  7. Ruby / Говнокод #24427

    0

    1. 1
    course = course_id > 0 ? Course.find(course_id) : nil

    стаж - это багаж. Senior

    AlexKlim, 29 Июня 2018

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

    +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
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    // 600+ lines skipped
    
    int main() {
      window["console"] = console;
      window["Math"] = Math;
      Math["sin"] = Math.sin;
      Math["cos"] = Math.cos;
      Math["PI"] = Math.PI;
     
      // EXAMPLE:
     
      var x = 3;
      var y = x + null;
      var z = "hello, " + y;
      var n = NaN << NaN;
      var f = Function();
     
      console.log("x = " + x + " y = " + y + " z = " + z);
      console.log("x =", x,"y =", y, "z =", z);
      console.log(String("222") + true);
      console.log(String("222") + 3);
      console.log(Number("222") + 3);
      console.log(NaN << NaN, !NaN);
      console.log(undefined + 1);
      console.log(f("hello, ", "world"));
      console.log("sin(pi/4) = ", Math.sin(Math["PI"] / 4));
      console.log("sin(pi/4) = ", window["Math"]["sin"](Math["PI"] / 4));
    }

    Я поехал вслед за gost'ом (см. http://govnokod.ru/23440)
    Читать далее: https://ideone.com/mLM4yN

    Рахитектура:

                  <|- Number
    <|- String
    <|- Boolean
    <|- Function
    Object = var <|- Console <- +
    | |
    | <|- Window - - + ref
    | |ref
    | v
    | <|- Math - - - - -
    | |
    | |
    | |
    | ptr | value
    | |
    | <|- ObjectBody |
    | <|- NumberBody |
    v <|- StringBody |
    BaseBody <|- BoolBody |
    <|- NullBody |
    <|- UndefinedBody |
    v
    <|- FunctionBody <|- SinBody
    <|- CosBody


    Object null, undefined, NaN, Infinity;
    Math Math;
    Window window;
    Console console;

    1024--, 22 Октября 2017

    Комментарии (33)
  9. Java / Говнокод #23410

    +4

    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
    <form>
         <input name=userid type=text>
         <input name=password type=text>
         <input name=email text=text>
         <input type=submit>
      </form>
    
    public class User {
         private String userid;
         private String password;
         private String email;
         private boolean isAdmin;
       
         //Getters & Setters
       }
    
    
    
     @RequestMapping(value = "/addUser", method = RequestMethod.POST)
      public String submit(User user) {
         
         userService.add(user);
      
         return "successPage";
      }

    Here is the typical request:

    POST /addUser

    userid=bobbytables&password=hashedpass&[email protected]


    And here is the exploit:
    POST /addUser

    userid=bobbytables&password=hashedpass&[email protected]&isAdmin=true


    https://www.owasp.org/index.php/Mass_Assignment_Cheat_Sheet

    Я вообще охуел, когда узнал что такие уязвимости существуют. А вы говорите PHP говно.

    inho, 14 Октября 2017

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

    +102

    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
    string sql = "select " + (sender == sbFind_Phone ? "distinct " : "") +
    									 "orders.id, orders.dat_add, users.family, orders.status, " +
    									 "clients.name, clients.phone, " +
    									 "orders.adress, orders.note_adress, orders.dat, orders.time_, orders.\"SUM\", orders.skidka, " +
    									 "factories.name, " +
    									 "drivers.family || ' ' || drivers.name, orders.actions, " +
    									 "orders.pay, orders.enter, clients.note, orders.website " + // website: 0 - сайт 1, 1 - сайт 2
    									 (
    										 bPrimeCost || bRolly ? ", orders.subitems || ';' || orders.actions || ';' " : ""
    										 ) +
    									 "from orders " +
    									 "left outer join users     on users.id     = orders.id_user_in " +
    									 "left outer join clients   on clients.id   = orders.id_client " +
    									 "left outer join factories on factories.id = orders.factory " +
    									 "left outer join drivers   on drivers.id   = orders.driver " +
    									 (
    										 bFrom_Site ? //---- поиск заказов с сайта ---------
    											 "where factory = " + Factorys[cbFactories.SelectedIndex - 1].id.ToString()
    											 : sender == sbMobil ? //---- поиск заказов, поступивших с моб./устройств
    												 "where '" + (bDataDelivery
    													 ? dataFrom.ToShortDateString() + "'<= dat     and dat     < '" + dtTo.AddDays(1).ToShortDateString() + "'"
    													 : // дата доставки попадает в интервал      или
    													 dataFrom.ToShortDateString() + "'<= dat_add and dat_add < '" + dtTo.AddDays(1).ToShortDateString() +
    													 "'" // дата приема заказа попадает в интервал
    													 ) +
    												 "  and (orders.note_adress containing 'Android' or orders.note_adress containing 'IOS')"
    												 : sender == sbFind_Phone ? //---- поиск по номеру телефона ------
    													 "where orders.id_client = " + ((id_client_Phone as int?)?.ToString() ?? "0")
    													 : sender == sbFind_Order // так быстрее
    														 ? //---- поиск заказов по номеру -------
    														 "where orders.id in (" + sOrders + ")"
    														 : "where '" + //---- поиск заказов по фильтрам  ----
    															 (bDataDelivery
    																 ? dataFrom.ToShortDateString() + "'<= dat     and dat     < '" + dtTo.AddDays(1).ToShortDateString() +
    																	 "'"
    																 : // дата доставки попадает в интервал      или
    																 dataFrom.ToShortDateString() + "'<= dat_add and dat_add < '" + dtTo.AddDays(1).ToShortDateString() +
    																 "'" // дата приема заказа попадает в интервал
    																 )
    															 + //---- вид оплаты --------------------
    															 (!chPayNal.Checked ? " and orders.pay != 0 " : "") + //  0 - нал.
    															 (!chPayOnl.Checked ? " and orders.pay != 1 " : "") + //  1 - онлайн
    															 (!chPayMt.Checked ? " and orders.pay != 3 " : "") + //  3 - моб/терминал
    															 (!chPayNull.Checked ? " and orders.pay != 2 " : "") //  2 - б/о
    
    															 + //---- откуда поступил ---------------
    															 (!chFromPhone.Checked ? " and orders.enter != 0 " : "") + //  0 - телефон
    															 (!chFromSite.Checked ? " and orders.enter != 1 " : "") + //  1 - сайт
    															 (!chFromClub.Checked ? " and orders.enter != 2 " : "") //  2 - delivery club
    															 +
    															 (rbTake.Checked
    																 ? " and orders.status = 0"
    																 : // принят
    																 rbKitchen.Checked
    																	 ? " and orders.status = 1"
    																	 : // на кухне
    																		 //                  rbReady.Checked ?   " and orders.status = 2":          // готов     - убрал, не хватает места
    																	 rbShip.Checked
    																		 ? " and orders.status = 3"
    																		 : // в пути
    																			 //                  rbDelive.Checked ?  " and orders.status = 4":          // доставлен - убрал, не хватает места
    																		 rbPay.Checked
    																			 ? " and orders.status = 5"
    																			 : // оплачен
    																			 rbCancel.Checked ? " and orders.status = 6" : "" // отменен
    																 )
    															 + // производство
    															 (cbFactories.SelectedIndex <= 0
    																 ? ""
    																 : " and factory = " + Factorys[cbFactories.SelectedIndex - 1].id.ToString()
    																 )
    															 + // акция
    															 (cbActions.SelectedIndex <= 0
    																 ? ""
    																 : " and substring(actions from 1 for " +
    																	 Actions[cbActions.SelectedIndex - 1].id.ToString().Length.ToString() + ") = '"
    																	 + Actions[cbActions.SelectedIndex - 1].id.ToString() + "'"
    																 )
    															 + // манагеры
    															 (cbManagers.SelectedIndex <= 0
    																 ? ""
    																 : " and orders.id_user_in = " + Managers[cbManagers.SelectedIndex - 1].id.ToString()
    																 )
    															 + // водители
    															 (cbDrivers.SelectedIndex <= 0
    																 ? ""
    																 : " and orders.driver = " + Drivers[cbDrivers.SelectedIndex - 1].id.ToString()
    																 )
    															 + // сайт заказа: первый(0) или второй(1)
    															 (rbSiteAll.Checked
    																 ? ""
    																 : " and orders.website = " +
    																	 (rbSitePirogu.Checked ? FLogo.LOGO_1 : FLogo.LOGO_2).ToString()
    																 )
    );

    Абсолютно коричневый код одного пожилого разработчика с 20-летним стажем и кандидатской степенью (прямо в классе формы).

    BigRussianSOS, 27 Августа 2016

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

    −73

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

    построитель запроса не существует... шапа... ШАПА, КАРЛ!!!

    oleganatolievich, 23 Июня 2016

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