Если принять во внимание Разделение интересов и Одиночная ответственность , то каждый модуль / компонент и т. Д. Должен нести ответственность за то, что он делает, и ничего больше.Разбейте свои модули, разделив их на небольшие, простые в управлении куски, которые выполняют свою работу и ничего более.
С точки зрения вашего JS-приложения вы можете взглянуть на некоторые клиентские MVC-инфраструктуры (такие как knockout,sproutcore, spine и т. д., и это лишь некоторые из них), эти платформы помогают логически отделить представления и макеты для контроллеров и моделей.Вам также может быть интересно использовать что-то вроде require.js для загрузки ваших модулей по мере необходимости.
Есть очень хорошая книга Алекса Маккоу , которую стоит прочитать.
MVC - это всего лишь один шаблон, но он очень популярен и решает некоторые из ваших проблем.
Удачи.