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

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

    +111

    1. 1
    2. 2
    3. 3
    4. 4
    try {} finally {
             retVal = NativeMethods.CreateProcess ( /* ... */ );
            /* ... и дальше остальной код... */
    }

    Откопано в исходниках .NET 2.0 Framework, так реализуется Process.Start. Не очень понял замысла. Нашёл, что finally обязательно продолжит исполняться, если во время его исполнения на поток ВНЕЗАПНО вызван метод Abort. Т.е. если потоку, создающему процесс, сделать аборт, процесс всё равно упорно создаcтся и запустится (чистки памяти я не нашёл). В чём смысл? Так можно было бы тогда всякий код оборачивать в finally... Ящитаю, что это всё костыли вокруг говноархитектуры. Не зря в Яве Thread.stop сделали deprecated. А вы как считаете?

    cfdev, 27 Апреля 2010

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

    +67.7

    1. 1
    for(__=_;__<___;__++) C++;

    Недавно увидел такие имена переменных, очарован, теперь срочно переделываю весь проект!

    PS. Тело цикла сами знаете для кого.

    nil, 27 Января 2010

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

    +58.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    template <int n>
    struct fibonacci
    {
    	static int result()
    	{
    		return fibonacci<n-2>::result() + fibonacci<n-1>::result();
    	}
    };
    
    ........... и где-нибудь в коде:
    
    fibonacci<7>::result();

    Работает в msvc 2008 sp1 и более ранних. g++ и некоторые другие отваливаются с ругательствами на урезмерную рекурсию. Особо злостным маньякам можно рекомендовать понаслаждаться просмотром поля "memory usage" процесса cl.exe :)

    Также можно (но не нужно) устроить ddos подвесив халявный компилятор здесь:

    http://www.dinkumware.com/exam/default.aspx

    Гвозди Заржавелли, 26 Января 2010

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

    +157

    1. 1
    <?php echo ((strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) ? "top: 35px;" : ""); ?>

    Постоянно натыкаюсь, разбирая старые проекты. Народ просто не знал, про CC в осле.

    cheerfulboy, 11 Августа 2009

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

    +24

    1. 1
    2. 2
    3. 3
    4. 4
    function ToUpper($str)
    {
    	return strtoupper(strtr($str, "йцукенгшщзхъэждлорпавыфячсмитьбю", "ЙЦУКЕНГШЩЗХЪЭЖДЛОРПАВЫФЯЧСМИТЬБЮ"));
    }

    битрикс

    guest, 23 Ноября 2008

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    // В преддверии нового года на сайте PVS-Studio увеличилось количества C++ говнокода.
    // Во-первых, вышла подбора багов за год, а во-вторых, квиз на поиск багов.
    // Первый пример кода из квиза для разминки:
    
    void  UObject::setDeltaPitch(const UMatrix &gizmo) {
      ....
      if (_fpzero(amount, eps))
        return
      rotateAccum.setAnglesXYZ(axis);
      ....
    }

    Если заинтересовались, то приятного чтения и удачи в поисках говнокодистых багов. Вас ждёт говнокод первого сорта.
    Топ 10 ошибок в C и С++ проектах в 2023 году - https://pvs-studio.ru/ru/blog/posts/cpp/1092/
    С++ квиз от PVS-Studio и Сергея Кушниренко - https://pvs-studio.ru/ru/blog/quest/kushnirenko_quiz/
    А если что-то останется непонятным в квизе, то есть его разбор - https://pvs-studio.ru/ru/blog/posts/cpp/1091/
    С наступающим НГ!

    Andrey_Karpov, 22 Декабря 2023

    Комментарии (37)
  8. bash / Говнокод #28587

    0

    1. 1
    curl -fsSL https://deno.land/x/install/install.sh | sh

    Хи-хи-хи

    JloJle4Ka, 05 Февраля 2023

    Комментарии (37)
  9. Go / Говнокод #27849

    +2

    1. 1
    2. 2
    3. 3
    // Create a Version 4 UUID, panicking on error.
    // Use this form to initialize package-level variables.
    var u1 = uuid.Must(uuid.NewV4())

    https://github.com/gofrs/uuid

    Питули запилили функцию, которая никогда error не возвращает, и запилили обёртку вокруг неё для "игнорирования" этой "ошибки".
    Пиздец

    3_dar, 02 Декабря 2021

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

    +1

    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
    79. 79
    80. 80
    81. 81
    waiting_for_data(info, {Driver,Socket,Data},
                     #state{socket=Socket, driver=Driver, driver_mod=DriverMod, peer=Peer, control=Control, list=List} = State) ->
        %% The meat of the whole project: process a function call and return
        %% the data
        try erlang:binary_to_term(Data) of
            {{CallType,M,F,A}, Caller} when CallType =:= call; CallType =:= async_call ->
                {ModVsnAllowed, RealM} = check_module_version_compat(M),
                case check_if_module_allowed(RealM, Control, List) of
                    true ->
                        case ModVsnAllowed of
                            true ->
                                WorkerPid = erlang:spawn(?MODULE, call_worker, [CallType, RealM, F, A, Caller, Socket, Driver, DriverMod]),
                                ?log(debug, "event=call_received driver=~s socket=\"~s\" peer=\"~s\" caller=\"~p\" worker_pid=\"~p\"",
                                     [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer), Caller, WorkerPid]),
                                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
                            false ->
                                ?log(debug, "event=incompatible_module_version driver=~s socket=\"~s\" method=~s module=~s",
                                     [Driver, gen_rpc_helper:socket_to_string(Socket), CallType, RealM]),
                                waiting_for_data(info, {CallType, Caller, {badrpc,incompatible}}, State)
                        end;
                    false ->
                        ?log(debug, "event=request_not_allowed driver=~s socket=\"~s\" control=~s method=~s module=~s",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), Control, CallType, RealM]),
                        waiting_for_data(info, {CallType, Caller, {badrpc,unauthorized}}, State)
                end;
            {cast, _M, _F, _A} = Cast ->
                handle_cast(Cast, State),
                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
            BatchCast when is_list(BatchCast) ->
                [handle_cast(Cast, State) || Cast <- BatchCast],
                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
            {abcast, Name, Msg} ->
                _Result = case check_if_module_allowed(erlang, Control, List) of
                    true ->
                        ?log(debug, "event=abcast_received driver=~s socket=\"~s\" peer=\"~s\" process=~s message=\"~p\"",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer), Name, Msg]),
                        Msg = erlang:send(Name, Msg);
                    false ->
                        ?log(debug, "event=request_not_allowed driver=~s socket=\"~s\" control=~s method=~s",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), Control, abcast])
                    end,
                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
            {sbcast, Name, Msg, Caller} ->
                Reply = case check_if_module_allowed(erlang, Control, List) of
                    true ->
                        ?log(debug, "event=sbcast_received driver=~s socket=\"~s\" peer=\"~s\" process=~s message=\"~p\"",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer), Name, Msg]),
                        case erlang:whereis(Name) of
                            undefined -> error;
                            Pid -> Msg = erlang:send(Pid, Msg), success
                        end;
                    false ->
                        ?log(debug, "event=request_not_allowed driver=~s socket=\"~s\" control=~s method=~s",
                             [Driver, gen_rpc_helper:socket_to_string(Socket), Control, sbcast]),
                         error
                end,
                waiting_for_data(info, {sbcast, Caller, Reply}, State);
            ping ->
                ?log(debug, "event=ping_received driver=~s socket=\"~s\" peer=\"~s\" action=ignore",
                     [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer)]),
                {keep_state_and_data, gen_rpc_helper:get_inactivity_timeout(?MODULE)};
            OtherData ->
                ?log(debug, "event=erroneous_data_received driver=~s socket=\"~s\" peer=\"~s\" data=\"~p\"",
                     [Driver, gen_rpc_helper:socket_to_string(Socket), gen_rpc_helper:peer_to_string(Peer), OtherData]),
                {stop, {badrpc,erroneous_data}, State}
        catch
            error:badarg ->
                {stop, {badtcp,corrupt_data}, State}
        end;
    
    %% Handle the inactivity timeout gracefully
    waiting_for_data(timeout, _Undefined, #state{socket=Socket, driver=Driver} = State) ->
        ?log(info, "message=timeout event=server_inactivity_timeout driver=~s socket=\"~s\" action=stopping",
             [Driver, gen_rpc_helper:socket_to_string(Socket)]),
        {stop, normal, State};
    
    waiting_for_data(info, {DriverClosed, Socket} = Msg, #state{socket=Socket, driver_closed=DriverClosed} = State) ->
        handle_event(info, Msg, waiting_for_data, State);
    
    waiting_for_data(info, {DriverError, Socket, _Reason} = Msg, #state{socket=Socket, driver_error=DriverError} = State) ->
        handle_event(info, Msg, waiting_for_data, State).

    Срочно требуется учитель литературы, чтобы объяснить, что хотел сказать автор.

    CHayT, 22 Октября 2021

    Комментарии (37)
  11. Kotlin / Говнокод #27548

    −1

    1. 1
    val cityEq: (City) -> (Customer) -> Boolean = { city -> { it.city == city } }

    Какой Kotlin ^_^^_^^_^

    PolinaAksenova, 04 Августа 2021

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