Я можу навести вам інший приклад. Подумайте, у вас є система електронної комерції. У вас є продукти, однак продукти будуть частиною принаймні двох різних доменів:
- Каталог товарів, де ви зберігаєте опис товару та всі атрибути
- Інвентар, де у вас запас товару
Якщо у вас є один обмежений контекст для обох доменів, ваше рішення може швидко стати великою кулькою грязі, оскільки ви почнете перехресно посилатися на нього. Зрештою у вас більше не буде двох доменів. Ваш товарний запас буде зіпсований посиланнями на каталог товарів і навпаки. В результаті цього ви не зможете змінити один домен, не торкаючись іншого, навіть ви повністю зрозумієте, що це не потрібно. Ваші моделі стають залежними один від одного і тісно з’єднуються, і погано залежать - залежать від впровадження.
Якщо у вас є два обмежених контексту, всі зміни, які ви робите в одному домені, не вплинуть на інший, як тільки ви очистите свої канали зв'язку. Це означає, що вам потрібно дублювати дані, але це найменші витрати, які потрібно заплатити за програму, що втрачає зв'язані компоненти. Ваші домени можуть спілкуватися один з одним за допомогою подій домену. Навіть якщо ви не плануєте на початку використовувати додаток на основі SOA, ви зможете наблизитись до цього рівня, коли вам потрібно з відносно невеликими зусиллями, оскільки ви просто поміняєте транспорт для подій свого домену, залишаючи ідею позаду.
Оновлення: Є хороший ефір вмінь на SkillsMatter від Еріка Еванса. Він дає аналогію старої історії, коли кілька сліпих людей описують слона з їхньої точки зору. Оскільки кожен чоловік може торкнутися лише частини слона, вони описують його як «дерево», «стіну», «змію», «мотузку». І кожен із цих людей має рацію в своєму контексті. Обмежений контекст - це те, де живе всюдисуща мова. Поза межами контексту ці терміни можуть мати зовсім інше значення, але всередині контексту мова є однаковою у багатьох областях. Грег Янг настійно пропонує почати читати блакитну книгу з глави 11, оскільки там пояснюються найважливіші, фундаментальні поняття. Зосередженість на тактичних зразках на початку книги робить цей підхід "світлом DDD" дуже поширеним,