Questão nº 68
Questão de Tecnologia da Informação · FGV TCE-SP 2023 (nº 68)
O analista Marcos desenvolveu um novo frontend para a aplicação TCEDigital, a fim de modernizar a experiência do usuário. O backend da TCEDigital é exposto por meio de uma Application Programming Interface (API) web. O novo frontend desenvolvido por Marcos utiliza a API web do backend já existente e não exige a desativação do frontend antigo, com ambos coexistindo ao mesmo tempo.
À luz da arquitetura hexagonal, Marcos adicionou à TCEDigital um(a):
- Aaplicação;
- Bporta primária;
- Cporta secundária;
- Dadaptador primário; (alternativa correta)
- Eadaptador secundário.
Resposta comentada
Gabarito Alternativa D
A Arquitetura Hexagonal (ou Ports and Adapters) visa isolar a lógica de negócio central de detalhes técnicos externos, como interfaces de usuário ou bancos de dados, usando Portas (interfaces que definem interações) e Adaptadores (componentes que implementam essas interações).
- Portas Primárias (ou de Condução) são interfaces que a aplicação oferece para ser usada por atores externos.
- Adaptadores Primários (ou de Condução) são os componentes externos que usam essas portas primárias para dirigir a aplicação, como uma interface de usuário ou um controlador de API.
- Portas Secundárias (ou de Conduzido) são interfaces que a aplicação precisa para interagir com sistemas externos.
- Adaptadores Secundários (ou de Conduzido) são os componentes externos que implementam essas portas secundárias, sendo dirigidos pela aplicação, como um driver de banco de dados ou um cliente de serviço externo.
No cenário, o novo frontend é um ator externo que interage com a API web do backend (que é a porta primária do backend) para dirigir a aplicação.
(A) Incorreta: Uma aplicação é o sistema como um todo, não um componente específico adicionado à arquitetura hexagonal neste contexto.
(B) Incorreta: A porta primária é a interface que o backend expõe (a API web). O frontend não é a porta; ele é o componente que usa a porta para interagir com a aplicação. Esta é a armadilha mais comum, pois o frontend se conecta a uma porta primária, mas ele próprio é o mecanismo de conexão.
(C) Incorreta: Uma porta secundária é uma interface que a aplicação precisa para se comunicar com sistemas externos (ex: um banco de dados). O frontend é um componente que dirige a aplicação, não um recurso que a aplicação precisa.
(D) Correta: O novo frontend atua como um adaptador primário (ou adaptador de condução). Ele é um componente externo (a interface de usuário) que traduz as interações do usuário em chamadas à API web do backend (que é a porta primária da aplicação), dirigindo a lógica de negócio central.
(E) Incorreta: Um adaptador secundário é um componente que a aplicação chama para realizar uma tarefa externa (ex: salvar dados no banco). O frontend chama a aplicação, não é chamado por ela.
Fonte: FGV TCE-SP 2023 Agente da Fiscalização - TI (Caderno Tipo 1). Reproduzida para fins de estudo.