Domain Driven Design
Created @January 29, 2024 7:08 AM
Class Arquitetura de Sistemas
Type Aula
Finished
Domain-Driven Design (DDD) é uma abordagem de design de software que se
concentra na modelagem do domínio do negócio para criar sistemas mais eficientes e
eficazes. Foi introduzido por Eric Evans em seu livro "Domain-Driven Design: Tackling
Complexity in the Heart of Software" (Design Orientado a Domínio: Lidando com
Complexidade no Coração do Software).
A ideia central do DDD é que a complexidade inerente aos sistemas de software está
principalmente relacionada ao domínio do problema (o conjunto específico de
conhecimentos, regras e processos de negócios em questão). Portanto, ao entender
profundamente o domínio do problema, os desenvolvedores podem criar modelos de
software mais alinhados com as necessidades reais do negócio.
Domínio diz respeito ao negócio, o conjunto de regras e necessidades que vai ditar a
funcionalidade daquele software.
Design não diz respeito à uma interface, mas sim um modelo que represente aquela
realidade de um modo que o Domínio possa ser estudado e analizado em função do
projeto.
Domínio
Negócio da sua empresa / Assunto do Projeto
Subdomínios:
1. Core: A principal parte do domínio que possui as regras e casos da empresa em si.
Domain Driven Design 1
2. Supporting: Partes do domínio que giram ao redor do core, também tem regras do
negócio.
3. Generic: Uma parte do domínio que não é específico para aquele caso e que é
igual ao de outros domínios.
Agentes do Domínio:
Domain Expert
Especialistas no negócio.
Desenvolvedores
O elemento mais importante em um projeto de software é entender
o problema, pois, por melhor que seja a nossa implementação,
se não entendermos os requisitos de negócio, será impossível
atingir o nosso propósito.
Exemplo:
Se uma empresa da area da saúde pede um aplicativo de gestão/administração, o
domínio não está relacionado a saúde, e sim a automação e controle de fluxos.
Exemplo:
Se um ecommerce pede um sistema para gerenciar pedidos, a gestão é o domínio, o
subdominio core é o gerenciamento do pedido, um exemplo de subdomínio suppoirting
seria rastrear pedido, um exemplo de generic seria a autenticação de usuários ou o
pagamento.
Domain Driven Design 2