Skip to content

DiegoPorfirio01/Forum-API

Repository files navigation

Domain-Driven Design (DDD)

Domain-Driven Design (DDD) é uma abordagem para o desenvolvimento de software que coloca o domínio (o problema que o software está tentando resolver) no centro do processo de design. Aqui está um resumo dos principais conceitos:

Domínio

O domínio refere-se ao assunto ou área de interesse para o qual o software está sendo desenvolvido. É essencial compreender o domínio para criar soluções eficazes.

Domain Experts

Os Domain Experts são especialistas no domínio que ajudam a entender as complexidades e os detalhes necessários para o desenvolvimento do software.

Conversa e Linguagem Ubíqua

A conversa e a linguagem ubíqua são práticas para garantir que todos os envolvidos no projeto (desenvolvedores, clientes, especialistas, etc.) utilizem a mesma terminologia e compreendam o domínio da mesma forma. Isso promove uma comunicação mais clara e eficaz.

Papéis no Domínio

  • Usuário: A pessoa que utiliza o sistema.
  • Client: O cliente que solicita ou paga pelo desenvolvimento do sistema.
  • Fornecedor: Entidades que fornecem recursos ou serviços relacionados ao sistema.
  • Atendente: Pessoa que lida com as necessidades ou suporte do usuário.
  • Barman: Um exemplo específico, pode ser um papel dentro de um sistema mais amplo, dependendo do domínio.

Agregados

Agregados são grupos de objetos relacionados que são tratados como uma única unidade para garantir a consistência das mudanças no sistema.

Value Objects

Value Objects são objetos que não têm identidade própria e são definidos apenas pelos seus atributos. Eles são imutáveis e usados para descrever aspectos do domínio.

Eventos de Domínio

Eventos de domínio são eventos que têm significado no domínio e representam algo que ocorreu no sistema.

Subdomínios (Bounded Contexts)

Os subdomínios ou Bounded Contexts são áreas distintas dentro de um sistema que têm seus próprios modelos e lógica. Cada subdomínio é separado para evitar a complexidade e permitir um design mais coeso.

Entidades

Entidades são objetos que têm uma identidade distinta e são capazes de mudar e persistir ao longo do tempo.

Casos de Uso

Os casos de uso descrevem como os usuários interagem com o sistema para alcançar objetivos específicos.


Este guia fornece uma visão geral dos conceitos fundamentais de DDD e como eles se relacionam para criar um software que é alinhado com as necessidades e complexidades do domínio.

About

Fórum com DDD & Clean Architecture

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published