Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Sugestão
Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
Projete um modelo de domínio para cada microsserviço ou contexto delimitado que reflita a compreensão do domínio de negócios.
Esta seção se concentra em microsserviços mais avançados que você implementa quando precisa lidar com subsistemas complexos ou microsserviços derivados do conhecimento de especialistas em domínio com regras de negócios em constante mudança. Os padrões de arquitetura usados nesta seção são baseados em abordagens de design controlado por domínio (DDD) e CQRS (Command and Query Responsibility Segregation), conforme ilustrado na Figura 7-1.
Diferença entre arquitetura externa: padrões de microsserviços, gateways de API, comunicações resilientes, pub/sub, etc., e arquitetura interna: orientada por dados/CRUD, padrões DDD, injeção de dependência, múltiplas bibliotecas, etc.
Figura 7-1. Arquitetura de microsserviço externo versus padrões de arquitetura interna para cada microsserviço
No entanto, a maioria das técnicas para microsserviços orientados por dados, como implementar um serviço de API Web ASP.NET Core ou como expor metadados Swagger com Swashbuckle ou NSwag, também são aplicáveis aos microsserviços mais avançados implementados internamente com padrões DDD. Esta seção é uma extensão das seções anteriores, porque a maioria das práticas explicadas anteriormente também se aplicam aqui ou para qualquer tipo de microsserviço.
Esta seção primeiro fornece detalhes sobre os padrões CQRS simplificados usados no aplicativo de referência eShopOnContainers. Mais tarde, você terá uma visão geral das técnicas DDD que permitem encontrar padrões comuns que podem ser reutilizados em seus aplicativos.
DDD é um grande tópico com um rico conjunto de recursos para aprendizagem. Você pode começar com livros como Domain-Driven Design de Eric Evans e materiais adicionais de Vaughn Vernon, Jimmy Nilsson, Greg Young, Udi Dahan, Jimmy Bogard e muitos outros especialistas em DDD/CQRS. Mas, acima de tudo, você precisa tentar aprender a aplicar técnicas DDD das conversas, quadros brancos e sessões de modelagem de domínio com os especialistas em seu domínio de negócios concreto.
Recursos adicionais
DDD (DesignDomain-Driven)
Eric Evans. Língua de Domínio
https://domainlanguage.com/Martin Fowler. Design Domain-Driven
https://martinfowler.com/tags/domain%20driven%20design.htmlJimmy Bogard. Reforçar o seu domínio: um guia básico
https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-domain-a-primer/Webinar sobre Design Distribuído Domain-Driven
https://particular.net/webinars/ddd-design-no-nonsense-implementation-guide
Livros DDD
Eric Evans. Domain-Driven Design: Lidando com a complexidade no coração do software
https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/Eric Evans. Domain-Driven Referência de Design: Definições e Resumos de Padrões
https://www.amazon.com/Domain-Driven-Design-Reference-Definitions-2014-09-22/dp/B01N8YB4ZO/Vaughn Vernon. Implementação do Design Domain-Driven
https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577/Vaughn Vernon. Domain-Driven Design Destilado
https://www.amazon.com/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420/Jimmy Nilsson. Aplicando Domain-Driven Design e Padrões
https://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/César da Torre. Guia de arquitetura de Domain-Oriented em camadas com .NET
https://www.amazon.com/N-Layered-Domain-Oriented-Architecture-Guide-NET/dp/8493903612/Abel Avram e Floyd Marinescu. Domain-Driven Desenhe Rapidamente
https://www.amazon.com/Domain-Driven-Design-Quickly-Abel-Avram/dp/1411609255/Scott Millett, Nick Tune - Padrões, Princípios e Práticas de Design Domain-Driven
https://www.wiley.com/Patterns%2C+Principles%2C+and+Practices+of+Domain+Driven+Design-p-9781118714706
Formação DDD
- Julie Lerman e Steve Smith. Domain-Driven Fundamentos de Design
https://www.pluralsight.com/courses/fundamentals-domain-driven-design