Questão de Engenharia de Software — DDD (Domain-Driven Design) — CESPE / CEBRASPE 2025
Engenharia de Software›DDD (Domain-Driven Design)
Código
ce417759
Banca
CESPE / CEBRASPE
Órgão
TRF 6
Ano
2025
Cargo
AJ TRF6
Julgue o item a seguir relativo à arquitetura de microsserviços, ao domain-driven design e a design patterns.
Aplicação de padrões como Aggregates e Value Objects, no domain-driven design, visa a desacoplar o domínio de negócio do modelo de domínio, permitindo que a lógica de negócio seja isolada em camadas técnicas.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Domain-Driven Design (DDD): Aggregates e Value Objects
Gabarito: Errado (E). A afirmativa está incorreta porque os padrões Aggregates e Value Objects, no DDD, visam justamente o oposto do que foi dito: eles buscam acoplar o modelo de domínio ao domínio de negócio, encapsulando a lógica de negócio dentro do próprio modelo, e não isolá-la em camadas técnicas. O DDD centra o desenvolvimento na programação de um modelo de domínio rico, que represente fielmente os processos e regras do negócio.
O Domain-Driven Design (DDD) é uma abordagem de desenvolvimento de software que coloca o domínio de negócio no centro de todo o processo. O domínio é o conjunto de atividades e áreas de interesse do usuário. O DDD busca criar um modelo de domínio que seja uma representação simplificada e fiel desse domínio, servindo como base de comunicação entre todos os envolvidos no projeto.
Os padrões táticos do DDD, como Aggregates (Agregados) e Value Objects (Objetos de Valor), são ferramentas para construir esse modelo de domínio rico. Um Value Object é um objeto imutável que descreve uma característica do domínio, como um endereço ou uma quantia em dinheiro. Um Aggregate é um cluster de objetos de domínio tratados como uma unidade, com um Aggregate Root (Raiz do Agregado) controlando o acesso aos demais objetos. Esses padrões não desacoplam o domínio do modelo; pelo contrário, eles fortalecem o vínculo entre a lógica de negócio e a representação do modelo, garantindo que as regras de negócio estejam encapsuladas e sejam aplicadas de forma consistente.
A ideia de "isolar a lógica de negócio em camadas técnicas" é um equívoco. O DDD prega a separação em camadas (como apresentação, aplicação, domínio e infraestrutura), mas o objetivo é que a lógica de negócio fique concentrada na camada de domínio, e não espalhada em camadas técnicas. Os padrões Aggregates e Value Objects são justamente os mecanismos para manter essa lógica coesa e bem estruturada dentro do modelo de domínio.
A banca explora uma confusão conceitual: o candidato pode associar "desacoplar" a uma boa prática de engenharia de software, mas no contexto do DDD, o que se busca é o acoplamento entre o modelo e o domínio, para que o software reflita com precisão as regras de negócio. O desacoplamento que se deseja é entre as camadas técnicas (como infraestrutura e apresentação) e a camada de domínio, não entre o domínio e o modelo.
NÃO CAIA NESSA!
A banca inverte o sentido do que os padrões do DDD fazem. Ela diz que Aggregates e Value Objects "desacoplam o domínio de negócio do modelo de domínio", quando na verdade eles acoplam o modelo ao domínio, garantindo que a lógica de negócio esteja no lugar certo. O desacoplamento que o DDD busca é entre a camada de domínio e as camadas técnicas (infraestrutura, apresentação), não entre o domínio e o modelo.
DDD: padrões táticos: Value Object (Objeto imutável, Descreve característica do domínio); Aggregate (Cluster de objetos, Aggregate Root controla acesso); Objetivo (Acoplar modelo ao domínio, Encapsular lógica de negócio, Concentrar regras na camada de domínio); Desacoplamento buscado (Camada de domínio × camadas técnicas, Não entre domínio e modelo)
Item — ❌ Errado
A afirmativa está errada por dois motivos principais:
Inverte a finalidade dos padrões: Aggregates e Value Objects são padrões táticos do DDD que visam enriquecer o modelo de domínio, encapsulando a lógica de negócio dentro dele. Eles não desacoplam o domínio do modelo; eles os integram.
Confunde o tipo de desacoplamento: O DDD prega a separação em camadas, mas o objetivo é isolar a lógica de negócio na camada de domínio, e não em "camadas técnicas". O desacoplamento desejado é entre a camada de domínio e as demais camadas (infraestrutura, aplicação, apresentação), para que o núcleo do negócio não dependa de detalhes técnicos.