Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Návod
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é lze číst offline.
Navrhujte model 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é od znalostí odborníků na domény s neustále se měnícími obchodními pravidly. Vzory architektury používané v této části vycházejí z přístupů založených na návrhu řízeném doménou (DDD) a přístupu k 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 driven/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, jako je například implementace služby webového rozhraní API ASP.NET Core nebo zpřístupnění metadat Swaggeru pomocí Swashbuckle nebo NSwag, se ale vztahují také na pokročilejší mikroslužby implementované interně pomocí vzorů DDD. Tato část je rozšířením předchozích částí, protože většina dříve vysvětlených postupů 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 ve svých aplikacích opakovaně používat.
DDD je velké téma s bohatou sadou materiálů pro výuku. Můžete začít s knihami, jako je Domain-Driven Design od Erica Evanse, a dalšími materiály od Vaughna Vernona, Jimmyho Nilssona, Grega Younga, Udiho Dahana, Jimmyho Bogarda a mnoha dalších odborníků na DDD/CQRS. Především se musíte pokusit naučit se používat techniky DDD z konverzací, používání pracovní tabule a sezení k modelování domén s odborníky ve vaší konkrétní obchodní oblasti.
Dodatečné zdroje
DDD (NávrhDomain-Driven)
Eric Evans. Doménový jazyk
https://domainlanguage.com/Martin Fowler. Domain-Driven návrh
https://martinfowler.com/tags/domain%20driven%20design.htmlJimmy Bogard. Posílení vaší domény: primer
https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/Webinář o distribuovaném návrhu Domain-Driven
https://particular.net/webinars/ddd-design-no-nonsense-implementation-guide
Knihy DDD
Eric Evans. Domain-Driven návrh: řešení složitosti v srdci softwaru
https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/Eric Evans. referenční dokumentace 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 Destilovaný Design
https://www.amazon.com/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420/Jimmy Nilsson. Použití návrhu a vzorů Domain-Driven
https://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/Cesar de la Torre. Průvodce vícevrstvou architekturou Domain-Oriented s .NET
https://www.amazon.com/N-Layered-Domain-Oriented-Architecture-Guide-NET/dp/8493903612/Abel Avram a Floyd Marinescu. Rychlý návrh Domain-Driven
https://www.amazon.com/Domain-Driven-Design-Quickly-Abel-Avram/dp/1411609255/Scott Millett, Nick Tune – vzory, principy a postupy návrhu Domain-Driven
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://www.pluralsight.com/courses/fundamentals-domain-driven-design