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

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

    +162

    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
    for (DWORD CurItem=0; CurItem<dwNumItems; CurItem++)
    	{
    		switch (CurItem) 
    
    		{
    		case 0:
    			description.LoadString(IDS_OPC_PROP_CDT);	
    			pPropertyIDs[CurItem]	=	OPC_PROP_CDT;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_I2;
    			break;
    		case 1:
    			description.LoadString(IDS_OPC_PROP_VALUE);	
    			pPropertyIDs[CurItem]	=	OPC_PROP_VALUE;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	pDATag->m_value.vt;
    			break;
    		case 2:
    			description.LoadString(IDS_OPC_PROP_QUALITY);	//Item Quality
    			pPropertyIDs[CurItem]	=	OPC_PROP_QUALITY;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_I2;
    			break;
    		case 3:
    			description.LoadString(IDS_OPC_PROP_TIME);		//Item Timestamp
    			pPropertyIDs[CurItem]	=	OPC_PROP_TIME;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_DATE;
    			break;
    		case 4:
    			description.LoadString(IDS_OPC_PROP_RIGHTS);	//Item Access Rights
    			pPropertyIDs[CurItem]	=	OPC_PROP_RIGHTS;
    			pDescriptions[CurItem]	=	OpcStrDup (description);
    			pDataTypes[CurItem]		=	VT_I4;
    			break;
    		case 5:
    			description.LoadString(IDS_OPC_PROP_DESC);		//Item Description
    			pPropertyIDs[CurItem]	=	OPC_PROP_DESC;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_BSTR;
    			break;
    		case 6:
    			description.LoadString(IDS_OPC_PROP_SCANRATE);		//Item ScanRate
    			pPropertyIDs[CurItem]	=	OPC_PROP_SCANRATE;
    			pDescriptions[CurItem]	=	OpcStrDup(description);
    			pDataTypes[CurItem]		=	VT_R4;
    			break;
    		/////////////////////////////////////////////////////////////////////////
    		
    		}
    	}

    azote, 20 Сентября 2011

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

    −139

    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
    Функция ПолучитьЕдиницу(ТекЕдиница)
    	Тек = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекЕдиница.Наименование);
    	Если Тек = Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда
    		Тек = Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент();
    		Тек.Наименование = ТекЕдиница.Наименование;
    		Тек.НаименованиеПолное = ТекЕдиница.Наименование;
    		СтроковыйКод = "001";
    		Запрос = Новый Запрос;
    		Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
    		               |	КлассификаторСтранМира.Код КАК Код
    		               |ИЗ
    		               |	Справочник.КлассификаторСтранМира КАК КлассификаторСтранМира
    		               |
    		               |УПОРЯДОЧИТЬ ПО
    		               |	Код УБЫВ";
    					   
    					   Результат = Запрос.Выполнить().Выгрузить();
    					   ЧисловойКод = Число(Результат[0].Код) + 1;
    					   Если ЧисловойКод < 10 Тогда
    						   СтроковыйКод = "00"+ЧисловойКод
    					   ИначеЕсли ЧисловойКод < 100 Тогда
    						   СтроковыйКод = "0"+ЧисловойКод
    					   Иначе
    						   СтроковыйКод = ""+ЧисловойКод
    					   КонецЕсли;
    					   
    		Тек.Код = СтроковыйКод;
    		
    		Попытка
    			Тек.Записать();
    		Исключение
    			ЕстьОшибка = Истина;
    			Сообщить("Не могу записать единицу измерения "+ТекЕдиница.Наименование+" !");
    			Сообщить(ОписаниеОшибки());
    			Возврат "";
    		КонецПопытки;
    	КонецЕсли;
    	Если Тек = Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда
    		ЕстьОшибка = Истина;
    		Возврат "";
    	Иначе
    		Возврат Тек;
    	КонецЕсли;
    КонецФункции

    Получила в наследство от команды разработчиков во главе с неким Леонидом. Порадовало формирование кода для нового элемента классификатора единиц измерения. И правда, почему бы не поискать максимальный код в каком-нибудь неожиданном месте? А такое оригинальное формирование строки с лидирующими нулями просто убило до смерти.

    Shapokljak, 12 Сентября 2011

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

    −99

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    case klass
        when "Subject"
          case attr.to_sym
          when :screening_num then :screening_num
          when :subject_num then :subject_num
          end
        end

    это чО на всякий пожарный чтоли ?
    обратите внимание что klass это объект ActiveRecord а проверяется как стринг

    писал русский паренёк Дима ) а вы говорите индусы )

    koshak, 08 Сентября 2011

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

    +162

    1. 1
    2. 2
    if (suspended())
      resume();

    http://www.gamedev.ru/code/forum/?id=152077

    CPPGovno, 07 Сентября 2011

    Комментарии (6)
  6. Java / Говнокод #7749

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    getText( 
    							
    							
    		wifiStates[ 
    		           Settings.getLocationService( ) == null || !Settings.isCellConfigEnabled( ) ? LED_OFF
    							: Settings.isNetworkLocationEnabled( ) ? LED_ON
    									: LED_ERROR 
    				  ] ), Toast.LENGTH_SHORT )
    					.show( );

    Кусочек кода из приложения для андроида, которое придется поддерживать.... 0_0

    exeed, 02 Сентября 2011

    Комментарии (6)
  7. ActionScript / Говнокод #7740

    −119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    private function onEnterFrame(e:Event):void { 
       if (success)
        {
        }
       else
       {
        }
    }

    24 раза в секунду: "У вас всё хорошо? Вот и славно. Всё плохо? Да и чёрт с ним."

    robin, 02 Сентября 2011

    Комментарии (6)
  8. ActionScript / Говнокод #7710

    −109

    1. 1
    for (var i:int = 0; i < _levelingScores[i]; i++)

    Три дня багу искал :D Подумываю сходить к доктору.

    crazy_horse, 31 Августа 2011

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

    +156

    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
    /**
     * форматирование даты - преобразует дату в формат ДД-ММ-ГГГГ
     *
     * @param unknown_type $inDate - дата
     * @return unknown
     */
    public static function getDateFormatted($inDate, $forView = false, $inTime = '') {
    	//2011-05-03 20:27:26
    	
    	$a_tmp = explode(' ', $inDate);
    	if ($forView) {
    		$time = substr($a_tmp[1], 0, 5);
    		if ($a_tmp[0] == date('Y-m-d')) {
    			if ($time == '') {
    				$time = substr($inTime, 11, 5);
    				if ($time == '') {
    					$time = $inTime;
    				}
    			}
    			if ($time != '') {
    				return 'Сегодня, ' . $time;
    			}
    		}
    
    		$a_tmp = explode('-', $a_tmp[0]);
    
    		return $a_tmp[2] . '-' . $a_tmp[1] . '-' . $a_tmp[0];
    	}
    
    	$inDate = substr($inDate, 0 , 10);
    	$inDate = str_replace(' ', '', $inDate);
    	$inDate = str_replace('.', '-', $inDate);
    
    	$a_tmp = explode('-', $inDate);
    	if (strlen($a_tmp[0]) == 4) {
    		$inDate = str_pad($a_tmp[2], 2, '0', STR_PAD_LEFT) . '-' . $a_tmp[1] . '-' . $a_tmp[0];
    	}
    	return $inDate;
    }

    Sers, 30 Августа 2011

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

    +165

    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
    function show_price_list() {
    		$period_1 = $period_2 = $period_3 = $period_4 = $period_5 = $period_6 = "";
    		$query = "
    				SELECT id, price, type
    				FROM price 
    				ORDER BY type, start
    			";
    		$this->registry['sql']->query($query);
    		if ($this->registry['sql']->getNumberRows()>0) {
    			foreach ($this->registry['sql']->getFetchObject() as $oRow) {
    				switch($oRow->type) {
    					case 0: $period_1 .= '<td><input type="text" name="period['.$oRow->id.']" value="'.$oRow->price.'"></td>';
    					break;
    					case 1: $period_2 .= '<td><input type="text" name="period['.$oRow->id.']" value="'.$oRow->price.'"></td>';
    					break;
    					case 2: $period_3 .= '<td><input type="text" name="period['.$oRow->id.']" value="'.$oRow->price.'"></td>';
    					break;
    					case 3: $period_4 .= '<td><input type="text" name="period['.$oRow->id.']" value="'.$oRow->price.'"></td>';
    					break;
    					case 4: $period_5 .= '<td><input type="text" name="period['.$oRow->id.']" value="'.$oRow->price.'"></td>';
    					break;
    					case 5: $period_6 .= '<td><input type="text" name="period['.$oRow->id.']" value="'.$oRow->price.'"></td>';
    					break;
    				}
    			}
    		}
    		@$this->registry['template']->set('period_1', $period_1);
    		@$this->registry['template']->set('period_2', $period_2);
    		@$this->registry['template']->set('period_3', $period_3);
    		@$this->registry['template']->set('period_4', $period_4);
    		@$this->registry['template']->set('period_5', $period_5);
    		@$this->registry['template']->set('period_6', $period_6);
    	}

    Модель в шаблоне MVC

    vkontakte, 30 Августа 2011

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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if (strlen($_POST["NEW_PASSWORD"]) <= 0)
    					$arResult["ERROR"][] = GetMessage("STOF_ERROR_REG_FLAG1");
    
    				if (strlen($_POST["NEW_PASSWORD"]) > 0 && strlen($_POST["NEW_PASSWORD_CONFIRM"]) <= 0)
    					$arResult["ERROR"][] = GetMessage("STOF_ERROR_REG_FLAG1");
    
    				if (strlen($_POST["NEW_PASSWORD"]) > 0
    					&& strlen($_POST["NEW_PASSWORD_CONFIRM"]) > 0
    					&& $_POST["NEW_PASSWORD"] != $_POST["NEW_PASSWORD_CONFIRM"])
    					$arResult["ERROR"][] = GetMessage("STOF_ERROR_REG_PASS");

    Взято из Битрикса /bitrix/components/bitrix/sale.order.ajax/component.php

    Потрясающие идентификаторы мессаджей. Ну а то, что прочитать код без слома глаз нельзя отдельная песня.
    В целом там такого внутри много.

    zima, 29 Августа 2011

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