TGViewer
GetAnalyst - Навыки • Системный анализ • Бизнес-анализ GetAnalyst - Навыки • Системный анализ • Бизнес-анализ @getanalysts · 22.6K subscribers
Post #2637 5.09K
🟠 Domain-Driven Design (DDD): что это и зачем, разбор с примерами 🟠

При работе с крупными системами на этапе проектирования легко утонуть в сотнях бизнес-требований, бизнес-правил и интеграций.

В таких ситуациях на помощь приходит Domain-Driven Design (DDD).

📌 DDD
— подход, при котором мы проектируем систему, отталкиваясь от предметной области и понимания языка бизнеса, а не от технических деталей и функциональных требований.


Ключевое:

✅ Единый язык (Ubiquitous Language)
Договариваемся, что бизнес и разработчики используют одинаковые слова, и понимают их одинаково.

Например, в системе парковок:
“Сессия” = время от въезда до выезда
“Льготный клиент” = владелец абонемента или спец. допуска


Результат — меньше путаницы в ТЗ, коде и общении.


✅ Ограниченные контексты (Bounded Context)
Делим большую систему на зоны, внутри которых термины и правила работают одинаково, а за их пределами — могут отличаться.

В системе для парковок мы понимаем, что у нас могут быть большие части:

+ Контроль доступа (камеры, шлагбаумы, проверка разрешений)
+ Платежи (расчёт тарифа, оплата, возвраты)
+ Учёт мест (свободно/занято, бронирования)

Внутри каждой части свои правила и детали, которые не мешают остальным.



💡 Важный момент:
Один Bounded Context ≠ всегда один микросервис.


Это логическая граница. Внутри неё может быть один сервис, несколько микросервисов или модуль монолита.

Но при переходе к MSA часто делают так, что каждый контекст превращается в один или несколько микросервисов.



✅ Модель предметной области (Domain Model)

Это карта всех объектов системы и их правил — в коде, БД, API.

Для системы парковки это может быть:

+ Сущности:
++ ParkingSession: начало, конец, тариф, сумма, статус оплаты.
++ Vehicle: номер, тип, льготы.
++ Spot: зона, номер, статус.

+ Правила:
++ без оплаты выезд запрещён, кроме льготных клиентов;
++ место освобождается только после закрытия сессии парковки.




👉 DDD помогает навести порядок в сложном проекте:

+ общий словарь → меньше недопонимания

+ границы контекстов → управляемая архитектура (и потенциальная основа для микросервисов)

+ модель предметной области → понятный “скелет” системы

Кроме того, что мы наводим порядок, очень часто удаётся закрыть множество пробелов в требованиях при таком подходе.


Если начать проект с этих трёх шагов, то даже самая запутанная система будет спроектирована логично и её развитие будет (без) с меньшим количеством сюрпризов.


#АрхитектураGA #ParkingGA
  • ❤ 31
  • 👏 6
  • ❤‍🔥 5
More from @getanalysts
  1. Oct 13, 2026❌🙅‍♀️🙅‍♂️ Что системному аналитику НЕ нужно уметь в работе с логированием и мониторингом…
  2. Oct 12, 2026📊🔥 Grafana, Kibana, OpenTelemetry: какие инструменты наблюдаемости нужны системному анал…
  3. Oct 11, 2026Мы так заняты тем, что ещё не получилось, что забываем радоваться тому, как далеко уже заш…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →