Mogę dać ci inny przykład. Zastanów się, czy masz jakiś system e-commerce. Będziesz mieć tam produkty, jednak produkty będą należeć do co najmniej dwóch różnych domen:
- Katalog produktów, w którym przechowujesz opis produktu i wszystkie atrybuty
- Zapasy, w których masz poziom zapasów produktów
Jeśli masz jeden ograniczony kontekst dla obu domen, twoje rozwiązanie może szybko stać się wielką kulą błota, ponieważ zaczniesz odnosić się do niego. Na koniec nie będziesz już mieć dwóch domen. Twój spis produktów zostanie zepsuty z referencjami do katalogu produktów i odwrotnie. W rezultacie nie będziesz w stanie zmienić jednej domeny bez dotykania innej, nawet w pełni zdajesz sobie sprawę, że nie jest to wymagane. Twoje modele stają się od siebie zależne i ściśle powiązane, a także w zły sposób - zależne od implementacji.
Jeśli jednak masz dwa ograniczone konteksty, wszystkie zmiany dokonane w jednej domenie nie wpłyną na drugą, gdy tylko utrzymasz czyste kanały komunikacji. Oznacza to, że musisz mieć powielanie danych, ale jest to najmniejszy koszt płacenia za aplikację opartą na luźnych sprzężeniach. Twoje domeny mogą ze sobą rozmawiać za pomocą zdarzeń domenowych. Nawet jeśli na początku nie planujesz mieć aplikacji opartej na architekturze SOA, będziesz w stanie skalować się do tego poziomu, kiedy będziesz potrzebować przy stosunkowo niewielkim wysiłku, ponieważ po prostu zmienisz transport wydarzeń w domenie, pozostawiając ten pomysł bez zmian.
Aktualizacja: W SkillsMatter jest dobry przekaz umiejętności autorstwa Erica Evansa. Podaje analogię do starej historii, kiedy kilku niewidomych opisuje słonia z ich perspektywy. Ponieważ każdy człowiek może dotknąć tylko części słonia, opisują ją jako „drzewo”, „ścianę”, „węża”, „linę”. I każdy z tych ludzi ma rację w swoim kontekście. Ograniczony kontekst to miejsce, w którym żyje wszechobecny język. Poza kontekstem te terminy mogą mieć zupełnie inne znaczenie, ale w kontekście język jest taki sam w wielu domenach. Greg Young zdecydowanie zaleca rozpoczęcie czytania niebieskiej księgi z rozdziału 11, ponieważ tam wyjaśniono najważniejsze, podstawowe pojęcia. Skoncentrowanie się na wzorcach taktycznych na początku książki sprawia, że to podejście „DDD-light” jest bardzo powszechne,