Как поддерживать модули, которые используются сразу в нескольких внешних приложениях?
Есть вебовское приложение A и оно использует модули M1, M2, M3. Все модули имеют четкое разграничение в виде API, и с технической точки зрения связей у внутренностей модуля никаких нет с внешним миром, эдакая обособленность. Звучит красиво!
Но тут такое дело.. Спустя время, пока все эти модули пообрастали, бизнес захотел теперь приложение B, немного напоминающее A. Приложению B понадобятся модули M1 и M2. Теперь у этих модулей получается появилась незримая логическая связь, ибо если для приложения B мы внесем некоторые изменения, то для приложения A это может выйти боком.
Притом завтра может появится приложение C и так далее. И людей из приложения C ничего не будет волновать, "хочем доп фичу такую-то в модуле M1 срочно".
Какой стратегии придерживаться разработчикам модулей для таких случаев?
Да, как вариант. Но у этих модулей допустим весомая часть будет похожа, и при внесении изменений в эту часть в одном модуле надо также будет поддержать и в другом. А модуль может быть разных размеров, это может быть целый сервис