записан подход к проектированию: чистая архитектура и тактические шаблоны DDD
- architecture.md: раздел «Слои и модель домена» — таблица слоёв с колонкой «чего не знает», шаблоны со своим сегодняшним предметом в коде, запрет анемичной модели - CLAUDE.md: раздел «Проектирование» с подходом и ссылкой на раздел архитектуры - названо, что чистоту домена не держит ни одно правило archrules
This commit is contained in:
@@ -32,6 +32,23 @@ Storage, gRPC-клиент Yandex SpeechKit v3, Prometheus, `slog`. Прилож
|
||||
его Biome и юнит-тесты Vue. Сборка —
|
||||
Taskfile, образ — Docker, выкладка — Ansible из `pet-project-server`.
|
||||
|
||||
## Проектирование
|
||||
|
||||
**Чистая архитектура.** Зависимости направлены внутрь, к домену: домен не знает
|
||||
ни хранилища, ни транспорта, знание о внешнем мире приходит интерфейсом порта, а
|
||||
реализацию подставляет точка входа. Направления держат тесты-сканеры
|
||||
`internal/archrules`, а не договорённость.
|
||||
|
||||
**Модель домена ведётся тактическими шаблонами DDD** — сущность и корень
|
||||
агрегата, объект-значение, доменное событие, репозиторий, служба домена,
|
||||
фабрика. Анемичной модели не заводим: поведение записи живёт в домене, а
|
||||
прикладной слой назначает порядок шагов, а не правила.
|
||||
|
||||
Слои, их дома, что каждому знать нельзя и чем шаблон занят сегодня —
|
||||
[docs/architecture.md](docs/architecture.md), «Слои и модель домена». Здесь это
|
||||
не повторяется: перечень растёт вместе с моделью, и вторая копия разошлась бы с
|
||||
ним молча.
|
||||
|
||||
## Инварианты
|
||||
|
||||
Что нарушать нельзя.
|
||||
|
||||
Reference in New Issue
Block a user