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

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

    +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
    int makedata(int id,int part,void *d,int datalen,void *buf)
    {
        //packet struct :
        // code = short int, lenght = shotr int, id = int, numofpart = int, data = 1024
    
        int packlen = sizeof(short int)*2 + sizeof(int)*2 + datalen;
        char *tbuf = new char [packlen];
        char* tbufptr = tbuf;
        *((short int *)tbufptr) = data;  //first field
        (short int *)tbufptr++;
        *((short int *)tbufptr) = packlen;  //second field
        (short int *)tbufptr++;
        *((int *)tbufptr) = id;
        (int *)tbufptr++;
        *((int *)tbufptr) = part;
        (int *)tbufptr++;
        *((short int *)tbufptr) = datalen;
        (short int *)tbufptr++;
        memcpy((void*)tbufptr,d,datalen);
    
        buf=tbuf;
        return packlen;
    }
    
    fileinfo* getask(void *b)
    {
        fileinfo *fi = new fileinfo();
        char *bufptr = (char*)b;
        (short int*)bufptr++;
        short int plen = *((short int*)bufptr);
        (short int*)bufptr++;
        fi->numofpart = *((int*)bufptr);
        (int*)bufptr++;
        fi->filelenght = *((int*)bufptr);
        (int*)bufptr++;
        int filelen = plen-(bufptr-(char*)b);
        fi->filename = new char[filelen];
        strncpy(fi->filename,bufptr,filelen);
    
        return fi;
    }

    Вместо того, что бы воспользоваться структурой, забиваем всё ручками.

    KoirN, 14 Ноября 2010

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

    +161

    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
    <?php
    //Список категорий
    function get_cat_list () {
    $sql_cat_list = mysql_query("SELECT * FROM te_categories ORDER BY category_id");
    for ($cat_list=array(); $row=mysql_fetch_assoc($sql_cat_list); $cat_list[]=$row);
    $cat_list = array_reverse ($cat_list); //переворачиваем массив
    return $cat_list;
    }
     
    //Категории в норм виде (возвращает массив или печатает)
    function get_categories ($cat_list, $print="noprint") {
    foreach ($cat_list as $cat)
    	{
    	$categories [$cat['category_id']]['name'] = $cat['name'];
    	$categories [$cat['category_id']]['cat_count'] = $cat['cat_count'];
    	if ($print !== "noprint") echo '<li class="list"><a href="?page=article&category_id='.$cat['category_id'].'">'.$cat['name'].'</a> <small>('.$cat['cat_count'].')</small></li>';
    	}
    	if ($print == "noprint") return $categories;
    }
    /*
    Коментарий ниже:
    Зачем вначале мы получили список категорий $cat_list, 
    а затем зачем-то преобразовали в $categories в цикле foreach? 
    Просто для удобства и красоты мы из списка массивов 
    (записей или строк), полученных из БД, 
    сделали двумерный массив 
    с первичным ключом category_id 
    (ведь он у нас уникален). 
    Для наглядности распечатайте оба этих массива, 
    и сразу увидите разницу:
    */
    ?>

    Свеженькое Г
    Версия 0.02 CMS Tractor Engine
    (Кажись 2010 год)
    Будущее интернетов...

    istem, 13 Ноября 2010

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

    +103

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if Column.Field.AsInteger > 10 then
    DrawGridCheckBox(DBGrid1.Canvas, Rect, true)
    else
    DrawGridCheckBox(DBGrid1.Canvas, Rect, false)
    end;

    Классика жанра

    gorsash, 10 Ноября 2010

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

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    switch ($_GET['otdel']) {
    	case null:
    		echo "Название отдела №1";
    		$_GET['otdel'] = 1;
    	break;
    	case 1:
    		echo "Название отдела №1";
    	break;
    
    	case 11:
    // и так далее

    Отдел по умолчанию.
    Вариантов написать толково - тьма. Попробуем?

    AndryG, 07 Ноября 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <tr>
    <td><td><td><td><td><td><td><td>
    &nbsp;
    </td></td></td></td></td></td></td></td>
    </tr>

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

    dexif, 07 Ноября 2010

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

    +165

    1. 1
    alert(( (/([^(A-z)&&(А-я)])/ || prompt.length<1 ).test(prompt('Введите Ваше имя',''))) ? 'Ошибка' : 'Принято')

    Не совсем говнокод, просто весёлый бред. Найдено здесь http://tinyurl.com/22w4b8q

    eval, 05 Ноября 2010

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

    +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
    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
    void TPEForm::LoadFromFile(AnsiString _FileName)
    {
        FileName = _FileName;
        Caption = FileName + " - " + DOS_HEADER_STRING;
        iPEFileHandle = FileOpen(FileName,fmOpenRead);
        FileRead(iPEFileHandle,&dos_header,sizeof(IMAGE_DOS_HEADER));
        TreeView->Items->AddChild(NULL,DOS_HEADER_STRING);
        dos_header_frame = new TDOSHeader(this);
        dos_header_frame->Parent = Panel;
        dos_header_frame->e_magic->Text = "0x"+IntToHex(dos_header.e_magic,4);
        dos_header_frame->e_cblp->Text = "0x"+IntToHex(dos_header.e_cblp,4);
        dos_header_frame->e_cp->Text = "0x"+IntToHex(dos_header.e_cp,4);
        dos_header_frame->e_crlc->Text = "0x"+IntToHex(dos_header.e_crlc,4);
        dos_header_frame->e_cparhdr->Text = "0x"+IntToHex(dos_header.e_cparhdr,4);
    ...
        dos_header_frame->e_ovno->Text = "0x"+IntToHex(dos_header.e_ovno,4);
        dos_header_frame->e_oemid->Text = "0x"+IntToHex(dos_header.e_oemid,4);
        dos_header_frame->e_oeminfo->Text = "0x"+IntToHex(dos_header.e_oeminfo,4);
        dos_header_frame->e_lfanew->Text = "0x"+IntToHex((int)dos_header.e_lfanew,4);
    
    ...
    
        TreeView->Items->AddChild(nt_header_node,FILE_HEADER_STRING);
        file_header_frame = new TFileHeader(this);
        file_header_frame->Parent = Panel;
        file_header_frame->Machine->Text = "0x"+IntToHex((int)nt_header.FileHeader.Machine,4);
        file_header_frame->NumberOfSections->Text = "0x"+IntToHex((int)nt_header.FileHeader.NumberOfSections,4);
        file_header_frame->TimeDateStamp->Text = "0x"+IntToHex((int)nt_header.FileHeader.TimeDateStamp,8);
        file_header_frame->PointerToSymbolTable->Text = "0x"+IntToHex((int)nt_header.FileHeader.PointerToSymbolTable,8);
        file_header_frame->NumberOfSymbols->Text = "0x"+IntToHex((int)nt_header.FileHeader.NumberOfSymbols,8);
        file_header_frame->SizeOfOptionalHeader->Text = "0x"+IntToHex((int)nt_header.FileHeader.SizeOfOptionalHeader,4);
        file_header_frame->Characteristics->Text = "0x"+IntToHex((int)nt_header.FileHeader.Characteristics,4);
    
        TTreeNode *optional_header_node = TreeView->Items->AddChild(nt_header_node,OPTIONAL_HEADER_STRING);
        optional_header_frame = new TOptionalHeader(this);
        optional_header_frame->Parent = Panel;
    
        TreeView->Items->AddChild(optional_header_node,STANDARD_FIELDS_STRING);
        standard_fields_frame = new TStandardFieldsFrame(this);
        standard_fields_frame->Parent = Panel;
        TTreeNode *additional_fields_node = TreeView->Items->AddChild(optional_header_node,ADDITIONAL_FIELDS_STRING);
        additional_fields_frame = new TAdditionalFieldsFrame(this);
        additional_fields_frame->Parent = Panel;
    
        standard_fields_frame->Magic->Text = "0x"+IntToHex((int)nt_header.OptionalHeader.Magic,4);
        standard_fields_frame->MajorLinkerVersion->Text = "0x"+IntToHex((int)nt_header.OptionalHeader.MajorLinkerVersion,2);
    ...
        additional_fields_frame->ImageBase->Text = "0x"+IntToHex((int)nt_header.OptionalHeader.ImageBase,8);
        additional_fields_frame->SectionAlignment->Text = "0x"+IntToHex((int)nt_header.OptionalHeader.SectionAlignment,8);
        additional_fields_frame->FileAlignment->Text = "0x"+IntToHex((int)nt_header.OptionalHeader.FileAlignment,8);
    
    ...

    писал на третьем курсе загрузку заголовка PE-файлов в GUI

    stas, 05 Ноября 2010

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

    +144

    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
    Хочу провести маленький опрос.
    
    Внимание вопрос:
    Считать ли код говнокодом, если:
    
    а) он выполняет свою работу хорошо.
    б) его легко поддерживать.
    в) не используются хаки (т.е. код переносим, не зависит от браузера и т.д.)
    
    ?
    
    ЧЁТКО выполняются эти 3 условия, и не важно, что в коде, например, используется даже оператор goto.
    
    Моё мнение - нет, если эти 3 условия выполняются.

    Oleg_quadro, 01 Ноября 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private static final Color COLOR_GREEN = Color.GREEN;
      private static final Color COLOR_GREEN_DARK = JBoard.COLOR_GREEN;
      private static final Color COLOR_RED = Color.RED;
      private static final Color COLOR_RED_DARK = JBoard.COLOR_RED;
      private static final Color COLR_GRAY = Color.GRAY;

    упс, это я случайно )))) если вы это видите, то я это уже рефакторю ))))

    Lure Of Chaos, 29 Октября 2010

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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $vars = array();
    if(isAccess($down['view'])) {
    	$url = '<a href="index.php?mod=load&amp;op=down&amp;id='.$id.'" target="_blank">Скачать</a>';
    } else {
    	$url = 'Файл недоступен гостям';
    }
    $vars['url'] = $url;

    Мартин, 29 Октября 2010

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