De microservicetoepassingslaag en web-API ontwerpen
Tip
Deze inhoud is een fragment uit het eBook, .NET Microservices Architecture for Containerized .NET Applications, beschikbaar op .NET Docs of als een gratis downloadbare PDF die offline kan worden gelezen.
SOLID-principes en afhankelijkheidsinjectie gebruiken
SOLID-principes zijn essentiële technieken die moeten worden gebruikt in elke moderne en bedrijfskritieke toepassing, zoals het ontwikkelen van een microservice met DDD-patronen. SOLID is een acroniem dat vijf fundamentele principes groepeert:
Principe van één verantwoordelijkheid
Open/gesloten principe
Liskov vervangingsprincipe
Scheidingsprincipe voor interface
Inversion-principe voor afhankelijkheden
SOLID gaat meer over het ontwerpen van uw toepassings- of microservice interne lagen en over het loskoppelen van afhankelijkheden tussen deze lagen. Het is niet gerelateerd aan het domein, maar aan het technische ontwerp van de toepassing. Met het laatste principe, het principe Dependency Inversion, kunt u de infrastructuurlaag loskoppelen van de rest van de lagen, waardoor een betere ontkoppelde implementatie van de DDD-lagen mogelijk is.
Afhankelijkheidsinjectie (DI) is een manier om het principe Dependency Inversion te implementeren. Het is een techniek voor het bereiken van losse koppeling tussen objecten en hun afhankelijkheden. In plaats van rechtstreeks samenwerkers te instantiëren of statische verwijzingen te gebruiken (met behulp van nieuwe...), worden de objecten die een klasse nodig heeft om de acties uit te voeren aan de klasse verstrekt (of 'geïnjecteerd in'). Meestal declareren klassen hun afhankelijkheden via hun constructor, zodat ze het principe Expliciete afhankelijkheden kunnen volgen. Afhankelijkheidsinjectie is meestal gebaseerd op specifieke IoC-containers (Inversion of Control). ASP.NET Core biedt een eenvoudige ingebouwde IoC-container, maar u kunt ook uw favoriete IoC-container gebruiken, zoals Autofac of Ninject.
Door de SOLID-principes te volgen, zijn uw klassen van nature klein, goed gefactoreerd en eenvoudig getest. Maar hoe weet u of er te veel afhankelijkheden worden geïnjecteerd in uw klassen? Als u DI via de constructor gebruikt, kunt u dat eenvoudig detecteren door alleen het aantal parameters voor uw constructor te bekijken. Als er te veel afhankelijkheden zijn, is dit over het algemeen een teken (een codegeur) dat uw klas te veel probeert te doen en waarschijnlijk het principe van één verantwoordelijkheid schendt.
Het zou een andere handleiding nodig hebben om SOLID in detail te behandelen. Daarom vereist deze handleiding dat u slechts een minimale kennis van deze onderwerpen hebt.
Aanvullende bronnen
SOLID: Fundamentele OOP-principes
https://deviq.com/solid/Inversie van besturingscontainers en het patroon Afhankelijkheidsinjectie
https://martinfowler.com/articles/injection.htmlSteve Smith. Nieuw is Lijm
https://ardalis.com/new-is-glue