ODMA

Архитектура веб-проектов

← К концепции

Владельцы на backend

Владелец Ответственность
domains/business Возможности продукта, их данные и поведение
domains/system Identity, управляемый контент, файлы и настройки пользователя
infrastructure Конкретные адаптеры фреймворков и технологий
core Настройки, URL, регистрация приложений и композиция

Модели, сериализаторы, views, admin, CMS-плагины и тесты остаются у владельца поведения. Исполняемый код доменов и инфраструктуры получает настройки через django.conf.settings и не импортирует корень композиции. Общая инфраструктура не импортирует бизнес-владельцев: конкретные реализации связывает композиция приложения.

Владельцы на frontend

domains представляет возможности доменов вместе с их UI. primitives содержит узкие элементы интерфейса. widgets объединяет функциональные интерфейсы. pages владеет композицией страниц. app инициализирует и связывает приложение. infrastructure интегрирует маршрутизацию, транспорт и другие технологии.

Backend и frontend следуют одному принципу ownership, но не обязаны иметь одинаковые папки. У зависимости должны быть явные назначение и контракт. Перед изменением публичного контракта находим всех потребителей.

Развёртывание — отдельная ответственность

Сервисы владеют своими командами и health checks. Оркестратор приложения отвечает за порядок, готовность и распространение ошибок. Docker Compose управляет процессами и инфраструктурой. Identity развёртывается отдельно от приложения.