1. 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)
  2. JavaScript / Говнокод #17262

    +163

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

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

    Xases, 05 Декабря 2014

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

    +159

    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
    88. 88
    89. 89
    90. 90
    jQuery(document).ready(function(){ 
    jQuery("a.m1_show").click(function(){ 
    jQuery('div#emul_1').addClass('mshow').show();
    jQuery('div#emul_2').addClass('minvis').hide();
    jQuery('div#emul_3').addClass('minvis').hide();
    jQuery('div#emul_4').addClass('minvis').hide();
    jQuery('div#emul_5').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    jQuery(document).ready(function(){ 
    jQuery("a.m2_show").click(function(){ 
    jQuery('div#emul_2').addClass('mshow').show();
    jQuery('div#emul_1').addClass('minvis').hide();
    jQuery('div#emul_3').addClass('minvis').hide();
    jQuery('div#emul_4').addClass('minvis').hide();
    jQuery('div#emul_5').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    
    jQuery(document).ready(function(){ 
    jQuery("a.m3_show").click(function(){ 
    jQuery('div#emul_3').addClass('mshow').show();
    jQuery('div#emul_1').addClass('minvis').hide();
    jQuery('div#emul_2').addClass('minvis').hide();
    jQuery('div#emul_4').addClass('minvis').hide();
    jQuery('div#emul_5').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    jQuery(document).ready(function(){ 
    jQuery("a.m4_show").click(function(){ 
    jQuery('div#emul_4').addClass('mshow').show();
    jQuery('div#emul_1').addClass('minvis').hide();
    jQuery('div#emul_3').addClass('minvis').hide();
    jQuery('div#emul_2').addClass('minvis').hide();
    jQuery('div#emul_5').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    jQuery(document).ready(function(){ 
    jQuery("a.m5_show").click(function(){ 
    jQuery('div#emul_5').addClass('mshow').show();
    jQuery('div#emul_1').addClass('minvis').hide();
    jQuery('div#emul_3').addClass('minvis').hide();
    jQuery('div#emul_2').addClass('minvis').hide();
    jQuery('div#emul_4').addClass('minvis').hide();
    //jQuery('li#emul_6').addClass('minvis').hide();
    });
    });
    
    function but_1 () {
     	jQuery('span#emul_img_1').addClass('img_none').hide();
    	jQuery('span#emul_img_2').addClass('img_inline').show();
    	jQuery('span#emul_img_3').addClass('img_inline').show();
    	jQuery('span#emul_img_4').addClass('img_inline').show();
    	jQuery('span#emul_img_5').addClass('img_inline').show();
    	
    	
    	jQuery('span#emul_img_none_1').addClass('img_inline').show();
    	jQuery('span#emul_img_none_1').addClass('current_tab').show();
    	
    	jQuery('span#emul_img_none_2').addClass('img_none').hide();
    	jQuery('span#emul_img_none_3').addClass('img_none').hide();
    	jQuery('span#emul_img_none_4').addClass('img_none').hide();
    	jQuery('span#emul_img_none_5').addClass('img_none').hide();
    }
    
    function but_2 () {
     	jQuery('span#emul_img_2').addClass('img_none').hide();
    	jQuery('span#emul_img_1').addClass('img_inline').show();
    	jQuery('span#emul_img_3').addClass('img_inline').show();
    	jQuery('span#emul_img_4').addClass('img_inline').show();
    	jQuery('span#emul_img_5').addClass('img_inline').show();
    	
    	jQuery('span#emul_img_none_2').addClass('img_inline').show();
    	jQuery('span#emul_img_none_2').addClass('current_tab').show();
    	
    	jQuery('span#emul_img_none_1').addClass('img_none').hide();
    	jQuery('span#emul_img_none_3').addClass('img_none').hide();
    	jQuery('span#emul_img_none_4').addClass('img_none').hide();
    	jQuery('span#emul_img_none_5').addClass('img_none').hide();
    	
    }
    ...

    На работе сказали поправить табы, зашел увидел это =)
    Вот такая реализация, Там еще html очень "забавный" =)

    JAZzmiX, 05 Декабря 2014

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

    +158

    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
    // Пара функций в глобальном скоупе прям
    
    function imageOn(imageName)
    {
    	if(document.images)
    	{
    		document[imageName].src=eval(imageName+"On.src");
    	}
    }
    
    
    function imageOff(imageName)
    {
    	if(document.images)
    	{
    		document[imageName].src=eval(imageName+"Off.src");
    	}
    }
    
    
    // Затем по такому файлику на каждую страницу
    
    if(document.images)
    {
    	imagePath= contextImages;
    
    	displaySessionInfoOn=new Image();
    	displaySessionInfoOn.src=imagePath+"ShowSessionStatusOn.gif";
    	displaySessionInfoOff=new Image();
    	displaySessionInfoOff.src=imagePath+"ShowSessionStatusOff.gif";
    
    	...
    }
    
    
    // И, наконец, пример использования в HTML:
    
    <a href="DisplaySessionInfo?PropertyId=FILBB" onmouseover="imageOff('displaySessionInfo')" onmouseout="imageOn('displaySessionInfo')">
        <img src="/resources/images/ShowSessionStatusOn.gif" name="displaySessionInfo" alt="ShowSessionStatus" border="3"/>
    </a>

    madhead, 04 Декабря 2014

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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    request.done(function(data){			 
    			 if (data){
                                            <...много кода с кучей вложенных if else ..>
    				    	noty({type: "success", text: 'Заказ взят с биржи'});
    				  	setTimeout(location.reload(), 2000);
    				  }
    		   	 } else if (data.error) {
    				 console.log(data);
    				 noty({type: "error", text: data.error["message"]});				
    			 }
    	});

    i had n1ce debug time

    heyzea1, 03 Декабря 2014

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

    +215

    1. 1
    if (new Boolean(false)) {

    Отвратная вещь этот new.

    3.14159265, 03 Декабря 2014

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

    +158

    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
    $('.price_input', this.getDummy()).on('keydown', function (e) {
        if (e.keyCode == 13) {
            e.preventDefault();
        }
    
        var charCode = e.keyCode, char = e.originalEvent.keyIdentifier;
        if ((((charCode == 188) && (!char || char == 'U+002C')) || (charCode == 190) && (!char || char == 'U+002E')) && ($(this).val().indexOf('.') < 0) && ($(this).val().indexOf(',') < 0)) {
            return true;
        }
    
        if ((charCode >= 37 && charCode <= 40) || (charCode == 46) || (charCode == 8) || (charCode >= 48 && charCode <= 57) || (charCode >= 96 && charCode <= 105)) {
            return true;
        }
    
        e.preventDefault();
    });

    Код ведущего front-end разработчика.
    Это далеко не самый длинный if в проекте.
    После месячного рефакторинга подобного шедевра я готов открыть компанию по сбору денег для программистов инвалидов.

    MrFranke, 02 Декабря 2014

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

    +153

    1. 1
    2. 2
    3. 3
    var getSelectedTabName = function() {
      return $('#costs-category').find('.tabs-v4-i_active').find('.tabs-v4-l').data('category_alias');
    };

    Кто-то ниасилил селекторы в jquery

    fake, 01 Декабря 2014

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

    +161

    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
    function kevinTheNumberMentioner(_){
      l=[]
      /* mostly harmless --> */ with(l) {
      	
      	//Sorry about all this, my babel fish has a headache today...
      	for (ll=!+[]+!![];ll<_+(+!![]);ll++) {
      	  lll=+!![];
      	  while (ll%++lll);
      	  //I've got this terrible pain in all the semicolons down my right-hand side
      	  (ll==lll)&&push(ll);
      	}
      	forEach(alert);
      	
      }
      
      //You're really not going to like this...
      return [!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]];
    }

    Открыл твитор, а там - это.

    http://arstechnica.com/information-technology/2014/11/holiday-reading-for-a-certain-sort-if-hemingway-wrote-javascript/

    Xom94ok, 30 Ноября 2014

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

    +154

    1. 1
    var coutryOption = commonSettings.parent().parent().parent().find("tr:contains('Country')");

    очень поиск...

    fess, 29 Ноября 2014

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