Предположим, у меня есть интерфейс, который в основном представляет собой одностраничное приложение, написанное с использованием angular, grunt и bower. И предположим, у меня есть бэкэнд, который в основном представляет собой просто REST API, расположенный поверх ORM, который хранит / извлекает объекты из базы данных, используя такие вещи, как grunt, express и sequelize.
Angular-приложение выполняет все визуальные функции, которые видит пользователь, но делает это с помощью графического интерфейса пользователя по отношению к сервисам, предоставляемым серверной частью.
Было бы желательно разделить их на две разные кодовые базы, чтобы обеспечить независимую разработку, управление версиями, непрерывную интеграцию, продвижение в разработку и т. Д.
У меня вопрос, какие существуют методы для этого чисто? Есть ли рекомендуемые лучшие практики для полного стека javascript?
Вариант № 1 кажется монолитным, то есть «не разделяйте их». Преимущество состоит в том, что цепочка сборки проста, и все в одном месте, но, похоже, есть много минусов; Более сложная версия независимо, сломанный фронт означает неразвертываемую заднюю часть и так далее.
Вариант № 2 кажется квазимонолитом, в котором цепочка сборок внешнего интерфейса приводит к записи группы файлов на внутренний конец. dist
Каталог на переднем конце будет ссылаться на какой - нибудь каталог на спине конца, так , по существу , когда передний конец minifies, uglifies и т.д., он заканчивает публикацию к фоновым, который проходит все.
Вариант № 3 кажется полным разделением: каждый из фронт-энда и бэк-энда запускает свои собственные серверы на разных портах, и они являются полностью отдельными проектами. Недостаток кажется, что они должны быть настроены, чтобы знать о портах друг друга; внутренний интерфейс должен разрешать CORS от внешнего интерфейса, а внешний интерфейс должен знать, где ожидаются все эти конечные точки.
Вариант № 4 может заключаться в использовании чего-то вроде docker-compose для объединения всего этого.
Я уверен, что есть другие варианты. Какова рекомендуемая лучшая практика?