Po około miesiącu czytania i poszukiwania DDD postanowiłem rozpocząć własny projekt i stworzyłem DDD z tymi ograniczonymi kontekstami>
- Klienci
- Produkty
- Zamówienia
- Dane do faktury
Każdy ograniczony kontekst ma spoczynkowy interfejs API jako warstwę prezentacji, warstwę domeny, warstwę trwałą.
Jak na razie kod działa płynnie, ale pochodząc ze świata monolitycznego, wciąż próbuję wymyślić, co następuje:
- kiedy chcę utworzyć nowego klienta, wystawić nową fakturę, utworzyć nowe zamówienie Chcę na przykład uzyskać dostęp do listy krajów. Czy ja:
a) utwórz listę krajów w każdym BC
b) utwórz interfejs API BC -> Kraje i użyj go, aby uzyskać listę dostępnych krajów
c) używać interfejsu API innej firmy i pobierać dane przez warstwę antykorupcyjną w każdym BC
- jakie dane muszą być uwzględnione w moim modelu domeny podczas integracji z interfejsem API innej firmy przy użyciu warstwy antykorupcyjnej lub warstwy adaptera? Na przykład, jeśli chcę zintegrować API zendesk z Client BC. Czy potrzebuję tylko identyfikatora biletu w mojej domenie, czy też muszę wyodrębnić wszystkie dane z Zendesk, do których chcę uzyskać dostęp i których używam w kliencie BC?
Jeśli moja aplikacja MVC faktycznie pobiera dane z interfejsów API (warstw prezentacji moich ograniczonych kontekstów), bardzo trudno jest wyraźnie zdefiniować granice każdego BC. Czy to oznacza, że odpowiednio zaprojektowany BC będzie obsługiwał pojedynczy kontroler MVC bez potrzeby korzystania z dodatkowych interfejsów API?