Rozwiązywanie problemów ze złożonościami biznesowymi w mikrousłudze z wzorcami DDD i CQRS

Porada

Ta zawartość jest fragmentem książki eBook, architektury mikrousług platformy .NET dla konteneryzowanych aplikacji platformy .NET, dostępnej na platformie .NET Docs lub jako bezpłatnego pliku PDF z możliwością pobrania, który można odczytać w trybie offline.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

Zaprojektuj model domeny dla każdej mikrousługi lub kontekstu ograniczonego, który odzwierciedla zrozumienie domeny biznesowej.

Ta sekcja koncentruje się na bardziej zaawansowanych mikrousługach implementujących, gdy trzeba radzić sobie ze złożonymi podsystemami lub mikrousługami pochodzącymi z wiedzy ekspertów z dziedziny z ciągle zmieniającymi się regułami biznesowymi. Wzorce architektury używane w tej sekcji są oparte na projektach opartych na domenie (DDD) i podejściach podziału odpowiedzialności zapytań i poleceń (CQRS), jak pokazano na rysunku 7-1.

Diagram comparing external and internal architecture patterns.

Różnica między architekturą zewnętrzną: wzorce mikrousług, bramy interfejsu API, odporna komunikacja, pub/sub itp., i architektura wewnętrzna: oparte na danych/CRUD, wzorce DDD, wstrzykiwanie zależności, wiele bibliotek itp.

Rysunek 7–1. Zewnętrzna architektura mikrousług a wzorce architektury wewnętrznej dla każdej mikrousługi

Jednak większość technik mikrousług opartych na danych, takich jak implementowanie usługi internetowego interfejsu API ASP.NET Core lub jak uwidocznić metadane struktury Swagger za pomocą struktury Swashbuckle lub NSwag, mają również zastosowanie do bardziej zaawansowanych mikrousług zaimplementowanych wewnętrznie przy użyciu wzorców DDD. Ta sekcja jest rozszerzeniem poprzednich sekcji, ponieważ większość opisanych wcześniej praktyk ma zastosowanie również tutaj lub dla dowolnego rodzaju mikrousługi.

Ta sekcja zawiera szczegółowe informacje na temat uproszczonych wzorców CQRS używanych w aplikacji referencyjnej eShopOnContainers. Później poznasz techniki DDD, które umożliwiają znalezienie typowych wzorców, które można ponownie użyć w aplikacjach.

DDD to duży temat z bogatym zestawem zasobów do nauki. Możesz zacząć od książek, takich jak Domain-Driven Design eric Evans i dodatkowe materiały od Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard i wielu innych ekspertów DDD/CQRS. Ale przede wszystkim musisz spróbować dowiedzieć się, jak zastosować techniki DDD z konwersacji, tablic i modelowania domeny z ekspertami w danej domenie biznesowej.

Dodatkowe zasoby

DDD (projekt oparty na domenie)
Książki DDD
Trenowanie DDD