From 3f0d54055024c45f3476f7ef39bad8ebeac9cfe4 Mon Sep 17 00:00:00 2001 From: Stanislav Bolsun Date: Sun, 17 Dec 2023 22:06:17 +0100 Subject: [PATCH] review --- .../it/ddd/domain-model/domain-model-definition.rst | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/stanislav.bolsun/it/ddd/domain-model/domain-model-definition.rst b/stanislav.bolsun/it/ddd/domain-model/domain-model-definition.rst index 98bd0a07..54cb1ed9 100644 --- a/stanislav.bolsun/it/ddd/domain-model/domain-model-definition.rst +++ b/stanislav.bolsun/it/ddd/domain-model/domain-model-definition.rst @@ -431,7 +431,8 @@ Domain Model Definition Классическая ошибка при моделировании ограниченного контекста заключается в том, что при неправильном понимании модели возникает желание "запихнуть" модель объекта моделирования в какой-то один ограниченный контекст. Существует два самых неправильных вопроса - в какой ограниченный контекст поместить сущность и как мне получить из другого ограниченного контекста нужную сущность. -Моделирование ограниченного контекста - это не кройка. Плод, груз, ингредиент, блюдо - это все модели одного и того же объекта моделирования - огурца, только в разных ограниченных контекстах. +Моделирование ограниченного контекста - это не кройка. +Плод, груз, ингредиент, блюдо - это все модели одного и того же объекта моделирования - огурца, только в разных ограниченных контекстах. Можно рассмотреть ограниченный контекст как одну из плоскостей додека‌эдра (когда один и тот же элемент виден под разными ракурсами), а не как фрагмент пазла (когда один элемент может принадлежать только одному фрагменту полотна). Задача не в том, в какой ограниченный контекст "запихнуть", и не в том, как разрезать, а в том, какие именно аспекты поведения объекта моделирования релевантны в контексте решаемой проблемы. @@ -458,7 +459,7 @@ Domain Model Definition Ограниченный контекст и команды разработки ------------------------------------------ -Для того чтобы реализовать модель, команда должна ее понимать, соответственно, набольшей эффективностью команда будет обладать тогда, когда граница ответственности команды совпадает с границей модели. +Для того чтобы реализовать доменную модель, команда должна ее понимать, соответственно, набольшей эффективностью команда будет обладать тогда, когда граница ответственности команды совпадает с границей модели. Это и можно назвать границей автономности рабочей команды, что позволяет команде фокусироваться на решении конкретной задачи. В ограниченном контексте команды модель обладает наибольшей внутренней связанностью (cohesion) и наименьшим сопряжением (coupling) с другими ограниченными контекстами. @@ -471,7 +472,7 @@ Domain Model Definition Если же модель поделить неправильно, допустим, разрезать полноценную модель на две разные части, то резко возрастет количество коммуникационных путей между командами (для сохранения и поддержки инвариантов модели), и этим мы ухудшаем параллелизм задач. Аналогично, если свалим в один ограниченный контекст две модели которые служат двум разным целям, то мы увеличим когнитивную нагрузку команды (путем введения информации нерелеватной в момент рассмотрения, тем самым отнимая когнитивные ресурсы у человека). -И чтобы достичь наибольшего уровня автономности команд, обеспечить их независимость друг от друга нужно правильно определить ограниченные контексты. +И чтобы достичь наибольшего уровня автономности команд, обеспечить их независимость друг от друга нужно правильно определить и распределить ограниченные контексты. Таким образом, можно прийти к выводу, что ограниченный контекст помогает решить две проблемы: @@ -484,10 +485,10 @@ Domain Model Definition Краткие выводы: --------------- -1. чтобы описать проблему, нужно сначала принять какую-то модель, систему понятий (концептуальная (ментальная) модель) -2. далее, мы можем приступать к поиску решения в виде доменой модели и способах интеграции решения в новую реальность +1. чтобы осознать и описать проблему, нужно сначала принять какую-то модель, систему понятий (концептуальная модель) +2. далее, мы можем приступать к поиску решения, выражаемом в виде доменой модели и способах интеграции его в новую реальность 3. ограниченный контекст модели - это области применения модели в контексте решаемой проблемы ("заказ" для бухгалтера и "заказ" для повара имеют совершенно разные контексты и соотвествтенно это разные модели для разных задач) -4. в DDD концептуальная (ментальная) и доменная модель - сходятся, и выражаются через единый согласованный язык +4. в DDD концептуальная и доменная модели сходятся, и выражаются через единый (согласованный) язык