Skip to content

Commit

Permalink
review
Browse files Browse the repository at this point in the history
  • Loading branch information
Stanislav Bolsun committed Dec 17, 2023
1 parent 3f330f7 commit 3f0d540
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions stanislav.bolsun/it/ddd/domain-model/domain-model-definition.rst
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,8 @@ Domain Model Definition
Классическая ошибка при моделировании ограниченного контекста заключается в том, что при неправильном понимании модели возникает желание "запихнуть" модель объекта моделирования в какой-то один ограниченный контекст.
Существует два самых неправильных вопроса - в какой ограниченный контекст поместить сущность и как мне получить из другого ограниченного контекста нужную сущность.

Моделирование ограниченного контекста - это не кройка. Плод, груз, ингредиент, блюдо - это все модели одного и того же объекта моделирования - огурца, только в разных ограниченных контекстах.
Моделирование ограниченного контекста - это не кройка.
Плод, груз, ингредиент, блюдо - это все модели одного и того же объекта моделирования - огурца, только в разных ограниченных контекстах.
Можно рассмотреть ограниченный контекст как одну из плоскостей додека‌эдра (когда один и тот же элемент виден под разными ракурсами), а не как фрагмент пазла (когда один элемент может принадлежать только одному фрагменту полотна).

Задача не в том, в какой ограниченный контекст "запихнуть", и не в том, как разрезать, а в том, какие именно аспекты поведения объекта моделирования релевантны в контексте решаемой проблемы.
Expand All @@ -458,7 +459,7 @@ Domain Model Definition
Ограниченный контекст и команды разработки
------------------------------------------

Для того чтобы реализовать модель, команда должна ее понимать, соответственно, набольшей эффективностью команда будет обладать тогда, когда граница ответственности команды совпадает с границей модели.
Для того чтобы реализовать доменную модель, команда должна ее понимать, соответственно, набольшей эффективностью команда будет обладать тогда, когда граница ответственности команды совпадает с границей модели.
Это и можно назвать границей автономности рабочей команды, что позволяет команде фокусироваться на решении конкретной задачи.
В ограниченном контексте команды модель обладает наибольшей внутренней связанностью (cohesion) и наименьшим сопряжением (coupling) с другими ограниченными контекстами.

Expand All @@ -471,7 +472,7 @@ Domain Model Definition

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

Таким образом, можно прийти к выводу, что ограниченный контекст помогает решить две проблемы:

Expand All @@ -484,10 +485,10 @@ Domain Model Definition
Краткие выводы:
---------------

1. чтобы описать проблему, нужно сначала принять какую-то модель, систему понятий (концептуальная (ментальная) модель)
2. далее, мы можем приступать к поиску решения в виде доменой модели и способах интеграции решения в новую реальность
1. чтобы осознать и описать проблему, нужно сначала принять какую-то модель, систему понятий (концептуальная модель)
2. далее, мы можем приступать к поиску решения, выражаемом в виде доменой модели и способах интеграции его в новую реальность
3. ограниченный контекст модели - это области применения модели в контексте решаемой проблемы ("заказ" для бухгалтера и "заказ" для повара имеют совершенно разные контексты и соотвествтенно это разные модели для разных задач)
4. в DDD концептуальная (ментальная) и доменная модель - сходятся, и выражаются через единый согласованный язык
4. в DDD концептуальная и доменная модели сходятся, и выражаются через единый (согласованный) язык



Expand Down

0 comments on commit 3f0d540

Please sign in to comment.