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

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

    +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
    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
    97. 97
    98. 98
    99. 99
    namespace SmalltalkPHP
    {
    	class Model
    	{
    		internal static void CreateClass(string className)
    		{
    			ClassObject = new Class(className);
    		}
    
    		public static Class ClassObject { get; set; }
    		public class Message
    		{
    			public class Arguments
    			{
    				private SortedList arguments = new SortedList();
    				public void Add(String key, String name)
    				{
    					this.arguments.Add(key, name);
    				}
    				public String AsPhp()
    				{
    					String[] sb = new String[arguments.Count];
    					int i = 0;
    					foreach (DictionaryEntry arg in arguments)
    					{
    						if ((String)(arg.Value) != "") sb[i] = "$" + arg.Value;
    						i++;
    					}
    					return String.Join(", ", sb);
    				}
    				public String MakeFunctionName()
    				{
    					String[] sb = new String[arguments.Count];
    					int i = 0;
    					foreach (DictionaryEntry arg in arguments)
    					{
    						if ((String)(arg.Key) != "") sb[i] = (String)arg.Key;
    						i++;
    					}
    					return String.Join("_", sb);
    				}
    			}
    			public class Generic
    			{
    				public virtual string AsPhp()
    				{
    					return "nya";
    				}
    			}
    			public class Unary : Generic
    			{
    				public Unary(String name, Boolean isStatic = false)
    				{
    					this.Name = name;
    					this.Arguments = new Arguments();
    					this.IsStatic = isStatic;
    				}
    				public string Name { get; set; }
    				public Arguments Arguments { get; set; }
    				public Boolean IsStatic { get; set; }
    				public string PhpHeader
    				{
    					get
    					{
    						return String.Format("public {0}function {1}()", IsStatic ? "static " : "", Name);
    					}
    				}
    
    				public override string AsPhp()
    				{
    					return PhpHeader;
    				}
    			}
    			public class Keyword : Generic
    			{
    				public Keyword(Boolean isStatic = false)
    				{
    					this.Arguments = new Arguments();
    					this.IsStatic = isStatic;
    				}
    				public string Name { get { return Arguments.MakeFunctionName(); } }
    				public Arguments Arguments { get; set; }
    				public Boolean IsStatic { get; set; }
    				public string PhpHeader
    				{
    					get
    					{
    						return String.Format("public {0}function {1}({2})", IsStatic ? "static " : "", Name, Arguments.AsPhp());
    					}
    				}
    
    				public override string AsPhp()
    				{
    					return PhpHeader;
    				}
    			}
    		}
    	}
    }

    Писал конвертер Smalltalk -> PHP
    Где-то еще валяется Smalltalk -> Erlang

    kgm-rj, 14 Января 2016

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

    −2

    1. 1
    2. 2
    3. 3
    var indexes = T.Select((item, index) => new { Item = item, Index = index })
                    .Where(nitem => n.Item == 0).Select(nindex => n.Index).ToArray();
    Console.WriteLine("Первый: {0}, последний: {1}", indexes.First(), indexes.Last());

    Не слишком много item index? index item?

    Govno_Coder, 14 Января 2016

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

    +8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(user.pass = pass_to_hash(password)){
           return done(null, user);
    }else{
           return done('incorrect password');
    }

    Факир был пьян, и запер дверь, забыв ее закрыть)

    Darth, 15 Декабря 2015

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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    var cloths = {
      <?php foreach ($clothList as $cloth): ?>
        "<?=$cloth->id()?>": {
          "id": <?=$cloth->id()?>,
          "name": "<?=$cloth->name()?>",
          "public_name": "<?=str_replace('"', '\"', $cloth->public_name())?>"
        },
      <?php endforeach; ?>
      "dummy": {}
    };

    kgm-rj, 14 Декабря 2015

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    if (!$subscription) {
        return $this->redirect(['action' => 'cancel_success']);
        throw new BadRequestException();
    }

    epadqwbd, 11 Декабря 2015

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

    0

    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
    $(window).load(function () {
    
        $(".sidebar-list").mCustomScrollbar({
          // scrollButtons:{enable:true,scrollType:"stepped"},
          keyboard: {
            scrollType: "stepped"
          },
          mouseWheel: {
            scrollAmount: 188
          }, // theme:"rounded-dark",
          scrollbarPosition: "inside",
          autoExpandScrollbar: false,
          snapAmount: 188,
          snapOffset: 65
        });
        if ("onhashchange" in window && location.hash) {
          match = location.hash.match(/^[?#!]*(.*)$/)[1];
          scrollToPage(match);
        };
    
        if (!isMob.any() && isRoot) {
          // return false;
          var navM = $('.menu a');
          var section = $.map($(".section"), function (e) {
            var $e = $(e);
            var pos = $e.position();
            return {
              top: pos.top - 75,
              bottom: pos.top - 75 + $e.height(),
              hash: '#!' + $e.attr('id'),
              indx: $e.index()
            };
          });
          //Checking scroll 
          var top = null;
          var changed = false;
          var currentHash = null;
    
          $(window).scroll(function () {
            var newTop = $(document).scrollTop();
            changed = newTop != top;
            if (changed) {
              top = newTop;
              // step();
            }
          });
          function step() {
            if (!changed) {
              return setTimeout(step, 200);
            }
            var count = section.length;
            var p;
            while (p = section[--count]) {
              if (p.top >= top || p.bottom <= top) {
                continue;
              }
              if (currentHash == p.hash) {
                break;
              }
              var scrollTop = $(document).scrollTop();
              window.location.hash = currentHash = p.hash;
              $(document).scrollTop(scrollTop);
            }
            setTimeout(step, 200);
          }
          setTimeout(step, 200);
        }
      });

    Сей гениальный код должен управлять прокруткой и главным меню на сайте.

    moveax3, 10 Декабря 2015

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

    0

    1. 1
    2. 2
    3. 3
    if ((*entry_it)->flags & (kNoAntialiasRenderFlag == kNoAntialiasRenderFlag)) {
        ...
    }

    Fai, 02 Декабря 2015

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

    −94

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

    А потом вот такая таблица помещается в СКД, на неё накладывается отбор... и даже по 1 контрагенту отчёт формируется минут 5. Научили дурака Богу молиться...

    levxxx, 30 Ноября 2015

    Комментарии (3)
  10. 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)
  11. 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)