Projektowanie warstwy aplikacji mikrousług i internetowego interfejsu API
Napiwek
Ta zawartość jest fragmentem książki eBook, architektury mikrousług platformy .NET dla konteneryzowanych aplikacji platformy .NET dostępnych na platformie .NET Docs lub jako bezpłatnego pliku PDF, który można odczytać w trybie offline.
Używanie zasad SOLID i wstrzykiwania zależności
Zasady SOLID to krytyczne techniki, które mają być używane w dowolnej nowoczesnej i krytycznej aplikacji, takich jak tworzenie mikrousług za pomocą wzorców DDD. SOLID to skrót, który grupuje pięć podstawowych zasad:
Zasada o pojedynczej odpowiedzialności
Zasada otwierania/zamykania
Zasada podstawianie Liskov
Reguła segregacji interfejsu
Zasada inwersji zależności
Język SOLID zawiera więcej informacji na temat sposobu projektowania aplikacji lub warstw wewnętrznych mikrousług oraz o oddzieleniu zależności między nimi. Nie jest ona powiązana z domeną, ale z projektem technicznym aplikacji. Ostatnia zasada, zasada inwersji zależności, umożliwia oddzielenie warstwy infrastruktury od pozostałych warstw, co pozwala lepiej rozdzielić implementację warstw DDD.
Wstrzykiwanie zależności (DI) to jeden ze sposobów implementacji zasady inwersji zależności. Jest to technika osiągnięcia luźnego sprzężenia między obiektami i ich zależnościami. Zamiast bezpośrednio tworzyć wystąpienia współpracowników lub używać odwołań statycznych (czyli przy użyciu nowych...), obiekty, których klasa potrzebuje w celu wykonania jego akcji, są dostarczane do klasy (lub "wstrzykiwane do"). Najczęściej klasy deklarują swoje zależności za pośrednictwem konstruktora, co pozwala im przestrzegać reguły Jawne zależności. Wstrzykiwanie zależności jest zwykle oparte na określonych kontenerach Inversion of Control (IoC). ASP.NET Core udostępnia prosty wbudowany kontener IoC, ale możesz również użyć ulubionego kontenera IoC, takiego jak Autofac lub Ninject.
Postępując zgodnie z zasadami SOLID, klasy zwykle będą małe, dobrze uwzględniane i łatwo testowane. Ale jak można wiedzieć, czy do klas jest wstrzykiwanych zbyt wiele zależności? Jeśli używasz di za pomocą konstruktora, łatwo będzie to wykryć, patrząc tylko na liczbę parametrów konstruktora. Jeśli istnieje zbyt wiele zależności, jest to zazwyczaj znak ( zapach kodu), że klasa próbuje zrobić zbyt wiele i prawdopodobnie narusza zasadę o pojedynczej odpowiedzialności.
Zajmiemy się innym przewodnikiem, aby szczegółowo omówić solid. W związku z tym ten przewodnik wymaga posiadania tylko minimalnej wiedzy na temat tych tematów.
Dodatkowe zasoby
SOLID: Podstawowe zasady programowania obiektowego
https://deviq.com/solid/Inwersja kontenerów kontrolek i wzorzec wstrzykiwania zależności
https://martinfowler.com/articles/injection.htmlSteve Smith. Nowy jest klej
https://ardalis.com/new-is-glue