Como aplicar DDD no dia a dia dos projetos?


Aplicar DDD envolve tanto práticas estratégicas quanto táticas. Para isso temos algumas abordagens para aplicá-las no nosso dia a dia.

1. Linguagem Ubíqua (Ubiquitous Language)

A linguagem ubíqua é um vocabulário comum desenvolvido por desenvolvedores e especialistas do domínio para descrever o sistema.

Essa linguagem é usada em todos os aspectos do projeto, desde a documentação até o código, garantindo clareza e evitando mal-entendidos.

2. Contextos Delimitados (Bounded Contexts)

Um contexto delimitado define os limites dentro dos quais um modelo de domínio específico é aplicável.

Em sistemas grandes, diferentes partes podem ter modelos distintos; os contextos delimitados ajudam a gerenciar essas diferenças e a integração entre elas.

3. Modelagem Estratégica

Envolve a identificação de subdomínios dentro do domínio principal e a definição de como eles interagem. Isso ajuda a organizar o sistema de forma que reflita a estrutura do negócio, facilitando a manutenção e a escalabilidade.

4. Padrões Táticos

Incluem práticas como:

  • Entidades (Entities): Objetos com identidade própria que persistem ao longo do tempo.

  • Objetos de Valor (Value Objects): Objetos que representam descrições ou atributos e não possuem identidade própria.

  • Agregados (Aggregates): Conjuntos de entidades e objetos de valor que são tratados como uma unidade para fins de consistência de dados.

  • Repositórios (Repositories): Componentes que fornecem acesso a agregados, encapsulando a lógica de persistência.

  • Serviços de Domínio (Domain Services): Operações que não pertencem naturalmente a uma entidade ou objeto de valor, mas são parte do domínio.

5. Event Storming

Uma técnica colaborativa para explorar e modelar processos de negócio complexos.

Envolve a identificação de eventos que ocorrem no domínio e a construção de um modelo visual que representa esses eventos e suas interações.

Referências


elemarjr.com/clube-de-estudos/artigos/aplicando-domain-driven-design-ddd-a-um-projeto-real