1. Список говнокодов пользователя Twizty

    Всего: 1

  2. 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)