A analista Joana está desenvolvendo a aplicação ParaibaCerta...

Próximas questões
Com base no mesmo assunto
Q2398323 Arquitetura de Software
A analista Joana está desenvolvendo a aplicação ParaibaCerta. Joana implementou o modelo e o repositório da camada de persistência, mas ainda não escolheu qual banco de dados irá utilizar. Joana também implementou um teste automatizado para determinado fluxo da interface gráfica da ParaibaCerta.
À luz da arquitetura hexagonal, ao implementar o repositório da camada de persistência e o teste automatizado, Joana adicionou à ParaibaCerta, respectivamente:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é: C - uma porta secundária e um adaptador primário.

Vamos entender por que a alternativa C é a correta e por que as outras são incorretas.

A Arquitetura Hexagonal, também conhecida como Arquitetura de Portas e Adaptadores, foi introduzida por Alistair Cockburn. Sua principal característica é separar o núcleo da aplicação (a lógica de negócios) dos detalhes de implementação, como interfaces de usuário, bancos de dados e dispositivos externos. Essa separação é feita por meio de portas e adaptadores.

Na Arquitetura Hexagonal, temos:

  • Portas Primárias: Interagem diretamente com o núcleo da aplicação, como interfaces de usuário e APIs que acionam a lógica de negócios.
  • Portas Secundárias: São usadas pelo núcleo da aplicação para interagir com serviços externos, como bancos de dados e sistemas de arquivos.
  • Adaptadores Primários: Implementam as portas primárias, permitindo que a aplicação receba entradas externas.
  • Adaptadores Secundários: Implementam as portas secundárias, permitindo que a aplicação interaja com serviços externos.

Com isso em mente, vamos analisar a questão em detalhes:

Joana implementou dois componentes:

  1. O repositório da camada de persistência: Este é um componente que a aplicação usa para interagir com o banco de dados. Na Arquitetura Hexagonal, isso se encaixa como uma porta secundária (pois é algo que a aplicação usa para interagir com um serviço externo).
  2. O teste automatizado para a interface gráfica: Este é um mecanismo que simula a interação do usuário com a aplicação. Na Arquitetura Hexagonal, isso se encaixa como um adaptador primário (pois é algo que permite a entrada de dados na aplicação).

Portanto, a alternativa C está correta ao afirmar que Joana adicionou uma porta secundária (para o repositório) e um adaptador primário (para o teste da interface gráfica).

Agora, vejamos por que as outras alternativas estão incorretas:

  • A - uma porta primária e uma porta secundária: Incorreto, porque um teste automatizado de interface gráfica não é uma porta primária. Ele é um adaptador primário.
  • B - uma porta primária e um adaptador primário: Incorreto, porque o repositório não é uma porta primária. Ele é uma porta secundária.
  • D - um adaptador secundário e uma porta secundária: Incorreto, porque o teste automatizado de interface gráfica não é um adaptador secundário. Ele é um adaptador primário.
  • E - um adaptador primário e um adaptador secundário: Incorreto, porque o repositório não é um adaptador secundário. Ele é uma porta secundária.

Com essa explicação detalhada, espero que tenha ficado claro como a Arquitetura Hexagonal organiza os componentes de uma aplicação e por que a alternativa C é a correta. Se precisar de mais alguma coisa, estou à disposição!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

"...modelo e o repositório da camada de persistência" ⮕ interface para usar o banco de dados no sentido "de dentro para fora" ⮕ porta secundária

"...fluxo da interface gráfica"traduz dados do mundo exterior "de fora pra dentro" adaptador primário

Mas a questão não pedia somente "ao implementar o repositório da camada de persistência e o teste automatizado"?

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo