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

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

    +155

    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
    function alertObj(obj) {
        var str = "";
        for(k in obj) {
            if (typeof obj[k] == "object") {
                str += k+":<br />";
                for(kk in obj[k]) {
                    if (typeof obj[k][kk] == "object") {
                        str += "--"+kk+":<br />";
                        for(kkk in obj[k][kk]) {
                            str += "----"+kkk+": "+ obj[k][kk][kkk]+"<br />";
                        }
                    } else {
                        str += "--"+kk+": "+ obj[k][kk]+"<br />";
                    }
                }
            } else {
                str += k+": "+ obj[k]+"<br />";
            }
        }
        alert(str);
    }

    Алерт объектов

    DsTr, 22 Февраля 2013

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

    +113

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private int GenerateRandom(int MaxValue)
    {
        var mas = Guid.NewGuid().ToByteArray();
        return BitConverter.ToInt32(mas, 4) % MaxValue;
    }

    ....

    roman-kashitsyn, 28 Января 2013

    Комментарии (28)
  4. JavaScript / Говнокод #12189

    +161

    1. 1
    2. 2
    3. 3
    function toInt(number) {
        return number && + number | 0 || 0;
    }

    http://ideone.com/igo7ag

    Минут 10 назад меня ошарашили фразой о методе toInt(), который, якобы, есть в javascript. Гугл выдал всего одну ссылочку, в которой говорится о нем: http://javascript.ru/forum/misc/22100-funkciya-toint-razyasnite-pozhalujjsta-neskolko-momentov.html. Увидев данный код, я просто не мог не выложить его сюда.

    bormand, 23 Ноября 2012

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

    +41

    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
    ....
    <table border="0" cellspacing="0" cellpadding="1">
    	<tr>
    		<td width="45%" valign="top">
    			<?if($arResult["AUTH"]["new_user_registration"]=="Y"):?>
    				<b><?echo GetMessage("STOF_2REG")?></b>
    			<?endif;?>
    		</td>
    		<td width="10%"> </td>
    		<td width="45%" valign="top">
    			<?if($arResult["AUTH"]["new_user_registration"]=="Y"):?>
    				<b><?echo GetMessage("STOF_2NEW")?></b>
    			<?endif;?>
    		</td>
    	</tr>
    	<tr>
    ....

    наткнулся в Битриксе, в шаблоне стандартного компонента sale.order.full
    Видимо не судьба одной проверкой <?if($arResult["AUTH"]["new_user_registration"]=="Y"):?> исключить всю строку <tr>...</tr>

    Freewww, 07 Ноября 2012

    Комментарии (28)
  6. JavaScript / Говнокод #11990

    +165

    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
    function findeFreePlace()
        {
            try
            {
                var x = random(gs.cells.x - 1),
                    y = random(gs.cells.y - 1);
                if (gs.balls[y][x] != null)
                {
                    return findeFreePlace();
                }
                else
                {
                    return [x, y];
                }
            }
            catch (e)
            {
                isEndGame = true;
                showfinish();
                return false;
            }
        }

    Игра "линии". Нужно случайно выбрать клеточку, в которую будет добавлен новый шарик. Ну, а чтобы узнать, что пустых клеточек нет, ловим ошибку переполнения стека.

    vovams, 24 Октября 2012

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

    +34

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int main()
    try
    {
    }
    catch (...)
    {
    }

    http://ideone.com/luh8p

    LispGovno, 24 Сентября 2012

    Комментарии (28)
  8. Куча / Говнокод #11811

    +131

    1. 1
    o?o.f():{};

    Мне было стыдно постить это в С++.

    http://www.gamedev.ru/flame/forum/?id=167142&page=2#m25

    LispGovno, 20 Сентября 2012

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

    +22

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    string toString( int i ) {
    	stringstream s;
    	s << i;
    	return s.str();
    }

    Наткнулся на эту функцию в одном из своих старых проектом.

    Fai, 11 Сентября 2012

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

    −91

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if value == '' or value == None or value == False or value == 0:
        ...
    
    if count(data) <= 0:
        ...
    
    # так же он еще умеет рефакторить это
    if post_data is None:
        ...
    # вот в это
    if not post_data:
        ...

    Пара примеров, как у нас в проекте "кодит" товарищ из Индии

    larikov, 09 Сентября 2012

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

    +121

    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
    #include "uni.h"
    
    int getopt_long(int argc, char *const argv[],const char *optstring,const struct option *longopts, int *longindex);
    int getopt__long_only(int argc, char *const argv[],const char *optstring,const struct option *longopts, int *longindex);
    int chown(const char *path, uid_t owner, gid_t group);
    uid_t getuid(void);
    int mkdir(const char *pathname, mode_t mode);
    gid_t getgid(void);
    
    char *dirname;
    mode_t perm;
    uid_t owner;
    gid_t group;
    
    int main(int argc,char **argv){
      owner=getuid();
      group=getgid();
      perm=0600;
    char *pEnd;
    char *dirname=(char*)malloc(16);
      if(dirname==NULL){fprintf(stderr, "out of memory!\n");return -1;}
       memset( dirname,'\0',16); 
       strcat(dirname,argv[argc-1]);
    struct option longopts[] = {
      { "mode", required_argument, NULL, 'm' },
      { "parents", NULL, NULL, 'p'},
      { "verbose", required_argument, NULL, 'v'},
      { "context", required_argument, NULL, 'c'},
      { "help", NULL, NULL, 'h'},
      { "version", NULL, NULL, 'r'},
    { 0, 0, 0, 0 } 
    };
    char c;
    while((c=getopt_long(argc,argv,"m:p:v:c:r:h",longopts,NULL)) != -1) {
      switch (c) {
        case 'm':
          perm=strtol(optarg,&pEnd,8);
          printf("%s\n",pEnd);
          break;
        case 'p':
          if(rmdir(dirname)<0){
            fprintf(stderr, "don't manage to delete folder!\n");return -1;
          }
          break;
        case 'v':
          if(mkdir(dirname,perm)<0){
            fprintf(stderr, "mkdir: cannot create directory `%s`: file exists\n",dirname);return -1;
          } else {
            printf("mkdir: created directory `%s`\n",dirname);
            return 0;
          }
          break;
        case 'c':
          break;
        case 'h':
          printf("Usage: mkdir [OPTION]... DIRECTORY...\n");
          printf("Create the DIRECTORY(ies), if they do not already exist.\n");
          printf("\n");
          printf("Mandatory arguments to long options are mandatory for short options too.\n");
          printf("  -m, --mode=MODE   set file mode (as in chmod), not a=rwx - umask\n");
          printf("  -p, --parents     no error if existing, make parent directories as needed\n");
          printf("  -v, --verbose     print a message for each created directory\n");
          printf("  -Z, --context=CTX  set the SELinux security context of each created\n");
          printf("                      directory to CTX\n");
          printf("      --help     display this help and exit\n");
          printf("      --version  output version information and exit\n");
          printf("\tAuthor AliceGoth\n");
          return 0;
          break;
        case 'r':
          printf("\tMy own mkdir\n");
          printf("\tVersion 1.0\n");
          printf("\tAuthor AliceGoth\n");
          printf("\tEmail [email protected]\n");
          break;
        case 1:

    Мой mkdir

    AliceGoth, 07 Июля 2012

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