Войти с помощью github
Форум /

Добрый день коллеги по цеху. Разрабатываю архитектуру крупного e-commerce проекта. Мне очень нравится декларативный подход БЭМ как идея, методология и подход к проектированию фронтенда со своей системой сборки. Вообще считаю что фронтенд должен быть полностью отделен от бэкенда, роль которого только заниматься доставкой "сырых" данных. А общаться фронт и бэк между собой должны по API. Следовательно получаем следующую архитектуру:

Все запросы через балансер распределяются на фронтенд кластер из nodejs серверов, которые в свою очередь являются неким прокси к кластеру из backend серверов, которые формируют bemjson-дерево из исходных данных в БД и отдает html

Но в реальном мире все немного по-другому. На бекенде будет использоваться готовая e-commerce платформа внутри которой тяжелое java enterprise приложение. Оно уже из коробки имеет свой встроенный шаблонизатор jsp. Его, конечно можно не использовать, но с одной стороны у бизнеса есть четкие сроки запуска проекта, с другой стороны у подрядчика есть опыт классического внедрения этой платформы с использованием шаблонизатора jsp и нет опыта проектов на БЭМ.

Собственно вопросы следующие:

1) Похвалите/раскритикуйте следующий план внедрения: На первом этапе сделать верстку и сборку бандлов по БЭМу и запихнуть все это в шаблонизатор jsp На втором этапе уже разделить полностью фронт и бэк, т.е. перейти на full stack bem

2) Как вы решаете вопросы хранения и обмена пользовательских сессий между фронтом и бэком? Например по адресу mysite.ru/catalog я хочу получить персонализированный список товаров и цен для конкретного авторизованного пользователя. В этом случае нода должна либо хранить сессию пользователя, либо каждый раз опрашивать бэк?

3) Вы делаете несколько репозиториев .git ? Один отдельно для фронта и второй для бекенда? Однако некоторые фичи требуют одновременно изменений фронта и бэка и следовательно должны релизится одновременно. В этом случае удобно все хранить в одном репо.

спасибо, всем b_