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

    +1

    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
    componentDidMount() {
            this.clickListener = (e) => {
    
                var input = document.getElementById('searchInput');
                var filtersBar = document.getElementById('filters');
                var searchBar = document.getElementById('search');
                var clearButton = document.getElementById('suggestInputClearBtn');
                var isNav = e.target.className.indexOf('suggestNavBtn') >= 0;
    
                if(input == e.target || searchBar == e.target || filtersBar == e.target || clearButton == e.target || isNav || e.target.className.indexOf('tags-controller-wrapper') !== -1)
                    return;
    
                var classes = e.target.c†.split(' ');
    
                for(var cls of classes){
                    if(cls == 'autocompleteItem')
                    {
                        return;
                    }
                }
    
                if(this.props.isSuggestInputVisible)
                    this.props.onCloseAutosuggestion();
    
            };
            this.attachClickListener();
        }

    Я бы только за if без скобок прибил) Обратите внимание на 4 выборки по id которые можно было не делать каждый раз при клике, а если приглядеться то можно понять, что можно было совсем не выбирать ни разу, а если бы пионер знал что всплытие событие можно остановить то этот метод занял бы три строчки и на десерт обратите внимание как он перебирает значение className циклом - это при том что в этом проекте можно писать на es6 Это самый дебильный код который я видел в этом году

    Запостил: inwebart, 29 Декабря 2015

    Комментарии (9) RSS

    • this.clickListener = (e) => { /* */ }
      Что это за жесть?
      UPD https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
      Ответить
      • Почему жесть? Это же вкусняшечка. По-моему, одно из самых интересных нововведений в ES6.
        Ответить
        • Даже авторам жс надоело писать ехал фанкшн через фанкшн, фанкшн, фанкшн, фанкшн, фанкшн?
          Ответить
        • В каком es уже введут async, блядь? Серезно, основное применение языка - скриптинг внутри браузера. Даже питон уже и тот украл.
          Ответить
    • > e.target.c†
      как "assName" превратилось в крест?
      Ответить
      • Знамение
        Ответить
      • Промысел Божий, хули не ясно? Ну или FineReader. Ну или говнокодерский парсер в предверии Рождества Господня захуярил оное из бесовского "lassName".
        Ответить

    Добавить комментарий