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

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

    +152

    1. 1
    Пособие по тому, как не надо писать системы: http://file.qip.ru/file/fsBgpGob/index.html

    P.S.: за это заплатили товарищам 200 т.р.

    1_and_0, 15 Февраля 2012

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

    +159

    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
    void CXMLParser::Parse(std::map< std::pair<int, int>, int >& link)
    {
      _di_IXMLNode areaNode = MessageNode->ChildNodes->FindNode( WideString("area") );
      if( areaNode )
      {
        Area.reset( new CAreaPart( areaNode ) );
        IXMLNodeList* pointList = areaNode->ChildNodes;
        if( pointList )
        {
          for(int pointIndex=0; pointIndex<pointList->GetCount(); pointIndex++)
          {
            _di_IXMLNode pointNode = pointList->Get( pointIndex );
            int typePoint = -1;
            if( pointNode->GetNodeName() == WideString("measuringpoint") )
              typePoint = MEASURING;
            if( pointNode->GetNodeName() == WideString("accountpoint") )
              typePoint = ACCOUNT;
            if( pointNode->GetNodeName() == WideString("deliverypoint") )
              typePoint = DELIVERY;
            switch( typePoint )
            {
            case MEASURING:
            case ACCOUNT:
            case DELIVERY:
              {
                const int pointCode    = pointNode->GetAttribute( WideString("code") );
                const String pointName = pointNode->GetAttribute( WideString("name") );
                IXMLNodeList* channelList = pointNode->ChildNodes;
                if( channelList )
                {
                  for(int channelIndex=0; channelIndex<channelList->GetCount(); channelIndex++)
                  {
                    _di_IXMLNode channelNode = channelList->Get( channelIndex );
                    if( channelNode->GetNodeName() == WideString("measuringchannel") )
                    {
                      const int channelCode    = channelNode->GetAttribute( WideString("code") );
                      const String channelDesc = channelNode->GetAttribute( WideString("desc") );
                      IXMLNodeList* periodList = channelNode->ChildNodes;
                      if( periodList )
                      {
                        for(int periodIndex=0; periodIndex<periodList->GetCount(); periodIndex++)
                        {
                          _di_IXMLNode periodNode = periodList->Get( periodIndex );
                          if( periodNode )
                          {
                            String str = periodNode->GetAttribute( WideString("start") );
                            periodNode->GetAttribute( WideString("end") );
                            TDateTime time;
                            time = TDateTime( StrToInt( str.SubString( 1, 2 ) ), StrToInt( str.SubString( 3, 2 ) ), 0, 0 );
                            periodNode->GetAttribute( WideString("summer") );
                            time = IncMinute( time, 30 );
                            _di_IXMLNode valueNode = periodNode->ChildNodes->FindNode( WideString("value") );
                            if( valueNode )
                            {
                              const int status = valueNode->GetAttribute( WideString("status") );
                              const int value = StrToInt( valueNode->Text );
                              if( RTDBWrite )
                              {
                                map< pair<int, int>, int >::iterator i = link.find( make_pair( pointCode, channelCode ) );
                                if( i!=link.end() )
                                {
                                  (*RTDBWrite)( Date->DateInterval.first + time, (*i).second, value, status );
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      RTDBWrite->Flush();
    }

    Древний legacy-код на БорландЦэпэпэБыдлере, обнаруживаемый на текущей работе (почти госпредприятие), выглядит в основной своей массе примерно так. Новый код на C# чуть получше, но в целом тоже жуткое мракобесие.
    Сил больше нет работать с подобным, увольняюсь и ищу норм работу.

    invi, 15 Февраля 2012

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

    +148

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    vector<long long> fib;
    	for
    	(
    		long long a=1,b=1;
    		b=a+b,a=a+b,a>0&&b>0;
    		cout<<b<<" "<<a<<endl,
    		fib.push_back(b),
    		fib.push_back(a)
    	);

    Just outputting fibonacci numbers as pairs and storing them in a vector...

    wyand, 14 Февраля 2012

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

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $a="Я";$b="учу";$c="php"; 
    echo "$a $b $c"; 
    
    if ($avt == 'Да') { echo 'Да'; }
    if ($avt == 'Нет') { echo 'Нет'; }
    
    if($avt == TRUE) {
       echo "оляля"
    }
    else{
       echo "не оляля"
    }

    http://skripters.biz/forum/topic_42181
    //Вот они откуда беруться

    Unknown, 13 Февраля 2012

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

    +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
    <?php
    //Класс для получения и сохранения данных пользователя.
    class User{    
    	const TABLE = 'users';	
    	//Создаём к каждому полю в таблице users переменную (всего столбцов в базе >45)
    	var $id = 0;
    	var $user_type = 'private';
    	var $name = '';
    	var $surname = '';
    	var $pk = '';
    	//.... Тут ещё около 40 переменных	
    	var $contactMail = '';
    	var $contactPhone = '';
    		
        //....Конструктор, получение данных, сохранение данных
        
    	//Функции для получения данных пользователя
        function getId() {return $this->id;}
        function getUser_type() {return $this->user_type;}
        function getName() {return $this->name;}
        function getSurname() {return $this->surname;}
        //.... Тут ещё около 40 аналогичных функций
        function getContactMail() {return $this->contactMail;}
        function getContactPhone() {return $this->contactPhone;}
        
        //Функции для изменения данных пользователя (в конце нужно вызвать функцию для сохранения)
        function setId($data) {$this->id = $data;}
        function setUser_type($data) {$this->user_type = $data;}
        function setName($data) {$this->name = $data;}
        //.... Тут ещё около 40 аналогичных функций
        function setContactPhone($data) {$this->contactPhone = $data;}
        function setContact_type($data) {$this->contact_type = $data;}
       
    	//функция для сохранения данных
        function save(){    	        
        	$fields = Array();
        	$fields['user_type'] = $this->user_type;
    	    $fields['name'] = $this->name;
    	    //.... Тут ещё около 40 переменных	
    	    $fields['contactPhone'] = $this->contactPhone;
    	    $fields['contact_type'] = $this->contact_type;
    	       	
        	$this->id = Db::make(self::TABLE, $this->id, $fields);
        	return 1;
        }
    }

    Класс для получения и сохранения данных пользователя.

    Присутсвуют и аналогичные классы для других таблиц в которых количество переменных не меньше.

    Edd, 10 Февраля 2012

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

    +155

    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
    /**
    	 * return the current rule value
    	 * @param String $rule
    	 * @return Mixed
    	 */
    	public static function findRule($rule)
    	{
    		$criteria=new CDbCriteria;
    		$criteria->compare('rule',$rule);
    		$model = self::model();
    		$model->scenario = 'find_rule';
    		$result = $model->find($criteria);
    		if ($result !== NULL) {
    			if ($result->value === 'TRUE')
    				$result->value = true;
    			if ($result->value === 'FALSE')
    				$result->value = false;
    			return $result->value;
    		}else
    			return false;
    	}

    Найдено в расширении для Yii Framework
    Расширение userGroups
    Расширение полезное, но пришлось переписать под себя кучу

    delancer, 04 Февраля 2012

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

    +106

    1. 1
    for(int iyhx=0; iyhx<nLen; iyhx++)

    "А идите вы на iyhx."

    someone, 03 Февраля 2012

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

    +165

    1. 1
    $daysName = array( 1=>'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 0=>'вс', );

    phpдатаизмы

    istem, 01 Февраля 2012

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

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    synchronized public void refreshConversionTable() {
            btnClick = true;
            if (dataModel != null)
                dataModel.reset();
            dataModel = null;
        }

    если модель данных существует, сначала сбросить все данные, а потом занулим....

    mrFoxs, 31 Января 2012

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

    +77

    1. 1
    if (!employees.equals("") && employees != null) {

    gorsash, 23 Января 2012

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