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

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

    +147

    1. 1
    2. 2
    3. 3
    $(".rating").each(function() { 
    $(this).find('input').hide(); 
    });

    Самое интересное, что в блоке .rating никогда нет и не было input

    yamaha252, 29 Июля 2013

    Комментарии (40)
  3. Pascal / Говнокод #13316

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    // Delpih 7 отказывается компилировать этот код, тогда как в Delphi 2010 он вполне успешно компилируется.
    // Отчего это?
    
    for pthread in lst do
    ...
    
    >>[Error] Unit1.pas(89): Operator not applicable to this operand type

    Stertor, 06 Июля 2013

    Комментарии (40)
  4. ActionScript / Говнокод #13129

    −170

    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
    public function set flip(value:Boolean):void {
        if (this.object.flip != value) {
            this.object.flip = value;
            this.clearCells();
            var cell:Cell = this.cell;
        }
    }
    
    public function get cell():Cell {
        if (!this._cell) {
            createCell();
        }
        return this._cell;
    }

    Ненавижу подергивание.

    kyzi007, 07 Июня 2013

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

    −80

    1. 1
    Если Найти(Строка(ТипЗнч(Ссылка)),"Документ") Тогда

    Проверка, является ли переданная ссылка документом. Сегодня без авторства.

    ilya2184, 05 Июня 2013

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

    +129

    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
    public static MvcHtmlString TextWithLinks(this HtmlHelper helper, string inputStr)
    {
      string html = String.Empty;
      Uri url;
      string[] arr = inputStr.Split(' ');
      for (int i = 0; i < arr.Length; i++)
      {
        if (i != 0)
        {
          html += " ";
        }
        if (Uri.TryCreate(arr[i],UriKind.Absolute, out url))
        {
          html += String.Format("<a href='{0}' target='_blank'>{0}</a>", url.AbsoluteUri);
        }else
        {
          html += arr[i];
        }
      }
      return new MvcHtmlString(html);
    }

    DarkThinker, 30 Мая 2013

    Комментарии (40)
  7. Haskell / Говнокод #12262

    −85

    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
    by :: Int -> [a] -> [[a]]
    by _ [] = []
    by n xs = take n xs: by n (drop n xs)
     
    words2 :: String -> (String, String)
    words2 str = conc $ words str where
        conc (x:xs) = (x, concat xs)
     
    groupTemplates :: String -> [(String, String)]
    groupTemplates xs = map (words2) (lines xs)
     
    decodeOne :: String -> [(String, String)] -> String
    decodeOne _ [] = ""
    decodeOne str (x:xs) | str == fst x = fst x ++ " " ++ snd x ++ "\n"
    decodeOne str (_:xs) = decodeOne str xs
     
    decode :: [String] -> [(String, String)] -> String
    decode bs ts = concat $ map (\b -> decodeOne b ts) bs
     
    main = do
        bits      <- readFile "bits.txt"
        templates <- readFile "templates.txt"
     
        writeFile "out.txt" $ decode (by 4 bits) (groupTemplates templates)

    http://www.cyberforum.ru/haskell/thread723767.html

    Fai, 09 Декабря 2012

    Комментарии (40)
  8. PHP / Говнокод #12158

    +46

    1. 1
    for($i=0;$i<=100;$i++)echo(!$i?$i:($i%3==0&&$i%5==0?'FizzBuzz':($i%3==0?'Fizz':($i%5==0?'Buzz':$i)))).'<br>';

    FizzBuzz - мое решение.

    pkot, 20 Ноября 2012

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

    −125

    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
    procedure setParameters(aq)
     спДекрет= Новый СписокЗначений;
     спДекрет.Добавить(Перечисления.СостоянияРаботникаОрганизации.ОтпускПоБеременностиИРодам);
     спДекрет.Добавить(Перечисления.СостоянияРаботникаОрганизации.ОтпускПоУходуЗаРебенком);
    	
    	
    	aq.setParameter("Дат",КонецДня(НачПериода));
    	aq.setParameter("Уволен",Перечисления.ПричиныИзмененияСостояния.Увольнение);
    	aq.setParameter("Оклад",Перечисления.СпособыРасчетов.Оклад);
    	aq.setParameter("МРП",Перечисления.СпособыРасчетов.КолМРП);
    	aq.setParameter("Сумма",Перечисления.СпособыРасчетов.Сумма);
    	aq.setParameter("Оклад",Перечисления.СпособыРасчетов.ПроцентОтОклада);
    	aq.setParameter("Доход",Перечисления.СпособыРасчетов.ПроцентОтДоходов);
    	aq.setParameter("ПодразделениеОрганизации",ПодразделениеОрганизации);
    	aq.setParameter("ФизЛицо",Работник);
    	aq.setParameter("Должность",Должность);
    	aq.setParameter("ВидЗанятости",ВидЗанятости);
    	aq.setParameter("ТарифныйРазряд",ТРазряд);
    	
    	aq.setParameter("ВРЭкология",ВРЭкология);
    	
    	//Декретники
    	aq.setParameter("Декрет",спДекрет);
    	//Состояние общее
    	aq.setParameter("Состояние",Состояние);
    	aq.setParameter("Сост",Состояние1);
    endprocedure
    
    procedure setБабло(Тз)
    	Тз.Колонки.Добавить("id",new ОписаниеТипов("Строка"));
    	Тз.Колонки.Добавить("Размер",new ОписаниеТипов("Число"));
    endProcedure
    
    ...
    	q=new Query;
    	q.Текст="                                            //--------------------------------------------бабло
    |Select  
    |	ПлановыеНачисленияРаботниковОрганизацийСрезПоследнихКон.Размер,
    |	ПлановыеНачисленияРаботниковОрганизацийСрезПоследнихКон.ФизЛицо.код id
    |from
    |	РегистрСведений.ПлановыеНачисленияРаботниковОрганизаций.СрезПоследних(
    |			&Дат,
    |			ВидРасчета.ЯвляетсяОсновнымНачислением
    |				И Размер <> 0) КАК ПлановыеНачисленияРаботниковОрганизацийСрезПоследнихКон
    |";
    	
    	setParameters(q);
    	бабло=New ТаблицаЗначений;
    	setБабло(бабло);
    	rs=q.Выполнить().Выбрать();
    	while rs.next() do
    			s=бабло.Добавить();
       s.id=rs.id;
       s.Размер=rs.Размер;
    enddo;
     бабло.Индексы.Добавить("id"); 
    ...

    Форматирование текста оставил как есть. Автор: Жуков А.П.

    Danik, 13 Ноября 2012

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

    +141

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public sealed class CustomProvider
    {
         private readonly object _SyncRoot = new object();
     
        public CustomProvider()
        {
                 lock(_SyncRoot)
                 {

    А вообще, если честно, создание экземпляра класса предка (object) всех классов, чтобы произвести захват критической секции - это так печально. Одному мне эта техника кажется удобной, но странной? Нет чтобы создать класс CriticalSection или что-то такое. А они создают объект совсем не связанный с синхронизацией. Не самодокументированно и тут явно какая-то переголова скрывается при создании объекта, по затратам памяти и системных ресурсов, что в каждый объект на уровне имплементации языка приходится по критической секции добавлять.
    Кстати, там как реализована эта критическая секция? Хендл этой критической секции фактически системный ресурс и для него по идеи нужно вызывать Dispose, но это не происходит. Тогда почему этих системных хендлов критической секции хватает, хотя ситуация без Dispose похожа на утечку системных ресурсов?

    Если кто подумал про lock(this), то это плохо с точки зрения проектирования класса и его последующего использования, поэтому идея с private _SyncRoot - это правильно. Ведь lock(this) (под this в последнем случае имеется данный экземпляр класса), может использоваться и снаружи класса, что может быть пересинхронизацией.

    HaskellGovno, 24 Октября 2012

    Комментарии (40)
  11. PHP / Говнокод #11448

    +62

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    $ar = array(5050,5370,6285,48100,6730,6730,4700,6500,3450,7260,2500,1370,4288,9620);
    	
    $cpr = 0;
    	
    foreach($ar as $k=>$v)
    {
    	$cpr += $v;
    }
    
    echo $cpr;

    Нестандартность мышления в действии

    domaster, 20 Июля 2012

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