1. JavaScript / Говнокод #17336

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    var id;
    
    $(window).resize(function() {
      clearTimeout(id);
      id = setTimeout(doneResizing, 500);
    });
    
    function doneResizing(){
      window.location.reload();   
    }

    На странице элемент, у которого надо менять положение при ресайзе.

    AntonMMF, 18 Декабря 2014

    Комментарии (13)
  2. JavaScript / Говнокод #17330

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function(loaded) {
        
        var sale=$("#markupz").val();
        var markup=$("#salez").val();
    		
         ...
    								
    });

    утонул в таком коде

    govnokoder2, 18 Декабря 2014

    Комментарии (7)
  3. JavaScript / Говнокод #17323

    +210

    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
    /*
          _31 - числа  начинаются с _
          _Math_sin - глобальные функции тоже
          $abcd - строки начинаются с $ 
          /\ - символ лямбда. Easter egg:можно писать и / для краткости
          САХАР:
           args = arguments
          _ = args[0]     
    */
    
    log("========CALCULATOR EXAMPLE========");
    //*
    handler= makeHandler(chainer());
    var calc = prox(
        {   //imports
            print:function(x){log(x); return x;}
            ,add:function(a,b){ return a+b;}
            ,set:function(x,y){ return y;}
            ,fma:function(a,b,c){
                return a*b+c;
            }        
        }
    );
    calc
        .set[0]
        .add[2]
        .print //2
        .fma[10][5]
        .print //25
        
        .add._3
        .String
        .add._1111
        .print //281111
        
        ._Math_min._1
        ._Math_max._1000
        .print //100
        
        .String
        ._Math_log10
        .add["$ pow 10"]
        .print //3 pow 10
    ;
    //*/
    handler= makeHandler(chainer());
    var linq = prox(
        {   //imports
            set     :function(inner,y){ return y;}
            ,print  :function(x){log(x); return x;}
            ,map    :function(arr,y){ return arr.map(y)}
            ,filter :function(arr,y){ return arr.filter(y)}
            ,sort   :function(arr,comparator){ return arr.sort(comparator)}
            //Imperatii
            ,IF     :function(context,condition,trueBranch,falseBranch){
                return (condition(context)) ? trueBranch(context) : falseBranch(context);
            }
        }
    );
    
    linq
        .set    ["[5,2,1,3,4]"]
        .print//[5, 2, 1, 3, 4]
        .map    ["/\ _ * 3"]
        .print//[15, 6, 3, 9, 12]   
        .filter ["/\ log('filter='+args[0]),args[0]>5"] //несколько операторов в лямбде.
        .print//[6, 9, 12, 15]
        .sort   ["/\ args[0]-args[1]"]
        .map    ["/\ _ - 6"]
        .print//[0, 3, 6, 9]
        .map    ["/\ 2>_ ? 1 : _ * args.callee(_-1)"]   //анонимная рекурсия и факториал
        .print//[1, 6, 720, 362880]
        
        //имперации
        .filter ["/\ _>100"]
        .IF ["/\ _.length===0"][ 
            "/\ log('array is EMPTY!'), _" 
        ][ 
            "/\ log('Not empty:',_), []"         
        ]    //"Not empty:" [720, 362880]
        .IF ["/\ _.length===0"][ 
            "/\ log('EMPTY!'), ['empty','replacement']" 
        ][ 
            "/\ log(_), _"         
        ].print//['empty','replacement']
           
    ;

    Такой вот DSL на свойствах javascript.
    Осторожно! Все трюки выполнены профессионалами. Не пытайтесь повторить это на работе.
    http://jsfiddle.net/y5og4o9q/1/

    3.14159265, 15 Декабря 2014

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    if(upass==uname || upass=='1234' || upass=='12345' || upass=='123456' || upass=='654321' || upass=='pikabu' || upass=='password' || upass=='qwerty' || upass=='qazwsx') {
    			$('#'+upass2_id+'_err').html('Пароль не должен быть слишком простым или совпадать с логином');
    			errCnt++;
    }

    смотрел исходный код по правой кнопки - сайт pikabu.ru

    marik_v, 15 Декабря 2014

    Комментарии (8)
  5. JavaScript / Говнокод #17287

    +158

    1. 1
    $scope.pageCount = (newValue / $scope.pageSize | 0) || +!!newValue;

    Кратскость - сестра таланта

    dr_abstract, 10 Декабря 2014

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

    +160

    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
    var someThing = new Object({
        isVariant1: function() {
            return (this._type() == "var1") ? true : false;
        },
        isVariant2: function() {
            return (this._type() == "var2") ? true : false;
        },
        isVariant3: function() {
            return (this._type() == "var3") ? true : false;
        },
        isVariant4: function() {
            return ((this._type().indexOf("vvvar") >= 0)) ? true : false;
        }
    });

    Легаси код одного известного проекта.
    Все имена функций и содержимое строк изменены.

    pater, 09 Декабря 2014

    Комментарии (1)
  7. JavaScript / Говнокод #17273

    +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
    switch (response.statusCode) {
                                    case 200:
                                        status = "up";
                                        break;
                                    case 404:
                                        status = "up";
                                        break;
                                    case 403:
                                        status = "up";
                                        break;
                                    case 500:
                                        status = "up";
                                        break;
                                    case 200:
                                        status = "up";
                                        break;
                                    default:
                                        status = "up";
    }

    Каков ассортимент вариантов! .)

    smart, 08 Декабря 2014

    Комментарии (18)
  8. JavaScript / Говнокод #17265

    +169

    1. 1
    this.value = this.value.replace(/./g, '');

    //гениальное обнуление строки

    garapup, 06 Декабря 2014

    Комментарии (146)
  9. JavaScript / Говнокод #17264

    +157

    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
    function report1(req, res, next, type) {
                    if (!req.query || !req.query.name) {
                            var ct = "Income statement";
                            if (type == 'pieflow')
                                    ct = 'Pie flow chart';
                            else if (type == 'barflow')
                                    ct = 'Bar flow chart';
     
                            res.redirect(req.url + "?name=" +  ctx.i18n(req.session.apiToken, 'cash', ct));
                            return;
                    }
     
                    var pid = "reports-" + type + "-" + req.query.name;
                    var vtabs,data,reportSettings;
                    async.waterfall([
                            function (cb1) {
                                    async.series([
                                            function(cb2) {
                                                    webapp.guessTab(req, {pid: pid, name:req.query.name, url:req.url}, cb2);
                                            },
                                            function(cb2) {
                                                    webapp.getTabSettings(req.session.apiToken, pid, cb2);
                                            }
                                    ],
                                    function (err, results) {
                                            cb1(null, results[0], results[1]);
                                    });
                            },
                            function (vtabs_, reportSettings_, cb1) {                              
                                    vtabs = vtabs_;
                                    reportSettings = reportSettings_;
                                    if (_.isEmpty(reportSettings) || !reportSettings.version || (reportSettings.version != reportSettingsVersion)){
                                            reportSettings = getDefaultSettings(req.query.name);           
                                            webapp.saveTabSettings(req.session.apiToken, pid, reportSettings, function(err){
                                                    if (err) console.log(err);
                                            });
                                    }
                                    calculateGraphData(req.session.apiToken,type,reportSettings,cb1);
                            },
                            function(data_,cb1){                           
                                    data = data_;                          
                                    cb1()
                            },
                            function(){                                                                            
                                    data.tabs = vtabs;
                                    data.pmenu = {name:req.query.name,
                                            items:[{name:webapp.ctx.i18n(req.session.apiToken, 'cash','Page settings'),id:"settings",href:"#"}]}
                                    data.reportSettings = reportSettings;
                                   
                                    res.render(__dirname+"/../res/views/report", data);
                            }],
                            next
                    );
            };

    Прислали мне, значит, вступительное задание на должность разработчика node.js, а там гигантский проект, в который нужно дописать модуль, который выглядит весь так же ужасно, как эта функция. Долго порывался написать, что это самый ужасный код, который я когда-либо видел. http://pastebin.com/4NYccg3Y вот ссылка на весь файл, кому интересно, весь проект палить не буду, но скажу, что он большой и ужасный.

    Twizty, 06 Декабря 2014

    Комментарии (33)
  10. JavaScript / Говнокод #17262

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    $('.vse-zaeblo').click(function() {
            $.fancybox($(this));
            return false;
        });

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

    Xases, 05 Декабря 2014

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