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

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

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    $db=Yii::$app->db;
    
    if($db->driverName == 'pgsql') {
    $sql ="select a.* from report a inner join code_report b on a.id=b.report_id ";
    $sql.=" inner join code c on b.code_id=c.id  where cast (c.val as integer ) {$znaki[$sign]} $value group by a.id";//pgsql
    }
    if($db->driverName == 'mysql') {
    $sql ="select a.* from report a inner join code_report b on a.id=b.report_id ";
    $sql.=" inner join code c on b.code_id=c.id  where convert(c.val, signed) {$znaki[$sign]} $value group by a.id";//mysql
    }

    Кандидат прислал тестовое задание

    heleg, 08 Августа 2016

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

    +2

    1. 1
    2. 2
    ХабраКал
    //// https://habrahabr.ru/post/279029/

    Пыхомакака изобрела орм из 2007

    govnokoderphp, 10 Июня 2016

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

    +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
    void NewTorrent_PeersListViewCtrl::OnAttach()
    {	
    	WTL::CMenuHandle menu;
    	BOOL menu_created = menu.LoadMenu(HAL_GENERIC_ADD_LV_MENU);
    	InitialSetup(menu);	
    // ...
    	for (int i=0, e=3; i < e; ++i)
    	{
    		AddColumn(names[i].c_str(), i, visible[i], widths[i]);
    	}	
    // ...
    }

    Седьмая строка в этом огрызке вызывает сомнения.

    emanon, 10 Мая 2016

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

    +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
    #if defined(OSVR_WINDOWS)
        static const auto SEARCH_PATH_ENV = "PATH";
        static const auto SEARCH_PATH_SEP = ";";
    #else
        static const auto SEARCH_PATH_ENV = "LD_LIBRARY_PATH";
        static const auto SEARCH_PATH_SEP = ":";
    #endif
    
    
    void wrappedPutenv(std::string const &val) {
    #ifdef _MSC_VER
                _putenv_s(SEARCH_PATH_ENV, val.c_str());
    #else // not microsoft runtime specific
                auto newValue = SEARCH_PATH_ENV + "=" + val;
                // Have to allocate new string because it becomes part of the
                // environment.
                char *newString = static_cast<char *>(malloc(newValue.size() + 1));
                std::copy(begin(newValue), end(newValue), newString);
    #endif
    }

    Момент, когда я считаю, что C++-ный auto -- чистое зло(строка 14).
    Код из OSVR-Vive, плагина к OSVR, который работает с HTC Vive.

    a1batross, 08 Апреля 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (_viewModel.ShowColumnChooser && _viewModel.UseDefaultColumnChooser)
        //...
    else {
        if (!_viewModel.ShowColumnChooser)
            return;
        //...
    }

    Сэмпл платного фреймворка Syncfusion. Да, на этом коде они объясняют, как использовать их классы. А в поддержке отвечают сплошные косноязычные Раджеши Кутрапалли.

    gogishvilli001, 03 Апреля 2016

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

    +10

    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
    #define class KOKOKO
    #include <sys/shutdown.h>
    #undef class
    
    /* внутри sys/shutdown.h:
    
    typedef struct
    {
        uint64_t start_time;
        pid_t pid;
        int8_t class;
        uint8_t padding[3];
        char *name;
    } ProcessInfo_t;
    */

    перезагружаем qnx neutrino из крестового кода

    Xom94ok, 22 Марта 2016

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

    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
    public static IEnumerable fGetPostIMAP(string port, int port2, string username, string password, string startCount, string path)
    {
        Stopwatch swatch = new Stopwatch();
        swatch.Start();
        int Delay = 10;
        System.IO.StreamWriter sw = null;
        System.Net.Sockets.TcpClient tcpc = null;
        int bytes = -1;
        int is_file = 0;
        int is_att = 0;
        byte[] buffer;
        StringBuilder sb = new StringBuilder();
    //...
        string UID = "";
        string From;
        try
        {
    //...
    
                        if (ListMessage.IndexOf("filename=") > -1)
                        {
                            temp = ListMessage.Replace("filename=", "");
                            temp = temp.Trim();
                            file_name = temp;
                            is_file = 1; temp = ""; is_att = 1;
                        }
    //...
                            if (is_file == 1)
                            {
                                if (ListMessage.IndexOf("--") > -1)
                                    end_file = 1;
                                else
                                    temp = temp + ListMessage;
    
                            }
                            if (ListMessage == "")
                            {
                                is_file = 1;
                            }
    //...
        }
        catch (Exception ex)
        {
            rows.Add(new object[] { "ERROR:" });
            rows.Add(new object[] { ex.Message });
        }
        finally
        {
            if (sw != null)
            {
                sw.Close();
                sw.Dispose();
            }
            if (tcpc != null)
            {
                tcpc.Close();
            }
        }
        return rows;
    }

    Делфи головного мозга просвечивает в каждой строчке. Даже использованием 0/1 вместо булева типа не скрыть дельфишной сути.

    tucvbif, 17 Марта 2016

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

    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
    #if !defined LOG_PRINT_FNAME && !defined LOG_PRINT_LVL && \
        !defined LOG_PRINT_DATE  && !defined LOG_PRINT_TIME && \
        !defined LOG_TIME_FMT   &&  !defined LOG_DATETIME_SEP && \
        !defined LOG_PRINT_TIMER && !defined LOG_VERB
    #warning No logging options specified, default config will be used
    #endif
     
    // Initialize unitialized values
    #ifndef LOG_PRINT_FNAME
        #define LOG_PRINT_FNAME true
    #endif
    #ifndef LOG_PRINT_LVL
        #define LOG_PRINT_LVL false
    #endif
    #ifndef LOG_PRINT_DATE
        #define LOG_PRINT_DATE false
    #endif
    #ifndef LOG_PRINT_TIME
        #define LOG_PRINT_TIME false
    #endif
    #ifndef LOG_DATE_FMT
        #define LOG_DATE_FMT "%D"
    #endif
    #ifndef LOG_TIME_FMT
        #define LOG_TIME_FMT "%T"
    #endif
    #ifndef LOG_DATETIME_SEP
        #define LOG_DATETIME_SEP ""
    #endif
    #ifndef LOG_PRINT_TIMER
        #define LOG_PRINT_TIMER true
    #endif
    #ifndef LOG_VERB
        #define LOG_VERB 1
    #endif
     
     
    #if LOG_PRINT_TIMER == true && (LOG_PRINT_DATE == true || LOG_PRINT_TIME == true)
    #warning Printing timer and datetime both is not possible, datetime will be discarded
    #define LOG_PRINT_DATE false
    #define LOG_PRINT_TIME false
    #endif
     
    enum LogLevel_t {
        INFO     = 3,
        WARNING  = 2,
        ERROR    = 0,
        TRACE    = 7
    };
     
    #define TIMER
    #define DATE
    #define TIME
    #define SEPARATOR
    #define FNAME
    #define LVL(lvl)
     
    #define STREAM(lvl) \
        ((lvl) == TRACE || (lvl) == ERROR) ? std::cerr : std::cout
     
    #if LOG_PRINT_TIMER == true
    #define TIMER << "[" << std::fixed << Log::getTimer() << "] "
    #endif
     
    #if LOG_PRINT_DATE == true
    #define DATE << Log::getTimeFmt(LOG_DATE_FMT) << " "
    #endif
     
    #if LOG_PRINT_TIME == true
    #define TIME << Log::getTimeFmt(LOG_TIME_FMT) << " "
    #endif
     
    #if LOG_PRINT_DATE == true && LOG_PRINT_TIME == true
    #define SEPARATOR << LOG_DATETIME_SEP
    #endif
     
    #if LOG_PRINT_FNAME == true
    #define FNAME << __FUNCTION__ << ": "
    #endif
     
    #if LOG_PRINT_LVL == true
    #define LVL(lvl) << #lvl << ": "
    #endif
     
    #define LOG(lvl) \
        std::cout.precision(5); \
        STREAM(lvl) TIMER DATE SEPARATOR TIME LVL(lvl) FNAME

    xxx: Бля, я написал какое-то говно
    yyy: Я видел некоторое дерьмо
    xxx: Пиздец просто
    zzz: Действительно говно.
    xxx: Я не знаю даже нахуя я это делал
    xxx: Почему-то, когда начинал, мне не пришло в голову, что логгирование на макросах, конфигурируемое в компилтайме — это пиздец

    CYB3R, 02 Марта 2016

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

    −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
    if ($Module == 'edit' and $_POST['enter']) {	
    ULogin(1);
    $_POST['name'] = FormChars($_POST['name']);
    $_POST['femeli'] = FormChars($_POST['femeli']);
    $_POST['den'] = FormChars($_POST['den']);
    $_POST['month'] = FormChars($_POST['month']);
    $_POST['year'] = FormChars($_POST['year']);
    $_POST['pol'] = FormChars($_POST['pol']);
    $_POST['country'] = FormChars($_POST['country']);
    $_POST['region'] = FormChars($_POST['region']);
    $_POST['city'] = FormChars($_POST['city']);
    
    
    if ($_POST['name'] != $_SESSION['USER_NAME']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `name` = '$_POST[name]' WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_NAME'] = $_POST['name'];
    }
    
    if ($_POST['femeli'] != $_SESSION['USER_FEMELI']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `femeli` = '$_POST[femeli]' WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_FEMELI'] = $_POST['femeli'];
    }
    
    if ($_POST['den'] != $_SESSION['USER_DEN']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `den` = $_POST[den] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_DEN'] = $_POST['den'];
    }
    
    if ($_POST['month'] != $_SESSION['USER_MONTH']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `month` = $_POST[month] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_MONTH'] = $_POST['month'];
    }
    
    
    if ($_POST['year'] != $_SESSION['USER_YEAR']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `year` = $_POST[year] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_YEAR'] = $_POST['year'];
    }
    
    if ($_POST['pol'] != $_SESSION['USER_POL']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `pol` = $_POST[pol] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_POL'] = $_POST['pol'];
    }
    
    
    
    if ($_POST['country'] != $_SESSION['USER_COUNTRY']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `country` = $_POST[country] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_COUNTRY'] = $_POST['country'];
    }
    
    
    if ($_POST['region'] != $_SESSION['USER_REGION']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `region` = $_POST[region] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_REGION'] = $_POST['region'];
    }
    
    if ($_POST['city'] != $_SESSION['USER_CITY']) {
    mysqli_query($CONNECT, "UPDATE `users`  SET `city` = $_POST[city] WHERE `id` = $_SESSION[USER_ID]");
    $_SESSION['USER_CITY'] = $_POST['city'];
    }
    
    
    MessageSend(3, 'Данные изменены!');
    }

    никто не подскажет как сократить вот эту шнягу

    viktor, 29 Января 2016

    Комментарии (26)
  11. JavaScript / Говнокод #18051

    +143

    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
    _save = (data, callback) ->
      tags = if data.tags then data.tags else []
      removed_tag_ids = if data.removed_tag_ids then data.removed_tag_ids else []
      post = if data.post then data.post else null
      new_tags = _.filter tags, (tag) ->
        not _.has(tag, "label")
      old_tags = _.filter tags, (tag) ->
          _.has(tag, "label")
          
      $.when(_.each old_tags, (old_tag) =>
        tag_post.save({tag: tag, post: post})
      ).done(=>
      	do callback
      )

    Обратились с вопросом "почему не работает".
    PS метод save асинхронный

    alek0585, 23 Апреля 2015

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