Condividi tramite


Progettare il livello dell'applicazione microservizio e l'API Web

Suggerimento

Questo contenuto è un estratto dell'eBook, Architettura di microservizi .NET per applicazioni .NET containerizzati, disponibile in documentazione .NET o come PDF scaricabile gratuitamente leggibile offline.

Architettura di Microservizi .NET per Applicazioni .NET Containerizzate miniatura della copertina dell'eBook.

Usare i principi SOLID e l'iniezione delle dipendenze

I principi SOLID sono tecniche critiche da usare in qualsiasi applicazione moderna e mission-critical, ad esempio lo sviluppo di un microservizio con modelli DDD. SOLID è un acronimo che raggruppa cinque principi fondamentali:

  • Principio di responsabilità singola

  • Principio aperto/chiuso

  • Principio di sostituzione Liskov

  • Principio di separazione dell'interfaccia

  • Principio di inversione delle dipendenze

SOLID è molto altro su come progettare i livelli interni dell'applicazione o del microservizio e sulla disaccoppiamento delle dipendenze tra di esse. Non è correlato al dominio, ma alla progettazione tecnica dell'applicazione. Il principio finale, il principio di inversione delle dipendenze, consente di separare il livello di infrastruttura dal resto dei livelli, che consente un'implementazione migliore disaccoppiata dei livelli DDD.

Dependency Injection è un modo per implementare il principio di inversione delle dipendenze. Si tratta di una tecnica per ottenere un accoppiamento libero tra gli oggetti e le relative dipendenze. Invece di creare direttamente un'istanza dei collaboratori o di usare riferimenti statici (ovvero usando new...), gli oggetti necessari a una classe per eseguire le azioni vengono forniti (o "iniettati") alla classe. Nella maggior parte dei casi, le classi dichiarano le relative dipendenze tramite il relativo costruttore, consentendo loro di seguire il principio delle dipendenze esplicite. L'iniezione delle dipendenze si basa solitamente su contenitori specifici di Inversione del Controllo (IoC). ASP.NET Core offre un semplice contenitore IoC predefinito, ma è anche possibile usare il contenitore IoC preferito, ad esempio Autofac o Ninject.

Seguendo i principi SOLID, le classi tendono naturalmente a essere piccole, ben fattoriate e facilmente testate. Ma come è possibile sapere se troppe dipendenze vengono inserite nelle classi? Se si usa l'inserimento delle dipendenze tramite il costruttore, sarà facile rilevarlo esaminando semplicemente il numero di parametri per il costruttore. Se ci sono troppe dipendenze, questo è in genere un segno (un odore di codice) che la classe sta tentando di fare troppo, e probabilmente viola il principio di responsabilità singola.

Ci vorrebbe un'altra guida per coprire SOLID in dettaglio. Pertanto, questa guida richiede di avere solo una conoscenza minima di questi argomenti.

Risorse aggiuntive