Arquitetura Hexagonal: Desacoplando e Facilitando a Manutenção de Sistemas

Vamos falar nesse artigo sobre a Arquitetura Hexagonal , a evolução contínua da tecnologia da informação trouxe inovações significativas no mundo da engenharia de software.

Avatar


31 de Agosto de 2023

Fala, galera! Vamos falar nesse artigo sobre a Arquitetura Hexagonal , a evolução contínua da tecnologia da informação trouxe inovações significativas no mundo da engenharia de software. Entre as diversas práticas e padrões que surgiram ao longo dos anos, a Arquitetura Hexagonal (também conhecida como “Ports and Adapters”) tem ganhado destaque. Essa arquitetura foi proposta por Alistair Cockburn e é uma alternativa à tradicional abordagem em camadas, facilitando a manutenção e a adaptabilidade dos sistemas.

 

1- O que é a Arquitetura Hexagonal?

A Arquitetura Hexagonal visa desacoplar a lógica de negócios da aplicação das tecnologias externas. Em vez de ter componentes de negócios interagindo diretamente com bancos de dados, sistemas externos ou interfaces de usuário, a interação ocorre através de ports (portas) e adapters (adaptadores).

Artigo Washington Almeida: Arquitetura Hexagonal

Figura 1 – Arquitetura Hexagonal

2- Principais Componentes

 

Domínio: No núcleo da arquitetura, temos a lógica de negócios da aplicação. Esse núcleo não deve ter dependências sobre frameworks ou detalhes de implementação externa.

Ports: São interfaces que definem os métodos que o núcleo precisa para se comunicar com o mundo exterior. Existem dois tipos de portas: as primárias, que são usadas para receber dados do mundo exterior, e as secundárias, que o núcleo usa para enviar comandos para fora.

Adapters: São implementações concretas que se conectam aos ports e traduzem os dados entre o núcleo e os agentes externos, como bancos de dados, sistemas de terceiros ou interfaces de usuário.

 

3- Vantagens da Arquitetura Hexagonal

 

Desacoplamento: Ao separar a lógica de negócios das tecnologias externas, a aplicação torna-se menos sensível a mudanças em frameworks, bibliotecas ou até mesmo em tecnologias de banco de dados.

Testabilidade: A desacoplagem facilita a escrita de testes unitários para a lógica de negócios sem a necessidade de interagir com componentes externos.

Flexibilidade: A introdução ou substituição de novas tecnologias torna-se mais simples, já que basta criar ou ajustar um adaptador.

 

Vamos ver duas questões sobre o tema:

Questão 1: No padrão de arquitetura hexagonal, também conhecido como “ports and adapters”, qual é o principal objetivo?

 

(a) Fornecer uma representação visual em forma de hexágono para todos os componentes do software.

(b) Isolar a lógica de negócio das tecnologias externas, permitindo que a aplicação se mantenha independente de interfaces externas.

(c) Garantir que todas as aplicações tenham exatamente seis interfaces de comunicação.

(d) Estabelecer uma estrutura fixa onde todos os componentes internos devem ser modelados como hexágonos.

(e) Priorizar a comunicação entre os componentes internos através de uma interface gráfica.

Comentário:

A alternativa correta é (b). A arquitetura hexagonal foi proposta para permitir que uma aplicação seja desenvolvida de forma que sua lógica de negócio fique isolada de interfaces externas, como bancos de dados, interfaces de usuário, e integrações com outros sistemas. Isso é realizado ao definir “ports” para a comunicação entre a lógica de negócio e o mundo exterior, e “adapters” para conectar esses ports a tecnologias específicas. As demais opções não representam corretamente o objetivo ou características da arquitetura hexagonal.

 

Questão 2: Em relação à arquitetura hexagonal e seus componentes, assinale a alternativa correta:

 

(a) Os adaptadores primários são responsáveis por converter a entrada de uma tecnologia externa em uma chamada à aplicação.

(b) A lógica de negócio deve estar diretamente acoplada aos adaptadores secundários.

(c) Os “ports” na arquitetura hexagonal referem-se exclusivamente a portas físicas, como portas USB.

(d) Os adaptadores secundários geralmente são responsáveis por interfaces gráficas e entrada de dados do usuário.

(e) A arquitetura hexagonal desencoraja testes automatizados, pois todos os componentes estão interligados.

Comentário:

A alternativa correta é (a). Na arquitetura hexagonal, os adaptadores primários tratam as entradas do sistema, convertendo-as em chamadas à aplicação. Essas entradas podem ser provenientes de interfaces de usuário, protocolos de rede, entre outros. Adaptadores secundários, por outro lado, lidam com as saídas da aplicação para o mundo exterior. A opção (b) é incorreta porque a lógica de negócio deve ser desacoplada de detalhes externos, incluindo adaptadores secundários. A opção (c) é incorreta porque “ports” se referem a interfaces de comunicação, não a portas físicas. A opção (d) está errada porque adaptadores secundários lidam com saídas, não entradas. Por fim, a opção (e) é falsa porque uma das vantagens da arquitetura hexagonal é facilitar testes automatizados ao isolar a lógica de negócio.

 

4- Considerações Finais

 

Enquanto a Arquitetura Hexagonal apresenta muitos benefícios, é essencial entender que nem todas as aplicações necessitam de tal nível de desacoplamento. Para sistemas simples, a introdução de uma arquitetura hexagonal pode trazer complexidade desnecessária. Portanto, é crucial avaliar o contexto do projeto antes de adotar essa ou qualquer outra abordagem arquitetônica.

Concluindo, a Arquitetura Hexagonal oferece uma abordagem robusta e flexível para projetar sistemas adaptáveis e fáceis de manter, permitindo que os desenvolvedores se concentrem na lógica de negócios sem se preocupar excessivamente com detalhes de implementação externa. Ao mesmo tempo, proporciona um caminho claro para expandir ou modificar a aplicação conforme as necessidades evoluem.

 

Referências:

[1] https://engsoftmoderna.info/artigos/arquitetura-hexagonal.html

 

Prof. Washington Almeida

 


Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
Clique nos links abaixo:

CONCURSOS ABERTOS

CONCURSOS 2023

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente:

TELEGRAM

Avatar


31 de Agosto de 2023