Dela via


Hantera affärskomplexitet i en mikrotjänst med DDD- och CQRS-mönster

Tips/Råd

Det här innehållet är ett utdrag från eBook, .NET Microservices Architecture for Containerized .NET Applications, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.

Miniatyrbild av omslag för eBooken om .NET mikroservicearkitektur för containerbaserade .NET-applikationer.

Utforma en domänmodell för varje mikrotjänst eller begränsad kontext som återspeglar förståelsen för affärsdomänen.

Det här avsnittet fokuserar på mer avancerade mikrotjänster som du implementerar när du behöver hantera komplexa undersystem eller mikrotjänster som härleds från kunskapen hos domänexperter med ständigt föränderliga affärsregler. Arkitekturmönstren som används i det här avsnittet baseras på domändriven design (DDD) och CQRS-metoder (Command and Query Responsibility Segregation), enligt bild 7-1.

Diagram som jämför externa och interna arkitekturmönster.

Skillnad mellan extern arkitektur: mikrotjänstmönster, API-gatewayer, elastisk kommunikation, pub/sub osv. och intern arkitektur: datadriven/CRUD, DDD-mönster, beroendeinmatning, flera bibliotek osv.

Bild 7-1. Extern mikrotjänstarkitektur jämfört med interna arkitekturmönster för varje mikrotjänst

De flesta tekniker för datadrivna mikrotjänster, till exempel hur du implementerar en ASP.NET Core Web API-tjänst eller hur du exponerar Swagger-metadata med Swashbuckle eller NSwag, gäller dock även för de mer avancerade mikrotjänster som implementeras internt med DDD-mönster. Det här avsnittet är en förlängning av föregående avsnitt, eftersom de flesta av de metoder som beskrivs tidigare också gäller här eller för någon form av mikrotjänst.

Det här avsnittet innehåller först information om de förenklade CQRS-mönster som används i referensprogrammet eShopOnContainers. Senare får du en översikt över de DDD-tekniker som gör att du kan hitta vanliga mönster som du kan återanvända i dina program.

DDD är ett stort ämne med en omfattande uppsättning resurser för inlärning. Du kan börja med böcker som Domain-Driven Design av Eric Evans och ytterligare material från Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard och många andra DDD/CQRS-experter. Men mest av allt behöver du försöka lära dig hur du använder DDD-tekniker från konversationer, whiteboarding och domänmodelleringssessioner med experterna i din konkreta affärsdomän.

Ytterligare resurser

DDD (Domain-Driven Design)
DDD-böcker
DDD-utbildning