Zvládnutí firemní složitosti v mikroslužbě pomocí vzorů DDD a CQRS
Tip
Tento obsah je výňatek z eBooku, architektury mikroslužeb .NET pro kontejnerizované aplikace .NET, které jsou k dispozici na .NET Docs nebo jako zdarma ke stažení PDF, které je možné číst offline.
Návrh modelu domény pro každou mikroslužbu nebo ohraničený kontext, který odráží pochopení obchodní domény.
Tato část se zaměřuje na pokročilejší mikroslužby, které implementujete, když potřebujete řešit složité subsystémy nebo mikroslužby odvozené ze znalostí odborníků na doménu s neustále měnícími se obchodními pravidly. Vzory architektury používané v této části jsou založené na přístupu k návrhu řízenému doménou (DDD) a oddělení odpovědnosti příkazů a dotazů (CQRS), jak je znázorněno na obrázku 7-1.
Rozdíl mezi externí architekturou: vzory mikroslužeb, brány rozhraní API, odolná komunikace, pub/sub atd. a interní architektura: data řízená daty/CRUD, vzory DDD, injektáž závislostí, více knihoven atd.
Obrázek 7-1 Architektura externích mikroslužeb versus vzory interní architektury pro každou mikroslužbu
Většina technik mikroslužeb řízených daty, například jak implementovat službu webového rozhraní API ASP.NET Core nebo jak zpřístupnit metadata Swaggeru pomocí Swashbuckle nebo NSwag, se také vztahují k pokročilejším mikroslužbám implementovaným interně se vzory DDD. Tato část je rozšířením předchozích částí, protože většina postupů popsaných dříve platí také zde nebo pro jakýkoli druh mikroslužby.
Tato část nejprve obsahuje podrobnosti o zjednodušených vzorech CQRS používaných v referenční aplikaci eShopOnContainers. Později získáte přehled technik DDD, které vám umožní najít běžné vzory, které můžete v aplikacích opakovaně používat.
DDD je rozsáhlé téma s bohatou sadou zdrojů pro výuku. Můžete začít s knihami, jako je Domain-Driven Design eric Evans a další materiály od Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard a mnoho dalších odborníků na DDD/CQRS. Ale většina z vás se snaží naučit používat techniky DDD z konverzací, tabulí a relací modelování domén s odborníky ve vaší konkrétní obchodní doméně.
Další materiály
DDD (návrh řízený doménou)
Eric Evans. Jazyk domény
https://domainlanguage.com/Martin Fowler. návrh Domain-Driven
https://martinfowler.com/tags/domain%20driven%20design.htmlJimmy Bogard. Posílení domény: primer
https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/
Knihy DDD
Eric Evans. návrh Domain-Driven: Řešení složitosti v srdci softwaru
https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/Eric Evans. referenční informace k návrhu Domain-Driven: Definice a souhrny vzorů
https://www.amazon.com/Domain-Driven-Design-Reference-Definitions-2014-09-22/dp/B01N8YB4ZO/Vaughn Vernon. Implementace návrhu Domain-Driven
https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577/Vaughn Vernon. Domain-Driven design destilovaný
https://www.amazon.com/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420/Jimmy Nilsson. Použití Domain-Driven návrhu a vzorů
https://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/Cesar de la Torre. Průvodce architekturou Domain-Oriented s n-vrstvou Domain-Oriented s .NET
https://www.amazon.com/N-Layered-Domain-Oriented-Architecture-Guide-NET/dp/8493903612/Abel Avram a Floyd Marinescu. Domain-Driven návrh rychle
https://www.amazon.com/Domain-Driven-Design-Quickly-Abel-Avram/dp/1411609255/Scott Millett, Nick Tune – vzory, principy a postupy Domain-Driven návrhu
https://www.wiley.com/Patterns%2C+Principles%2C+and+Practices+of+Domain+Driven+Design-p-9781118714706
Trénování DDD
- Julie Lermanová a Steve Smithová. základy návrhu Domain-Driven
https://bit.ly/PS-DDD