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

    В номинации:
    За время:
  2. 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)
  3. 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)
  4. 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)
  5. Java / Говнокод #11387

    +119

    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
    /**
     * Imbues the given {@link Font} with support for fallback fonts,
     * needed to display CJK characters in fonts that do not support them.
     * 
     * This is an ugly mess that depends on internal Sun APIs. Use sparingly!
     *
     * @param font the font
     * @return the composite font UI resource
     */
    public static FontUIResource getCompositeFontUIResource(final Font font) {
    	try {
    		Class<?> klass;
    		
    		try {
    			// Java 7
    			klass = Class.forName("sun.font.FontUtilities");
    		} catch (final ClassNotFoundException e) {
    			// Java 6
    			klass = Class.forName("sun.font.FontManager");
    		}
    		
    		// Invoke static method that wraps the font
    		val method = klass.getMethod("getCompositeFontUIResource", Font.class);
    		return (FontUIResource) method.invoke(null, font);
    	} catch (final ClassNotFoundException e) {
    		// Long block of catches that cannot happen on a Sun JRE
    		throw new AssertionError(e);
    	} catch (final IllegalAccessException e) {
    		throw new AssertionError(e);
    	} catch (final IllegalArgumentException e) {
    		throw new AssertionError(e);
    	} catch (final InvocationTargetException e) {
    		throw new AssertionError(e);
    	} catch (final NoSuchMethodException e) {
    		throw new AssertionError(e);
    	} catch (final SecurityException e) {
    		throw new AssertionError(e);
    	}
    }

    someone, 10 Июля 2012

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

    −117

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

    Вот такой код сделан был франчем, который потребовал за это еще и 3 часа оплаты)))) Одно только непонятно почему при обращении к регистру нельзя было использовать отбор это же гораздо проще и быстрее и кода меньше

    dart, 14 Июня 2012

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

    +90

    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
    <?PHP
     
    class MVC {
     
    public function Model ($text) {
     
    $text = '<i>' . $text . '</i>';
    return $text;
     
    }
     
    public function View ($text) {
     
    $text = $Child::MakeTextBold($text);
    echo $text;
     
    }
     
    public function Controller () {
     
    $text = 'Some text';
    $new_text = self::Model($text);
    self::View($new_text);
     
    }
     
    }
     
    class NewClass extends MVC {
     
    public function MakeTextBold ($text) {
     
    $text = '<strong>' . $text . '</strong>';
    return $text;
     
    }
     
    }
     
    ?>

    С форума php.su. Там еще есть идеи автора про некий "плагинатор" который включает в себя Котролер "News", Модель "News" и внимание ... News View!!!
    Автор еще хвастается, что пишет CMS, администратор которой будет в праве выбрать чем кэшировать шаблоны, на выбор такие пункты как : Memcache, Xcache, JSON, files... ))
    Массы лулзов ))

    sKaa, 31 Мая 2012

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

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    ...
    // description
    if( $group_row['description'] == "" )
    	$this->options["description"]=(int)false; // Можно было просто писать 0
    else {
    	$this->description = $group_row['description'];
    	$this->options["description"]=(int)true; // Можно было просто писать 1))
    }
    ...
    $this->privancy['photos'] = (int)(bool)$group_row['photos'];
    $this->privancy['topics'] = (int)(bool)$group_row['topics'];
    ...

    Вчера ночью вот что написал :) Надо мне работать только днём!)

    m_hamlet, 11 Ноября 2011

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

    +1007

    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
    void Image::CombineNoise(byte combineType, byte noiseType, cCol3D& maxcolor, Image* mask)
    {
    	byte *maskBf=0;
    	if(mask)
    	{
    		uint mask_pixels=mask->Width*mask->Height;
    		maskBf=(byte*)malloc(mask_pixels);
    		if(mask->Format!=ImageFormat_Luminance)
    		for(uint i=0, ic=0; i<mask_pixels; i++, ic+=mask->Components)
    			maskBf[i]=min((byte)255)((byte)(mask->Data[ic]*0.3f+mask->Data[ic+1]*0.59f+mask->Data[ic+2]*0.11f));
    		else memcpy(maskBf, mask->Data, mask_pixels);
    		if(mask->Width!=Width || mask->Height!=Height)
    		{
    			byte* maskBf2=ScaleImage(Width, Height, maskBf, mask->Width, mask->Height, 1);
    			free(maskBf);
    			maskBf=maskBf2;
    		}
    	}
    
    	uint pixels=Width*Height;
    	uint size=pixels*Components;
    	if(Data && Width>0 && Height>0)
    	{
    		if(noiseType==0 && Format!=ImageFormat_Luminance)	//Цветной шум
    		{
    			switch(combineType)
    			{
    			case 0:	//Модуляция
    				if(mask)
    				for(uint i=0, ic=0; ic<size; i++, ic+=Components)
    				{
    					if(maskBf[i]<=127) continue;
    					Data[ic]=min<byte>(Data[ic]*(rand()%maxcolor.r)/255)(255);
    					if(Components<2) continue;
    					Data[ic+1]=min<byte>(Data[ic+1]*(rand()%maxcolor.g)/255)(255);
    					if(Components<3) continue;
    					Data[ic+2]=min<byte>(Data[ic+2]*(rand()%maxcolor.b)/255)(255);
    				}
    				else
    				for(uint ic=0; ic<size; ic+=Components)
    				{
    					Data[ic]=min<byte>(Data[ic]*(rand()%maxcolor.r)/255)(255);
    					if(Components<2) continue;
    					Data[ic+1]=min<byte>(Data[ic+1]*(rand()%maxcolor.g)/255)(255);
    					if(Components<3) continue;
    					Data[ic+2]=min<byte>(Data[ic+2]*(rand()%maxcolor.b)/255)(255);
    				}
    				break;
    
    			case 1:	//Сложение
    				if(mask)
    				for(uint i=0, ic=0; ic<size; i++, ic+=Components)
    				{
    					float factor=maskBf[i]/255.0f;
    					Data[ic]=(byte)min(Data[ic]+(rand()%maxcolor.r*factor))(255);
    					if(Components<2) continue;
    					Data[ic+1]=(byte)min(Data[ic+1]+(rand()%maxcolor.g*factor))(255);
    					if(Components<3) continue;
    					Data[ic+2]=(byte)min(Data[ic+2]+(rand()%maxcolor.b*factor))(255);
    				}
    				else
    				for(uint ic=0; ic<size; ic+=Components)
    				{
    					Data[ic]=min<byte>(Data[ic]+(maxcolor.r>0? rand()%maxcolor.r: 0))(255);
    					Data[ic+1]=min<byte>(Data[ic+1]+(maxcolor.g>0? rand()%maxcolor.g: 0))(255);
    					Data[ic+2]=min<byte>(Data[ic+2]+(maxcolor.b>0? rand()%maxcolor.b: 0))(255);
    				}
    				break;
    
    			case 2:	//Вычитание
    				if(mask)
    				for(uint i=0, ic=0; ic<size; i++, ic+=Components)
    				{
    					float factor=maskBf[i]/255.0f;
    					Data[ic]=(byte)max(Data[ic]-(rand()%maxcolor.r*factor))(0);
    					if(Components<2) continue;
    					Data[ic+1]=(byte)max(Data[i+1]-(rand()%maxcolor.g*factor))(0);
    					if(Components<3) continue;
    					Data[ic+2]=(byte)max(Data[i+2]-(rand()%maxcolor.b*factor))(0);
    				}
    				else
    				for(uint ic=0; ic<size; ic+=Components)
    				{
    					Data[ic]=max<byte>(Data[ic]-rand()%maxcolor.r)(0);
    					if(Components<2) continue;
    					Data[ic+1]=max<byte>(Data[ic+1]-rand()%maxcolor.g)(0);
    					if(Components<3) continue;
    					Data[ic+2]=max<byte>(Data[ic+2]-rand()%maxcolor.b)(0);
    				}
    				break;
    				
    			case 3:	//Средний цвет
    //На говнокод не лезет больше. Такая гигантская функция.

    Одна из функций для генерации изображений. Решил не рефакторить, потому что всё равно всё буду переделывать.

    gammaker, 17 Октября 2011

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Новые данные давно перестали поступать с этого сайта. Сдаю свои пароли и явки:
    http://govnokod.ru/user/4227
    http://govnokod.ru/user/4434
    http://govnokod.ru/user/4480
    GПороли:
    fat
    govno
    
    И мой вам подарок:
    http://www.youtube.com/watch?v=ClD0TcvLmgo

    Школу троллинга на говнокоде прошел. Экзамены сдал. Пойду на хабр или лорНадо заканчивать с троллингом. Я не со зла. Извините, если кого обидел. До свидания. ^_^

    CPPGovno, 06 Октября 2011

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

    +69

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // Groovy
    // ...
    // Globals.visitedImages = ([] as Set).asSynchronized() 
    // ...
    def linkAlreadyVisited
    synchronized (Globals.visitedLinks) {
    	linkAlreadyVisited = iter in Globals.visitedLinks
    	if (!linkAlreadyVisited) {
    		Globals.visitedLinks.add(iter)
    	}
    }
    if (!linkAlreadyVisited) { // ...

    пересинхронизация синхронизированной коллекции, несколько операций вместо вызова одной стандартной

    Blekel, 03 Октября 2011

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