Pular para o conteúdo principal

Questão de Engenharia de Software — Clean Code (Código Limpo) — VUNESP 2025

Engenharia de SoftwareClean Code (Código Limpo)
Código
vu222966
Banca
VUNESP
Órgão
TJ SP
Ano
2025
Cargo
AnaSistJ ( )
Na Arquitetura Limpa, que é modelada por meio de um diagrama que contém círculos concêntricos, existe uma regra conhecida como Regra da Dependência. De acordo com essa regra, assinale a alternativa correta.
  1. ANomes de classes declaradas em um círculo externo podem ser referenciados pelo código em um círculo interno, desde que esse código no círculo interno corresponda a declarações e implementações de subclasses daquelas declaradas no círculo externo.
  2. BO nome de algo declarado em um círculo interno não deve ser referenciado pelo código em um círculo externo.
  3. CO nome de algo declarado em um círculo externo deve, ao menos uma vez, ser referenciado pelo código em um círculo interno.
  4. DO nome de algo declarado em um círculo externo não deve ser referenciado pelo código em um círculo interno.
  5. EAs dependências de código-fonte devem apontar na direção dos mecanismos, partindo das políticas, ou seja, políticas dependem dos mecanismos.
Revelar gabarito e comentário

GabaritoD — O nome de algo declarado em um círculo externo não deve ser referenciado pelo código em um círculo interno.

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”.

Arquitetura Limpa e a Regra da Dependência

Gabarito: letra D. Na Arquitetura Limpa, a Regra da Dependência estabelece que as dependências de código-fonte devem apontar sempre para dentro, ou seja, o nome de algo declarado em um círculo externo não deve ser referenciado pelo código em um círculo interno. Essa é a essência da regra, que garante que as políticas de negócio (círculos internos) permaneçam independentes dos mecanismos e detalhes de implementação (círculos externos).

A Arquitetura Limpa, proposta por Robert C. Martin (Uncle Bob), organiza o software em camadas concêntricas, onde cada círculo representa um nível de política de negócio. No centro estão as entidades e casos de uso (as políticas de mais alto nível), e nos círculos externos estão os mecanismos como banco de dados, interfaces de usuário e frameworks. A regra da dependência é o princípio que governa a direção das dependências entre essas camadas: as dependências de código-fonte devem apontar para dentro, ou seja, do círculo externo para o interno, nunca o contrário.

O objetivo dessa regra é proteger as políticas de negócio de mudanças nos detalhes externos. Se o código interno (políticas) dependesse de algo externo (mecanismos), qualquer alteração no mecanismo (como trocar um banco de dados) impactaria diretamente as regras de negócio, violando o princípio da inversão de dependência (DIP) e dificultando a manutenção e evolução do sistema. Ao inverter as dependências, garantimos que as políticas sejam estáveis e independentes, podendo ser testadas e evoluídas sem amarras com a infraestrutura.

Na prática, isso significa que, se uma entidade de negócio (círculo interno) precisa se comunicar com um mecanismo externo (como um repositório de banco de dados), essa comunicação deve ser feita por meio de uma interface definida no círculo interno, e a implementação concreta (no círculo externo) deve depender dessa interface. Assim, a dependência aponta do externo para o interno, respeitando a regra.

A pegadinha da banca está em inverter a direção da dependência ou em confundir a regra com outras práticas de design. Muitos candidatos podem lembrar que "dependências apontam para dentro", mas se confundem ao interpretar qual círculo pode referenciar qual. A regra é clara: o círculo interno nunca deve referenciar algo do círculo externo. É exatamente essa inversão que a alternativa correta captura.

1Direção das dependências
Apontam para dentro
Do externo para o interno
2Círculo interno (políticas)
Não referencia o externo
Entidades e casos de uso
3Círculo externo (mecanismos)
Depende do interno
Banco de dados, UI, frameworks
4Objetivo
Proteger políticas de negócio
Estabilidade e testabilidade
Regra da Dependência
LEVELsoulevel.com.br
Regra da Dependência: Direção das dependências (Apontam para dentro, Do externo para o interno); Círculo interno (políticas) (Não referencia o externo, Entidades e casos de uso); Círculo externo (mecanismos) (Depende do interno, Banco de dados, UI, frameworks); Objetivo (Proteger políticas de negócio, Estabilidade e testabilidade)

Alternativa A — ❌ Incorreta

Afirma que nomes de classes de um círculo externo podem ser referenciados pelo código interno, desde que sejam subclasses. Isso viola frontalmente a Regra da Dependência, que proíbe qualquer referência do interno ao externo, independentemente de herança. A herança não é uma exceção à regra; pelo contrário, a regra é absoluta para manter a independência das políticas.

Alternativa B — ❌ Incorreta

Diz que o nome de algo declarado em um círculo interno não deve ser referenciado pelo código em um círculo externo. Isso é o oposto da regra: na verdade, o círculo externo deve depender do interno. A dependência aponta do externo para o interno, então o externo pode e deve referenciar o interno. A alternativa inverte a direção correta da dependência.

Alternativa C — ❌ Incorreta

Afirma que o nome de algo declarado em um círculo externo deve, ao menos uma vez, ser referenciado pelo código interno. Isso é exatamente o que a regra proíbe. O círculo interno não deve referenciar nada do externo, nem mesmo uma única vez. A regra é de proibição total, não de permissão condicional.

Alternativa D — ✅ Correta ⟵ GABARITO

Esta é a formulação correta da Regra da Dependência: "O nome de algo declarado em um círculo externo não deve ser referenciado pelo código em um círculo interno." Isso garante que as políticas de negócio (interno) não dependam de mecanismos (externo), mantendo a arquitetura limpa e as dependências apontando para dentro.

Alternativa E — ❌ Incorreta

Afirma que as dependências devem apontar dos mecanismos para as políticas, ou seja, que políticas dependem dos mecanismos. Isso é o inverso do que a regra estabelece. Na Arquitetura Limpa, as dependências apontam das políticas para os mecanismos? Não: as dependências apontam dos mecanismos para as políticas, ou seja, os mecanismos dependem das políticas, e não o contrário. A alternativa inverte a direção correta.

Gabarito: letra D — a Regra da Dependência proíbe que o círculo interno referencie o externo, garantindo que as políticas de negócio permaneçam independentes dos mecanismos.

Link permanente: /questoes/vu222966