В чём отличие ПОДОБЛАСТИ от ОГРАНИЧЕННОГО КОНТЕКСТА?

Читаю книгу "Реализация методов предметно-ориентированного проектирования" Вон Вернон и не понимаю чем отличаются понятия подобласть и ограниченный контекст?

Сначала автор рисует запутанную схему, в которой одновременно фигурируют и ограниченные контексты и подобласти, при этом они ещё и взаимодействуют друг с другом, мало того, некоторые ограниченные контексты вмещают в себя несколько подобластей, и наоборот.

Дальше автор говорит, что вообще-то подобласть относится к пространству задач, а ограниченный контекст к пространству решений (реализации в коде) и упоминает, что хорошо когда

1 подобласть = 1 ограниченный контекст

но бывает иначе (как я описал выше).

Но как эти 2 понятия вообще могут пересекаться в контексте одного примера (схемы/диаграммы), если они из разных пространств?

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


Ответы (2 шт):

Автор решения: edem

Ответ на основе написанного в вопросе. Книгу не читал.

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

Обратим внимание на определение данных понятий:

подобласть относится к пространству задач, а ограниченный контекст к пространству решений (реализации в коде)

Отсюда получаем ответ про возможность их взаимодействия: у задач (подобласть) есть решения (ограниченный контекст).

Теперь по поводу того, кто что может в себя вмещать.

Одно и тоже решение, можно применять для разного рода задач, например способом грубой силы (подбор), и наоборот, разными способами можно решить одну задачу (привет Perl подход).

→ Ссылка
Автор решения: Mikhail Lazko

Подобласть это термин описывающий единицу деления предметной области в моделировании. И используется для разбиения вашей предметной области.

Ограниченный контекст эта техническая реализация подоблости. Например как отдельного приложения в проекте или как микросервиса. То есть по большому счету это одно и тоже только в разных предметных областях свои термин.

В моделирование говорим подобласть. В кодирование говорим ограниченный контекст.

Что касательно сотвествия подобластей и ограниченных контекстов. Тут как всегда нет серебрянной пули и поэтому автор дает рекомендацию 1 к 1, но бывают случаи когда конкретный заказчик в своем бизнесе требует сильной согласованности между данными и система должна следить за инвариантами между сущностями из двух разных подобластей. Тогда мы можем объеденить эти подобласти в один ограниченный контекст. Но в такой ситуации стоит внимательно проверять согласованность и конфлиты терминов единого языка для этих подобластей.

→ Ссылка