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

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

    +2

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

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

    govnokoderphp, 10 Июня 2016

    Комментарии (26)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. ActionScript / Говнокод #17938

    −162

    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
    private function parse (val : String) : Object {
        while (val.indexOf(' ') != -1) {
            val = val.replace(' ', '')
        }
        if (val.indexOf(',') != -1) {
            var params : Array = val.split(',')
            if (params[0] != 'auto') {
                params[0] = [parseInt(params[0]), /(px|%)/.exec(params[0][1])]
            }
            if (params[1] != 'auto') {
                params[1] = [parseInt(params[1]), /(px|%)/.exec(params[1])[1]]
            }
            return params
    
        } else if (val == 'contain' || val == 'cover') {
            return val
        }
        return null
    }

    Да блять, я не осилила разобрать строку типа "10px,auto"

    kyzi007, 05 Апреля 2015

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

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int weeks_in_month(int month, int year){
        int weeks=1, first, i=0;  //i - числа месяца
        first = weekday(1, 1, 1, 1, 1, month, year);
        i += 8 - first;
        while(i <= days_in_month(month, year)){
            ++weeks;
            i += 7;
        }
        return weeks;
    }

    alobanov, 16 Марта 2015

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