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

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

    +135

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $something = $_POST['something'];
    
    $array = explode(",", $something);
    
    $i = 0;
    
    for( $i; $i < count( $array ); $i++ ) {
       $db->query("INSERT INTO db_table (`a`, `b`, `c`) VALUE ('value1', 'value2', '".$array[$i]."') ");
    }

    Весь код не стал выкладывать, тут только логика моего говнокода. Нашел в своем старом коде, тогда еще незнал про конструкцию вида INSERT INTO table () VALUE (), (), ()

    PragramistOtBoga, 09 Июля 2013

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

    +25

    1. 1
    2. 2
    while(_right=_right->_right)
    				delete _right;

    All right.

    LispGovno, 01 Июля 2013

    Комментарии (16)
  4. Pascal / Говнокод #13234

    +141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function TForm1.Pars(T_, ForS, _T: string): string;
    var a, b:integer;
    	begin
    	Result := '';
    	if (T_='') or (ForS='') or (_T='') then Exit;
    	a:=Pos(T_, ForS);
    	if a=0 then Exit else a:=a+Length(T_);
    	ForS:=Copy(ForS, a, Length(ForS)-a+1);
    	b:=Pos(_T, ForS);
    	if b>0 then
    	Result:=Copy(ForS, 1, b - 1);
    	end;

    Давно хотел выложить эту дуру на форум.
    В чем лажа? Я подозреваю, что перегруженный оператор '=' применительно к строкам (сравнение двух строк) это вызов lstrcmp.
    следовательно, POS ЧУВСТВИТЕЛЬНА к регистру!! Это значит, что функция вернет фалс, сравнивая ВоТ эТО и вот это.
    Но это полбеды. Иные горемыки передают ей километровый текст в качестве шаблона - это нормально.

    И потом еще кто то наивно удивляется, почему функция пропускает нужное или хватает лишнее.

    Stertor, 26 Июня 2013

    Комментарии (16)
  5. Objective C / Говнокод #13053

    −80

    1. 1
    2. 2
    self.data = [[NSMutableData alloc] initWithLength:0];
    [data release];

    Indian code.
    So deep.

    ivandjeferov, 26 Мая 2013

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

    +14

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    uint8_t* head = (uint8_t*) Buffer::Data(buffer);
    uint8_t* tail = head + Buffer::Length(buffer) - 1;
    
    // xor swap, just because I can
    while (head < tail) *head ^= *tail, *tail ^= *head, *head ^= *tail, ++head, --tail;

    https://github.com/bnoordhuis/node-buffertools/blob/master/buffertools.cc#L157

    movaxbx, 22 Мая 2013

    Комментарии (16)
  7. C++ / Говнокод #12970

    +13

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    bool[] Inmask;
    ....
            private void discreteOIForm_Load(object sender, EventArgs e)
            {
                if (icpI_measure.Connect() && icpO_measure.Connect())
                {
                    Inmask = new bool[1];
                    Inmask[Convert.ToInt32(0)] = true;
                }
            }

    Новоприбывший сотрудник откладывает вот такое. Это он сделал после совета использовать маски. Вы когда-нибудь видели массив из одного элемента? Я тоже нет.

    phys-tech, 07 Мая 2013

    Комментарии (16)
  8. Objective C / Говнокод #12964

    −100

    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
    {
    	//replace common symbols...
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"&" withString:@"and"]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"!" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"#" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"$" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"%" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"^" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"*" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"(" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@")" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"+" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"=" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"|" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"\\" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"?" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@">" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"<" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@";" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@":" withString:@""]];
    	[createWrapperName setStringValue:[[createWrapperName stringValue] stringByReplacingOccurrencesOfString:@"@" withString:@""]];
    	// ...
    }

    Так-то.

    Источник: https://sourceforge.net/p/wineskin/code/ci/master/tree/Wineskin%20Winery/Wineskin_WineryAppDelegate.m

    P. S. А тулза, между прочим, нужная. Наткнулся на багу, полез фиксить. Увидев AppDelegate.m на 2700+ строк, заинтересовался, и не зря: вышеприведенное — мелочи.

    UncleAli, 03 Мая 2013

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

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if (best == null)
                {
                    return null;
                }
                else
                {
                    return best;
                }

    Psilon, 19 Апреля 2013

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

    +158

    1. 1
    ($property['valid'] == 'ошибка') !== TRUE

    вот и бери стажеров на работу

    CRRaD, 15 Апреля 2013

    Комментарии (16)
  11. C++ / Говнокод #12811

    +11

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    typedef ::boost::array<T, item_amount+1> not_raw_array;
    union data
    {
    	 not_raw_array m_raw_array;//Most members of boost::array not suitable for call with raw array. Be careful!
    };

    LispGovno, 27 Марта 2013

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