Udostępnij za pośrednictwem


Projektowanie warstwy aplikacji mikrousług i internetowego interfejsu API

Wskazówka

Ta treść jest fragmentem eBooka "Architektura mikrousług .NET dla konteneryzowanych aplikacji .NET", dostępnego na .NET Docs lub jako bezpłatny plik PDF do pobrania i czytania w trybie offline.

Miniatura okładki eBooka „Architektura mikrousług platformy .NET dla konteneryzowanych aplikacji platformy .NET”.

Użyj 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 podstawiania 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 new...), obiekty, których klasa potrzebuje do wykonania swoich działań, są dostarczane (lub "wstrzykiwane") do klasy. Najczęściej klasy deklarują swoje zależności za pośrednictwem konstruktora, co pozwala im przestrzegać zasady "Jawne zależności". Iniekcja zależności jest zwykle oparta na specyficznych kontenerach Inwersji Kontroli (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 będą naturalnie małe, właściwie wyodrębnione 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.

Potrzebny byłby osobny przewodnik, 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