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

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

    −859.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    CREATE TABLE GOVNOTABLE(
      GOVNOTABLEID VARCHAR2(60) NOT NULL DEFAULT ''
      /*
       Еще всякого говна
      */
    )

    Это Oracle 7.
    Так построены все таблицы складской системы, разработанной каким-то нашим НИИ.

    Меня поражает, что в одной строчке можно сделать столько говна:

    1. Все ID в системе имеют вид XYZ000NNN, где XYZ - префикс подразделения, 0000NNNN - численный идентификатор, переведенный в строку и добитый нулями. (Сто раз такое говно видел, до сих пор поражаюсь)

    2. VARCHAR2(60) - идентификатор никогда не может быть больше 12 символов, на хрена 60?

    3. NOT NULL DEFAULT '' - вот это мое любимое! Присмотритесь.
    Если кто не догадался: это Oracle, Oracle отличается тем, что '' = NULL.
    Т.е. этот цинизм расшифровывается как NOT NULL DEFAULT NULL!!!

    Еще в догонку:
    Индексация базы ОООЧЕНЬ порадовала.
    Индексы это хорошо, они все ускоряют, поэтому проиндексировано КАЖДОЕ ПОЛЕ В БАЗЕ!

    guest, 02 Марта 2009

    Комментарии (13)
  3. VisualBasic / Говнокод #219

    −519.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
    '/**
    ' * Parser
    ' * @param String text
    ' * @param Scripting.Dictionary text
    ' */
    private function Parse(text, data)
        dim RE, EM, MO, res, lastIndex, val
        res = ""
        Set RE = New RegExp
        RE.Pattern = "(\\?)\$(?:(\w+)|\{(\w+)\})"
        RE.IgnoreCase = False
        RE.Global = True
        Set EM = RE.Execute(text)
        if EM.Count > 0 then
            lastIndex = 1
            for each MO in EM
                if Mid(MO.Value,1,2) = "\$" then
                    val = Mid(MO.Value,2)
                else
                    if Mid(MO.Value,1,2) = "${" then 
                        val = Mid(Mid(MO.Value,1,Len(MO.Value)-1),3) 
                    else 
                        val = Mid(MO.Value,2)
                    end if
                    val = data(val)
                end if
                res = res & Mid(text, lastIndex, MO.FirstIndex-lastIndex+1) & val
                lastIndex = MO.FirstIndex+MO.Length+1
            next
            res = res & Mid(text, lastIndex)
            Parse = res
        else
            Parse = text
        end if
    end function

    Пример, как функция, которая в других языках описывается одной строкой, реализуется на этом говноязыке

    guest, 18 Декабря 2008

    Комментарии (13)
  4. PHP / Говнокод #104

    −57.3

    1. 1
    2. 2
    3. 3
    $result = doquery("SELECT * FROM {{table}} WHERE username='".$username."';",users,true);
    $username = $result['username'];
    unset($result);

    В одной браузерной стратегии...

    guest, 11 Декабря 2008

    Комментарии (13)
  5. Java / Говнокод #94

    +18.5

    1. 1
    2. 2
    3. 3
    if (true) {
      // Something
    }

    Уже два года, как девушка закончила универ...

    guest, 10 Декабря 2008

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

    +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
    static HRESULT SResToHRESULT(SRes res)
    {
      switch(res)
      {
        case SZ_OK: return S_OK;
        case SZ_ERROR_MEM: return E_OUTOFMEMORY;
        case SZ_ERROR_PARAM: return E_INVALIDARG;
        case SZ_ERROR_UNSUPPORTED: return E_NOTIMPL;
        // case SZ_ERROR_PROGRESS: return E_ABORT;
        case SZ_ERROR_DATA: return S_FALSE;
      }
      return E_FAIL;
    }

    (c) 7z

    guest, 01 Декабря 2008

    Комментарии (13)
  7. Си / Говнокод #29064

    0

    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
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    /* Windows doesn't support the fork() call; so we fake it by invoking
       another copy of Wget with the same arguments with which we were
       invoked.  The child copy of Wget should perform the same initialization
       sequence as the parent; so we should have two processes that are
       essentially identical.  We create a specially named section object that
       allows the child to distinguish itself from the parent and is used to
       exchange information between the two processes.  We use an event object
       for synchronization.  */
    static void
    fake_fork (void)
    {
      char exe[MAX_PATH + 1];
      DWORD exe_len, le;
      SECURITY_ATTRIBUTES sa;
      HANDLE section, event, h[2];
      STARTUPINFO si;
      PROCESS_INFORMATION pi;
      struct fake_fork_info *info;
      char *name;
      BOOL rv;
    
      section = pi.hProcess = pi.hThread = NULL;
    
      /* Get the fully qualified name of our executable.  This is more reliable
         than using argv[0].  */
      exe_len = GetModuleFileName (GetModuleHandle (NULL), exe, sizeof (exe));
      if (!exe_len || (exe_len >= sizeof (exe)))
        return;
    
      sa.nLength = sizeof (sa);
      sa.lpSecurityDescriptor = NULL;
      sa.bInheritHandle = TRUE;
    
      /* Create an anonymous inheritable event object that starts out
         non-signaled.  */
      event = CreateEvent (&sa, FALSE, FALSE, NULL);
      if (!event)
        return;
    
      /* Create the child process detached form the current console and in a
         suspended state.  */
      xzero (si);
      si.cb = sizeof (si);
      rv = CreateProcess (exe, GetCommandLine (), NULL, NULL, TRUE,
                          CREATE_SUSPENDED | DETACHED_PROCESS,
                          NULL, NULL, &si, &pi);
      if (!rv)
        goto cleanup;
    
      /* Create a named section object with a name based on the process id of
         the child.  */
      name = make_section_name (pi.dwProcessId);
      section =
          CreateFileMapping (INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0,
                             sizeof (struct fake_fork_info), name);
      le = GetLastError();
      xfree (name);
      /* Fail if the section object already exists (should not happen).  */
      if (!section || (le == ERROR_ALREADY_EXISTS))
        {
          rv = FALSE;
          goto cleanup;
        }
    
      /* Copy the event handle into the section object.  */
      info = MapViewOfFile (section, FILE_MAP_WRITE, 0, 0, 0);
      if (!info)
        {
          rv = FALSE;
          goto cleanup;
        }
    
      info->event = event;
    
      UnmapViewOfFile (info);
    
      /* Start the child process.  */
      rv = ResumeThread (pi.hThread);
      if (!rv)
        {
          TerminateProcess (pi.hProcess, (DWORD) -1);
          goto cleanup;
        }
    
      /* Wait for the child to signal to us that it has done its part.  If it
         terminates before signaling us it's an error.  */
    
      h[0] = event;
      h[1] = pi.hProcess;
      rv = WAIT_OBJECT_0 == WaitForMultipleObjects (2, h, FALSE, 5 * 60 * 1000);
      if (!rv)
        goto cleanup;
    
      info = MapViewOfFile (section, FILE_MAP_READ, 0, 0, 0);
      if (!info)
        {
          rv = FALSE;
          goto cleanup;
        }

    Из исходников wget.

    https://git.savannah.gnu.org/cgit/wget.git/tree/src/mswindows.c

    rOBHOBO3Hblu_nemyx, 06 Декабря 2024

    Комментарии (12)
  8. PHP / Говнокод #28801

    0

    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
    <?php
    
    function filter($var, $type)
    {
         switch ($type[0])
         {
             case 1: $var = 'intval('.$var.')';
             break;
             case 2: $var = 'trim('.$var.')';
             break;
         }
         switch ($type[1])
         {
             case 1: $var = 'intval('.$var.')';
             break;
             case 2: $var = 'trim('.$var.')';
             break;
         }
         return $var;
    }
    $var3 = 233;
    echo filter($var3, [1,2]);
    ?>

    Шедевр:
    https://php.ru/forum/threads/nuzhna-pomosch-po-kodu.101533

    MouseZver, 22 Июня 2023

    Комментарии (12)
  9. Lua / Говнокод #28744

    0

    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
    local function isEven(number)
        local code = "return "
        for i = 1, number do
            code = code .. "false"
            if i ~= number then
                code = code .. " =="
            end
        end
    
        return load(code)()
    end
    
    print("Enter number: ")
    if isEven(tonumber(io.read())) then
        print("Number is even")
    else
        print("Number is odd")
    end

    Определяет чётность числа. Работает для чисел >= 1 (Желательно <= 1000, чем лучше компьютер, тем больше)

    pidoras123, 16 Апреля 2023

    Комментарии (12)
  10. Python / Говнокод #28618

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    def auth_2FA(request):
        mail = request.POST.get('mail')
        user = User.objects.get(email=mail)
        code2FA = request.POST.get('code2FA')
        if pyotp.TOTP(user.secret).verify(code2FA):
            auth.login(request, user)
            return redirect(settings.HOME_PAGE)
        else:
            ...

    # Безопасность
    Django, двухфакторка.
    Защиты от перебора нет, пароль не проверяется. Зная только mail можно залогиниться перебрав код из 6 цифр

    Doorman5302, 01 Марта 2023

    Комментарии (12)
  11. Python / Говнокод #28367

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    >>> import math
    >>> n = math.factorial(1559)
    >>> n
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: Exceeds the limit (4300) for integer string conversion

    https://github.com/sympy/sympy/issues/24033

    Какой багфикс )))

    3_dar, 12 Сентября 2022

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