Как разделить JavaScript логику?

Пробовал множество решений для разделения логики JS, но до сих пор не нашел такого, какое бы меня устраивало полностью.

Суть вопроса - проекты бывают разные. Есть такие, которые нуждаются в долгосрочной поддержке, сложные и "тяжелые", с большим количеством интерактивных элементов на страницах, управляемых с помощью js. Как вы в таком случае обеспечиваете модульность javascript приложений? Как обрабатываете зависимости между модулями и third-party библиотеками?

Я пробовал несколько подходов - начиная от простого включения нужных файлов в разные шаблоны и заканчивая AMD решениями типа RequireJS. В первом случае не отслеживаются зависимости между модулями. Во втором случаются рандомные сбои при асинхронной загрузке модулей (руки вроде некривые и такая проблема далеко не у одного меня).

Где золотая середина? Как эту проблему решаете вы?
  • Вопрос задан
  • 3962 просмотра
Решения вопроса 1
Посмотрите на другие загрузчики. Мы вот тоже уже давно с этим столкнулись, и как говорится также создали своё решение IncludeJS. Плюс в том, что он загружает также стили и шаблон. Не требует конфигурационных файлов. Не требует специального обьявления модуля (загружает любые js, но поддерживает °exports). Поддерживает "кастомные загрузчики" .. вот Traceur Compiler Plugin. И потихоньку мигрируем все проэкты на ES6.
Документации мало, может будет сложно будет разобраться.

Есть другой ещё очень хороший загрузчик - LMD

Все они также могут собирать все ресурсы в одни файлы для релиза.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Sander_Li
@Sander_Li
Backend developer
Ответ написан
Комментировать
estum
@estum
Одна из многих проблем, изчезнувшая после перехода на CoffeeScript.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы