Раскладка кода по слоям: приложение целиком, фронт, бэк, шлюз, переиспользование и доступ.
BMAP — Base Multi Application Platform
Архитектура приложения целиком: репозиторий, в котором живут фронты (BMFP) и бэки (BMBP), и способ их сборки в один продукт. BMAP описывает только корни репозитория и границы между ними; внутреннее устройство — в BMFP, BMBP, BMGP.
4 минуты
BMBP — Base Multi Backend Platform
Архитектура бэкенда: сервиса, API, монолита или бэкенда для приложения, любого размера и для любого транспорта (синхронные запросы, события, реалтайм).
12 минут
BMFP — Base Multi Front Platform
Архитектура фронтенда: сайта, веб-приложения, UI десктоп-приложения, мини-аппа. Одна и та же раскладка слоёв работает для любого UI независимо от того, есть ли за ним бэкенд.
12 минут
BMGP — Base Multi Gateway Platform
Шлюз — реверс-прокси под конкретный фронт. Собирает в одно API ручки из нескольких бэков (BMBP), нужных этому фронту. Фронт ходит только в свой шлюз и не знает, сколько за ним бэков и какие они. Состав шлюза определяется со стороны фронта («какие ручки мне нужны»), не со стороны бэка («как я сгруппирован»). Один фронт — один шлюз.
5 минут
REUSE — конфлюэнтность и переиспользование
Один закон, работающий на всех уровнях гранулярности: то же, что делает хорошим коммит, делает хорошим модуль, компонент, движок и продукт. BM (BMFP / BMBP / BMAP) описывает один продукт изнутри. Этот документ — как единицы переиспользуются между продуктами и как это удерживается в git.
5 минут
Аутентификация и авторизация
Как система устанавливает, кто обращается, и как решает, что этому обратившемуся разрешено. Документ задаёт раскладку: какая проверка живёт в каком слое, какие бывают удостоверения и сколько живёт каждое, как устроен единый вход между несколькими сервисами, как выражается правило доступа, как выглядит отказ и как убедиться, что код этой раскладке отвечает.
33 минуты
Принципы разработки
Как мы строим всё. Коротко — чтобы пересказать своими словами; полно — чтобы закрывать споры. Это верхний слой; «как именно» — в спеках рядом: BMAP (приложение целиком), BMFP (фронт), BMBP (бэкенд), BMGP (шлюз), REUSE (переиспользование).