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

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

    −137

    1. 1
    2. 2
    3. 3
    4. 4
    Если НЕ ЗаполненНаОснованииДокумента Тогда
        ИнициализироватьУсловияПродаж();
    КонецЕсли;
    ИнициализироватьУсловияПродаж();

    Чтоб наверняка.
    Типовая УТ 11.1.10.94, документ РеализацияТоваровУслуг, модуль объекта, стр.819-822

    dawgcha, 13 Апреля 2015

    Комментарии (89)
  3. Python / Говнокод #14453

    −104

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $ python
    Python 3.3.3 (default, Nov 26 2013, 13:33:18) 
    [GCC 4.8.2] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 81.5 / (17 * 13) * 50
    18.438914027149323
    >>> exit()

    Кто-нибудь ещё так делает?))

    evg_ever, 31 Января 2014

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

    +16

    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
    // Lock the write mutex, to provide consistency of data                                                                                            
    #define LOCK                                                                   \                                                                   
        if (_ugb) {                                                                \                                                                   
            if (pthread_mutex_lock(&_write_mutex) == EINVAL)                       \                                                                   
                ASSERT(0);                                                         \                                                                   
        }                                                                                                                                              
    // Unlock write mutex when data sent                                                                                                               
    #define UNLOCK                                                                 \                                                                   
        if (_ugb) {                                                                \                                                                   
            if (pthread_mutex_unlock(&_write_mutex) == EINVAL)                     \                                                                   
                ASSERT(0);                                                         \                                                                   
        } 
    
    // Пример использования
    
    void socket::add_var(uint16_t code, const void *buffer, uint32_t length)                                                                          
    {                                                                                                                                                  
        LOCK
        try                                                                                                                                       
        {                                                                                                                                              
            DEBUG_I(Vblock, "Sending code 0x%X of size 0x%X\n", code, length);                                                                         
            send(&code, sizeof(code));                                                                                                                 
            send(&length, sizeof(length));                                                                                                             
            send(buffer, length);                                                                                                                      
        }                                                                                                                                              
        catch (const error & ve)                                                                                                                       
        {                                                                                                                                              
            UNLOCK                                                                                                                                     
            DEBUG_E(Vblock, "Caught an exception!\n");                                                                                                 
            throw;                                                                                                                                     
        }                                                                                                                                              
        catch (...)                                                                                                                                    
        {                                                                                                                                              
            UNLOCK                                                                                                                                     
        }                                                                                                                                              
        UNLOCK                                                                                                                                         
    }

    OK_BOOST_LOCK_A_MUTEX

    roman-kashitsyn, 21 Июня 2013

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

    +8

    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
    //список строк
    QStringList rows_list = text.split("\n");
    
    uint32_t row=0;
    uint32_t col=0;
    for(QStringList::iterator itR=rows_list.begin(); itR!=rows_list.end(); itR++,row++)
    {
       QStringList columns_list=itR->split(";");
    
       col=0;
       for(QStringList::iterator itC=columns_list.begin(); itC!=columns_list.end(); itC++,col++)
       {
          //*itC,row,col
       }
    }

    Человек осилил итераторы в с++...
    (для тех, кто не в теме - QStringList имеет доступ по индексу за константное время)
    А еще мне нравятся uint32_t вместо int или, на худой конец, quint32.

    ABBAPOH, 22 Февраля 2013

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

    +1001

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    bool IsDigit(char cKey, const char *cKeys) {
    	for (int i = 0; i < strlen(cKeys); i++)
    		if (cKeys[i] == cKey)
    			return true;
    	return false;
    }

    FalseCoder, 18 Января 2012

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

    +111

    Monkeys scripting

    просто гет

    bugmenot, 18 Мая 2011

    Комментарии (89)
  8. Assembler / Говнокод #6475

    +212

    1. 1
    2. 2
    3. 3
    sub eax, edx
    test eax, eax
    jl +$04

    dcc32
    Нафига вторая строчка?

    TarasB, 26 Апреля 2011

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

    −133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Отбор = РегистрыСведений.БазыКонтрагентов.СрезПоследних(Дата,новый Структура("Производитель",Контрагент));
    Если Отбор.Количество()>0 Тогда
    	Для каждого ТекТМ из Отбор Цикл
    		Элемент.списокВыбора.Очистить();		
    		Для каждого ТекТМ из Отбор Цикл
    			Элемент.списокВыбора.ДОбавить(ТекТМ.ТорговаяМарка,ТекТМ.ТорговаяМарка);
    		КонецЦикла;	
    	КонецЦикла;			
    КонецЕсли;

    Сложно сказать что хотел сделать этим автор :)
    Может добавить последнюю строку из отбора? :D

    PayneBLADE, 02 Июля 2010

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

    +163.9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if ( $condition ) a = 6;
    a = 10;
    
    
    

    Подозвал меня прогер и спросил: "а почему у меня a всегда равно 10, даже если условие выполняется? ((("

    guest, 27 Ноября 2008

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

    +3

    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
    #!/usr/bin/env escript
    -mode(compile).
    
    main(["-p"|Filenames]) ->
      put(pretend, true),
      main(Filenames);
    main(Filenames) ->
      case get(pretend) of
        true -> ok;
        _    -> put(pretend, false)
      end,
      Albums = lists:filtermap(fun parse_name/1, Filenames),
      lists:foreach(fun process_album/1, Albums).
    
    process_album({Zip, Artist, Album}) ->
      Dir = filename:absname(filename:join(Artist, Album)),
      case filelib:wildcard(Dir ++ "/cover.*") of
        [] ->
          io:format("Will create ~p~n", [Dir]),
          get(pretend) orelse do_process_album(Dir, Zip, Album);
        _ ->
          io:format("Ignoring ~p : ~p~n", [Artist, Album])
      end.
    
    do_process_album(Dir, Zip, Album) ->
      ok = filelib:ensure_dir(Dir ++ "/fake"),
      0 = exec(Dir, "/usr/bin/unzip", [Zip, "-d", Dir]),
      postprocess(Album, Dir).
    
    postprocess(Album, Dir) ->
      Files = filelib:wildcard(Dir ++ "/*-*[0-9]*.flac"),
      lists:foreach(fun(I) -> rename_flac(Album, I) end, Files).
    
    rename_flac(Album, OldFile) ->
      Dir = filename:dirname(OldFile),
      OldName = filename:basename(OldFile),
      Options = [{capture, all_but_first, list}],
      {ok, RE} = re:compile(Album ++ " - ([0-9]+.*\\.flac)", [unicode]),
      case re:run(OldName, RE, Options) of
        {match, [NewName]} ->
          io:format("New name: ~p~n", [NewName]),
          NewFile = filename:join(Dir, NewName),
          ok = file:rename(OldFile, NewFile);
        nomatch ->
          ok
      end.
    
    parse_name(Filename) ->
      Opts = [{capture, ['band', album], list}],
      case re:run(filename:basename(Filename), "(?<band>[^-]+) - (?<album>.*)\\.zip", Opts) of
        {match, [Band, Album]} ->
          {true, {filename:absname(Filename), Band, Album}};
        nomatch ->
          false
      end.
    
    -spec exec(file:filename(), file:filename(), [string() | binary()]) -> integer().
    exec(Dir, CMD, Args) ->
      Port = open_port( {spawn_executable, CMD}
                      , [ exit_status
                        , binary
                        , stderr_to_stdout
                        , {args, Args}
                        , {cd, Dir}
                        , {line, 300}
                        ]
                      ),
      collect_port_output(Port, filename:basename(CMD)).
    
    -spec collect_port_output(port(), string()) -> integer().
    collect_port_output(Port, CMD) ->
      receive
        {Port, {data, {_, Data}}} ->
          io:format("~s: ~s~n", [CMD, Data]),
          collect_port_output(Port, CMD);
        {Port, {exit_status, ExitStatus}} ->
          ExitStatus
      end.

    CHayT, 08 Января 2022

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