Criou página com 'oçi\syoud ydiuYADIUyadiuyauISYIAysAYIS'
 
Sem resumo de edição
Linha 1: Linha 1:
oçi\syoud ydiuYADIUyadiuyauISYIAysAYIS
* Objetivo
** Desenvolver um conteúdo que demonstre os conceitos fundamentais sobre o DDD, a importância desse conhecimento para o desenvolvimento profissional e pessoal do programador e como esse tópico se relaciona com outros temas importantes na área da computação 
<br>
 
* Introdução
** No processo de desenvolvimento de sistemas, o design de software assume um papel importantíssimo ao tentar converter um problema do mundo real, tangível ou não, em software por meio de ferramentas, processos, metodologias e dentre outros métodos. Dentre essas diversas metodologias, assim como escrito na obra de referência [2], encontra-se o DDD, o qual significa Domain-Driven Design, ou seja, Design Dirigido à Domínio. Essa ramificação do design de software, o qual auxilia na estruturação e no desenvolvimento de aplicações, tem mais relação em mostrar ao programador sobre como lidar com a necessidade do cliente e traduzir para uma linguagem de domínio (o conceito central quando se fala de DDD) do que com o código propriamente dito, não havendo muito código e nem descrição de ferramentas, linguagens, frameworks ..., sendo uma maneira de estabelecer uma comunicação clara e padronizada entre todas as partes (grupos de pessoas) envolvidas na criação do sistema.
 
<br>
 
* DDD (''Domain-Driven Design'')
** A obra de referência [2] traz uma reflexao interessante acerta do desenvolvimento de software, fazendo uma comparacao {ESCREVER MAIS SOBRE}
** Assim como dito anteriormente, o domínio pode ser entendido como o conceito central no Domain-Driven Design. A obra de referência [1] define o domínio como a área de conhecimento à qual o usuário aplica o software. Consequentemente, o design da aplicação deve se construir em torno desse conceito e das necessidades de quem o utiliza. Nesse contexto, é crucial que a equipe técnica possua um entendimento profundo do domínio para o qual a aplicação é desenvolvida para que se possa criar um modelo computacional aderente à realidade. Para facilitar essa compreensão, existem alguns conceitos muito importantes que auxiliam na estruturação do problema de forma padronizada para os envolvidos.
**  O primeiro conceito a ser citado é o de Domain Experts (Experts de Domínio), que são as pessoas que vivenciam, dia a dia, as situações as quais o software tentará auxiliar e que entendem a problemática que a aplicação tenta resolver. Antes de começar a escrever código, o programador deve entender a fundo o problema do cliente para poder tratá-lo de forma fidedigna à realidade e clara para os que estão presentes no processo do desenvolvimento do software. Uma forma de compreender mais à fundo problema, é conversando com os Domain Experts. Dessa forma, torna-se clara a importância da comunicação para o DDD.
** Além disso, outro conceito de suma importância para o Design Dirigido à Domínio é a linguagem ubíqua. Após múltiplas conversas estabelecidas com vários Domains Experts, é possível criar uma linguagem universal na qual todas as pessoas envolvidas na construção do software conseguem entender e se comunicar uns com os outros.
<br>
 
* Linguagem ubíqua
** Linguagem universal em que todas as pessoas que estão envolvidas com a construção do software conseguem conversar com o mesmo vocabulário.
** O expertes têm nomenclaturas específicas para certas entidades que os programadores costumam nomear de outro jeito
* Por exemplo:
** Agregados
** ''Value Objects''
** Eventos de domínio
** Subdomnios (''bounded contexts'')
* Entidades
** Casos de uso
<br>
 
* Referências bibliográficas:
** [1] https://fabiofumarola.github.io/nosql/readingMaterial/Evans03.pdf
** [2] https://ebel-kliniken.com/fileadmin/user_upload/demo/dokument-2.pdf

Edição das 18h07min de 19 de novembro de 2025

  • Objetivo
    • Desenvolver um conteúdo que demonstre os conceitos fundamentais sobre o DDD, a importância desse conhecimento para o desenvolvimento profissional e pessoal do programador e como esse tópico se relaciona com outros temas importantes na área da computação


  • Introdução
    • No processo de desenvolvimento de sistemas, o design de software assume um papel importantíssimo ao tentar converter um problema do mundo real, tangível ou não, em software por meio de ferramentas, processos, metodologias e dentre outros métodos. Dentre essas diversas metodologias, assim como escrito na obra de referência [2], encontra-se o DDD, o qual significa Domain-Driven Design, ou seja, Design Dirigido à Domínio. Essa ramificação do design de software, o qual auxilia na estruturação e no desenvolvimento de aplicações, tem mais relação em mostrar ao programador sobre como lidar com a necessidade do cliente e traduzir para uma linguagem de domínio (o conceito central quando se fala de DDD) do que com o código propriamente dito, não havendo muito código e nem descrição de ferramentas, linguagens, frameworks ..., sendo uma maneira de estabelecer uma comunicação clara e padronizada entre todas as partes (grupos de pessoas) envolvidas na criação do sistema.


  • DDD (Domain-Driven Design)
    • A obra de referência [2] traz uma reflexao interessante acerta do desenvolvimento de software, fazendo uma comparacao {ESCREVER MAIS SOBRE}
    • Assim como dito anteriormente, o domínio pode ser entendido como o conceito central no Domain-Driven Design. A obra de referência [1] define o domínio como a área de conhecimento à qual o usuário aplica o software. Consequentemente, o design da aplicação deve se construir em torno desse conceito e das necessidades de quem o utiliza. Nesse contexto, é crucial que a equipe técnica possua um entendimento profundo do domínio para o qual a aplicação é desenvolvida para que se possa criar um modelo computacional aderente à realidade. Para facilitar essa compreensão, existem alguns conceitos muito importantes que auxiliam na estruturação do problema de forma padronizada para os envolvidos.
    • O primeiro conceito a ser citado é o de Domain Experts (Experts de Domínio), que são as pessoas que vivenciam, dia a dia, as situações as quais o software tentará auxiliar e que entendem a problemática que a aplicação tenta resolver. Antes de começar a escrever código, o programador deve entender a fundo o problema do cliente para poder tratá-lo de forma fidedigna à realidade e clara para os que estão presentes no processo do desenvolvimento do software. Uma forma de compreender mais à fundo problema, é conversando com os Domain Experts. Dessa forma, torna-se clara a importância da comunicação para o DDD.
    • Além disso, outro conceito de suma importância para o Design Dirigido à Domínio é a linguagem ubíqua. Após múltiplas conversas estabelecidas com vários Domains Experts, é possível criar uma linguagem universal na qual todas as pessoas envolvidas na construção do software conseguem entender e se comunicar uns com os outros.


  • Linguagem ubíqua
    • Linguagem universal em que todas as pessoas que estão envolvidas com a construção do software conseguem conversar com o mesmo vocabulário.
    • O expertes têm nomenclaturas específicas para certas entidades que os programadores costumam nomear de outro jeito
  • Por exemplo:
    • Agregados
    • Value Objects
    • Eventos de domínio
    • Subdomnios (bounded contexts)
  • Entidades
    • Casos de uso