Sobes.tech
Senior

O que é DCI?

sobes.tech IA

Resposta da IA

DCI (Data-Context-Interaction) é um padrão arquitetónico que divide o sistema em três partes principais:

  • Dados: Objetos que representam entidades do domínio (por exemplo, User, Account). Contêm estado, mas não conhecem a lógica de negócio.
  • Contexto: Reúne os dados necessários e liga-os a papéis numa transação específica. O contexto sabe quais objetos desempenham quais papéis.
  • Interação: Papéis que definem a lógica de negócio aplicada aos dados no contexto. Ações específicas que podem ser realizadas sobre os dados numa situação determinada.

O DCI foca em como as pessoas pensam na interação de objetos num cenário específico, não apenas na organização estrutural dos dados. Destina-se a tornar a lógica de negócio mais explícita e fácil de ler.

Exemplo: Transferência de dinheiro entre contas.

  • Dados: Account (estado: saldo)
  • Contexto: "Transferência de dinheiro", que liga dois objetos Account com os papéis de "Fonte" e "Destino".
  • Interação: Papéis "Fonte" (método withdraw) e "Destino" (método deposit). Lógica de negócio: verificar fundos disponíveis, modificar saldos.

Principais vantagens do DCI:

  • Melhor legibilidade do código: A lógica de negócio torna-se mais expressiva e fácil de seguir.
  • Melhor compreensão do domínio: O padrão reflete as interações reais entre objetos.
  • Maior flexibilidade: Novas interações podem ser adicionadas sem modificar os objetos de dados existentes.
  • Redução da complexidade: Foca em transações curtas e isoladas.

O DCI pode ser implementado com diferentes linguagens de programação, embora algumas linguagens sejam mais adequadas ao seu suporte (por exemplo, Scala com traits).