Utforma mikrotjänstprogramskiktet och webb-API:et

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.

Använd SOLID-principerna och Dependency Injection

SOLID-principer är viktiga tekniker som ska användas i alla moderna och verksamhetskritiska program, till exempel att utveckla en mikrotjänst med DDD-mönster. SOLID är en akronym som grupperar fem grundläggande principer:

  • Princip för enskilt ansvar

  • Principen om öppenhet/stängdhet

  • Liskovs ersättningsprincip

  • Gränssnittsavgränsningsprincip

  • Principen om inversion av beroenden

SOLID handlar mer om hur du utformar dina interna lager för program eller mikrotjänster och om att koppla bort beroenden mellan dem. Det är inte relaterat till domänen, utan till programmets tekniska design. Med den sista principen, principen beroendeinversion, kan du frikoppla infrastrukturlagret från resten av lagren, vilket möjliggör en bättre frikopplad implementering av DDD-lagren.

Beroendeinmatning (DI) är ett sätt att implementera principen för beroendeinversion. Det är en teknik för att uppnå lös koppling mellan objekt och deras beroenden. I stället för att direkt instansiera medarbetare eller använda statiska referenser (dvs. med nya...) tillhandahålls de objekt som en klass behöver för att utföra sina åtgärder till (eller "matas in i") klassen. Oftast deklarerar klasser sina beroenden via konstruktorn, så att de kan följa principen explicita beroenden. Beroendeinmatning baseras vanligtvis på specifika IoC-containrar (Inversion of Control). ASP.NET Core har en enkel inbyggd IoC-container, men du kan också använda din favorit-IoC-container, till exempel Autofac eller Ninject.

Genom att följa SOLID-principerna kommer dina klasser naturligt att vara små, välstrukturerade och lätttestade. Men hur vet du om för många beroenden matas in i dina klasser? Om du använder DI via konstruktorn blir det enkelt att identifiera det genom att bara titta på antalet parametrar för konstruktorn. Om det finns för många beroenden är detta i allmänhet ett tecken (en kodlukt) på att din klass försöker göra för mycket och förmodligen bryter mot principen för enskilt ansvar.

Det skulle krävas en annan guide för att täcka SOLID i detalj. Därför kräver den här guiden att du bara har en minsta kunskap om dessa ämnen.

Ytterligare resurser