Questões e Respostas
Qual é o objetivo principal do Domain Driven Design (DDD) de Vaughn Vernon?
- Focar apenas no desenvolvimento do front-end.
- Reduzir o tempo de desenvolvimento de software.
- Criar uma arquitetura de software que reflete o domínio do negócio.
- Minimizar a quantidade de código no projeto.
- Aumentar o uso de bibliotecas de terceiros.
O que é um "bounded context" (contexto delimitado) em Domain Driven Design?
- É a parte do código que não está relacionada ao domínio do negócio.
- Um contexto delimitado é uma maneira de dividir o domínio em partes menores e mais gerenciáveis.
- É uma camada de acesso a dados em uma aplicação DDD.
- Refere-se a um conceito abstrato que não é aplicável ao DDD.
- Um contexto delimitado refere-se a uma classe que encapsula vários domínios relacionados.
Quais são os dois principais blocos de construção em Domain Driven Design?
- Repositórios e Modelos.
- Views e Serviços.
- Filas e Mensagens.
- Agregados e Eventos.
- Entidades e Controladores.
Como o padrão "Aggregate" (Agregado) é definido no contexto do Domain Driven Design?
- Representa a utilização de uma única classe para realizar várias operações no domínio.
- É um padrão de projeto para criar interfaces gráficas de usuário mais intuitivas.
- Refere-se a uma técnica para agrupar várias bibliotecas em um único pacote.
- Um Agregado é um conjunto de classes que compartilham o mesmo namespace.
- Um Agregado é um cluster de objetos que são tratados como uma única unidade em relação a operações de modificação de dados.
O que é o conceito de "Ubiquitous Language" (Linguagem Ubíqua) em DDD?
- É uma linguagem de programação usada em todo o domínio da aplicação.
- É a prática de usar uma linguagem comum, compreensível para especialistas do domínio e desenvolvedores, durante todo o processo de desenvolvimento.
- É uma técnica de otimização de código para melhorar a performance da aplicação.
- Refere-se a uma abordagem que utiliza apenas a linguagem técnica para comunicação entre a equipe de desenvolvimento.
- Linguagem Ubíqua é um conjunto de padrões de codificação adotados em projetos DDD.
Qual é o papel da camada de infraestrutura no DDD de Vaughn Vernon?
- A camada de infraestrutura é dispensável e não é recomendada no DDD.
- Ela é responsável pela interação com as interfaces do usuário.
- É responsável por gerenciar a comunicação com sistemas externos e persistência de dados.
- A camada de infraestrutura é usada exclusivamente para armazenar os dados do domínio.
- A camada de infraestrutura é responsável pela lógica de negócio do sistema.
Em Domain Driven Design, qual é o propósito do "Domain Event" (Evento de Domínio)?
- São eventos exclusivamente utilizados na camada de apresentação.
- São eventos que ocorrem no domínio do negócio e podem desencadear ações em outros contextos.
- Eventos de Domínio não têm um papel significativo no DDD.
- Eventos de Domínio são usados apenas para fins de rastreamento e auditoria.
- Refere-se a eventos específicos do sistema, como erros ou exceções.
Como o DDD aborda a modelagem de complexidade em um projeto de software?
- DDD não se preocupa com a complexidade, apenas com a entrega rápida de software.
- Através de técnicas de decomposição de problemas, o DDD divide a complexidade em partes menores e mais gerenciáveis.
- O DDD evita a modelagem complexa e favorece a simplicidade em todas as etapas.
- O DDD aborda a complexidade através de uma implementação detalhada do banco de dados.
- DDD enfatiza o uso de bibliotecas prontas para minimizar a complexidade.
Qual é a importância do conceito de "Value Object" (Objeto de Valor) no Domain Driven Design?
- Value Objects são usados exclusivamente para representar informações de configuração no sistema.
- Value Objects são usados para representar conceitos que têm importância apenas no contexto de outra Entidade ou Agregado.
- Value Objects são objetos que não têm importância no DDD e devem ser evitados em projetos de software.
- Value Objects são objetos mutáveis que podem ser alterados durante a execução do programa.
- Value Objects são usados para representar Entidades com identidade própria no domínio do negócio.
O que é uma "Entity" (Entidade) em Domain Driven Design?
- É uma classe utilizada exclusivamente para persistência de dados no banco de dados.
- Uma Entidade representa um objeto com identidade própria e é definida por suas características e comportamentos específicos no domínio do negócio.
- Uma Entidade é uma classe que só pode ser instanciada uma vez durante a execução do programa.
- Uma classe que encapsula a lógica de negócio da aplicação.
- Uma Entidade é um objeto imutável e não pode ser alterado após sua criação.