Projetar a camada de aplicativo de microsserviço e a API da Web
Gorjeta
Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
Use princípios SOLID e injeção de dependência
Os princípios SOLID são técnicas críticas a serem usadas em qualquer aplicação moderna e de missão crítica, como o desenvolvimento de um microsserviço com padrões DDD. SOLID é um acrónimo que agrupa cinco princípios fundamentais:
Princípio da responsabilidade única
Princípio aberto/fechado
Princípio da substituição de Liskov
Princípio de segregação de interface
Princípio de inversão de dependência
SOLID é mais sobre como você projeta seu aplicativo ou camadas internas de microsserviço e sobre como dissociar dependências entre elas. Não está relacionado com o domínio, mas com a conceção técnica da aplicação. O princípio final, o princípio de Inversão de Dependência, permite dissociar a camada de infraestrutura do resto das camadas, o que permite uma melhor implementação dissociada das camadas DDD.
A Injeção de Dependência (DI) é uma maneira de implementar o princípio de Inversão de Dependência. É uma técnica para conseguir acoplamento solto entre objetos e suas dependências. Em vez de instanciar diretamente os colaboradores, ou usar referências estáticas (ou seja, usar novo...), os objetos que uma classe precisa para executar suas ações são fornecidos (ou "injetados em") a classe. Na maioria das vezes, as classes declaram suas dependências por meio de seu construtor, permitindo que sigam o princípio de Dependências Explícitas. A injeção de dependência é geralmente baseada em recipientes específicos de Inversão de Controle (IoC). ASP.NET Core fornece um contêiner IoC integrado simples, mas você também pode usar seu contêiner IoC favorito, como Autofac ou Ninject.
Ao seguir os princípios SOLID, suas aulas tenderão naturalmente a ser pequenas, bem fatoradas e facilmente testadas. Mas como saber se muitas dependências estão sendo injetadas em suas aulas? Se você usar DI através do construtor, será fácil detetar isso apenas olhando para o número de parâmetros para o seu construtor. Se houver muitas dependências, isso geralmente é um sinal (um cheiro de código) de que sua classe está tentando fazer muito, e provavelmente está violando o princípio da Responsabilidade Única.
Seria necessário outro guia para cobrir o SOLID em detalhes. Portanto, este guia exige que você tenha apenas um conhecimento mínimo desses tópicos.
Recursos adicionais
SOLID: Princípios Fundamentais de OOP
https://deviq.com/solid/Inversão de contêineres de controle e o padrão de injeção de dependência
https://martinfowler.com/articles/injection.htmlSteve Silva. Novo é Cola
https://ardalis.com/new-is-glue