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

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    anim.object.strokeWidthEnd = _.distance((end.replace(/(#[0-9a-f]{6})|(#[0-9a-f]{3})|(rgba?\((\d{1,3})\,\s*(\d{1,3})\,\s*(\d{1,3})(\,\s*([0-9\.]{1,4}))?\))|(rgba?\((\d{1,3})\%?\,\s*(\d{1,3})\%?\,\s*(\d{1,3})\%?(\,\s*([0-9\.]{1,4}))?\))/, '').match(/(\d+|(\d+)?\.\d+)(em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|px|pt|pc)?/) || [])[0]);
    if(end.indexOf('transparent') > -1)
        anim.object.strokeColorEnd = [anim.object.strokeColor[0], anim.object.strokeColor[1], anim.object.strokeColor[2], 0];
    else
        anim.object.strokeColorEnd = _.color((end.match(/(#[0-9a-f]{6})|(#[0-9a-f]{3})|(rgba?\((\d{1,3})\,\s*(\d{1,3})\,\s*(\d{1,3})(\,\s*([0-9\.]{1,4}))?\))|(rgba?\((\d{1,3})\%?\,\s*(\d{1,3})\%?\,\s*(\d{1,3})\%?(\,\s*([0-9\.]{1,4}))?\))/) || end.match(new RegExp(Object.keys(_.colors).join('|'))) || [])[0]);

    одна-проблема-и-регулярка.jpg

    gost, 20 Декабря 2014

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // В чем смысл переменной knc?
    var knc = 0;
    var k_fr = parent.document.getElementById(kph);
    if (k_fr) {
        knc = 1;
    }

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

    MrFranke, 18 Декабря 2014

    Комментарии (4)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. JavaScript / Говнокод #17287

    +158

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

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

    dr_abstract, 10 Декабря 2014

    Комментарии (3)
  8. 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)
  9. 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)
  10. JavaScript / Говнокод #17265

    +169

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

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

    garapup, 06 Декабря 2014

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