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

    0

    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
    /**
     * Static Content Helpers
     */
    (function (window, ng, app) {
    
        app.service('$StaticContentHelpers', function () {
    
            var instance = null;
    
            /**
             * Конструктор хелперов
             *
             * @returns {Object} Функции-хелперы
             * @constructor
             */
            function Init () {
    
                /**
                 * Обертка для статического контента,
                 * добавляет static домен, который пришел с бэкенда
                 *
                 * @param {String} url Урл, к которому необходимо добавить домен для статики
                 *
                 * @return {String} Готовый абсолютный url для статического контента
                 */
                function wrapStaticContent (url) {
                    // Проверим, от корня ли путь
                    return window.currentStaticDomain + ((/(^\/)/.test(url)) ? '' : '/') + url;
                }
    
                return {
                    wrapStaticContent: wrapStaticContent
                }
    
            }
    
            function getInstance () {
                if (!instance) {
                    instance = new Init();
                }
                return instance;
            }
    
            return {
                getInstance: getInstance
            };
    
        });
    
    }(window, angular, mainModule));

    гуру паттернов..

    Запостил: _finico, 13 Мая 2016

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

    • angular service он же и так синглтон
      Ответить
      • Потому он здесь и оказался)
        Еще конструктор не должен иметь return, да и методы в класс шедеврально добавляются
        Ответить
    • Замыкание на замыкании замыканием погоняет.

      Функциональность этого кода - одна единственная строка 28, но код распидорашен на весь экран.
      Нахуя создавать анонимную функцию, и сразу её вызывать? Нахуя создавать НЕанонимную функцию, потом возвращать объект из единственной этой функции?

      Автор кода - иди лечись
      Ответить
    • /**
       * Static Latency Herpes
       */
      Ответить

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