Задать вопрос
@gav_andrei

Как правильно организовать общение между модулями js с помощью событий?

Есть некая архитектура js приложения, основанная на независимых модулях.
Каждый модуль не знает о существовании другого и может быть изъят из приложения без каких-либо проблем.

Модули общаются между собой с помощью событий.

Вопрос в следующем:
Какой из двух ниже описанных принципов правильнее использовать для организации общения с помощью событий или может есть другие альтернативы?

Первый принцип:
Первый модуль слушает собственные события, вызов которых изменяет состояние модуля. Сколько есть возможных манипуляций с модулем, столько и событий, эти события относятся только к этому модулю.
Другие модули вызывают события первого модуля.
Проблемы/сомнения:
Если я извлеку модуль из системы, то другие модули не перестанут вызывать связанные с ним события, создавая "фоновый шум", который при отладке будет мешать понять что вызывается и кто отслеживает.
События могут вызываться в любом месте модуля, что затруднит очистку от них.
Преимущества:
Если необходимо произвести манипуляцию с другим модулем мы просто вызываем нужное событие и все.

Второй принцип:
Модули слушают все необходимые события других модулей и по их возникновению выполняют нужные действия внутри себя. Также издают собственные события по факту изменений своего состояния.
Проблемы/сомнения:
Код модуля растет, т.к. нужно постоянно дописывать обработчики событий, генерируемых другими модулями.
Преимущества:
При удалении модуля не остается никаких событий, связанных с ним.
Все обработчики событий собраны в одном месте в модуле и их легко почистить от отслеживания устаревших событий.
  • Вопрос задан
  • 2744 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Вот это не про вашу ситуацию?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@gav_andrei Автор вопроса
Я читал данный материал, но в текущей реализации приложения нет медиатра и фасада, есть песочница, которая инициализирует все необходимые модули и на этом ее роль заканчивается. Песочниц может быть несколько, в зависимости от клиента, к примеру для мобильных клиентов инициализируются не все модули из основного функционала, плюс ряд дополнительных.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
OfferCase Москва
от 400 000 ₽
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
Future Москва
от 50 000 до 70 000 ₽