Arquitetura hexagonal: inovação para o design de software

17/10/2023 | Santander Universidades

Diante das mais de 2.500 linguagens de programação e da variedade de metodologias e arquiteturas, selecionar os componentes ideais e garantir que os aplicativos sejam visualmente agradáveis e funcionais, conforme as exigências de cada projeto, é um desafio significativo tanto para empresas quanto para programadores e engenheiros.

Nos últimos anos, a arquitetura hexagonal de desenvolvimento de softwares ganhou destaque devido à sua flexibilidade, assegurando tanto a qualidade quanto a escalabilidade das soluções, além de manter uma clara separação entre a lógica de negócio e os aspectos técnicos do sistema. Quer saber o que é e como funciona a arquitetura hexagonal? Neste artigo, você encontra todas as informações para entender o assunto.

CTA

O que é arquitetura hexagonal?

arquitetura hexagonal, também conhecida como "arquitetura porta e adaptador", é uma metodologia de desenvolvimento de software criada por Alistair Cockburn, em 2005. Trata-se de uma proposta que defende a independência entre os diferentes componentes tecnológicos, garantindo uma fácil interconexão entre por meio de portas e adaptadores.

Dessa forma, seu objetivo é evitar alguns erros estruturais que normalmente ocorrem no desenvolvimento de software orientado a objetos. Por exemplo, é comum que os distintos módulos sejam muito dependentes uns dos outros, o que aumenta a complexidade e reduz a flexibilidade na hora de fazer mudanças ou trocas de componentes.

Da mesma forma, a arquitetura hexagonal também favorece a programação Clean Code ao manter totalmente separados a interface do usuário, a lógica de negócio e o servidor. Isso facilita a automação de testes, a manutenção e a correção de erros.

Nesta abordagem arquitetônica, os componentes de software são representados em forma de hexágono. No centro, está o núcleo da aplicação, cercado pelos diferentes módulos. Além disso, há um espaço suficiente entre eles para simbolizar as conexões entre os diferentes componentes.

Componentes da arquitetura hexagonal

Para entender como funciona a arquitetura hexagonal de software, é necessário identificar de maneira detalhada os componentes que sustentam essa metodologia de desenvolvimento. Nesse sentido, podemos diferenciá-los entre domínio, portas, adaptadores e infraestrutura.

Domínio (núcleo)

O domínio ou núcleo está localizado na camada central do hexágono e contém toda a lógica de negócio do aplicativo, bem como as principais regras, restrições, comportamentos e modelo de dados. O domínio deve funcionar de forma independente das demais camadas.

Portas

As portas atuam como ponto de entrada e permitem a interação entre o núcleo do aplicativo e os adaptadores. Nesse contexto, são responsáveis por transmitir informações e fazer os adaptadores funcionarem. Pode haver tantas portas quanto forem necessárias.

É possível imaginá-las como uma porta USB na qual é possível conectar diferentes tipos de dispositivos.

Adaptadores

Os adaptadores permitem a comunicação entre os usuários e o núcleo, utilizando as portas como intermediárias. Eles podem ser substituídos sem que isso afete o núcleo, pois continuarão trocando informações graças às portas.

Esses adaptadores se localizam na camada de “infraestrutura”, posicionada na parte externa do hexágono. Eles contém  todos os elementos de entrada e saída do aplicativo, possibilitando sua interação com serviços externos.

arquitectura-hexagonal

Vantagens e desvantagens da arquitetura hexagonal

A arquitetura hexagonal possui diversos mecanismos que permitem que o software seja programado e mantido de forma flexível. Contudo, esta abordagem pode não ser adequada para todos os projetos e por isso é necessário avaliar como as suas vantagens e limitações se alinham às características e necessidades do próprio software.

Vantagens da arquitetura hexagonal

A principais vantagens da arquitectura hexagonal são:

  • Independência: dividir o software em diferentes camadas permite mantê-los isolados e independentes. Isso facilita as alterações e atualizações.
  • Flexibilidade: embora o núcleo do programa seja estático, os outros componentes não são absolutamente indispensáveis. Isso evita a dependência e facilita a migração para outros sistemas.
  • Integração de tecnologias: graças à sua modularidade, é fácil integrar novas tecnologias.
  • Testes unitários: a arquitetura hexagonal facilita a realização de testes automatizados para a lógica de negócio, que está localizada no núcleo do aplicativo e opera independentemente da infraestrutura.
  • Escalabilidade: essa metodologia permite que um software possa ser facilmente escalado, tanto em capacidade quanto em funcionalidades.
  • Desempenho: um software bem estruturado permite melhorar a qualidade do código, aumentar a funcionalidade e potencializar o desempenho dos aplicativos.
  • Manutenção: softwares com essas características costumam ser fáceis de entender e de manter.

Desvantagens da arquitetura hexagonal

Por outro lado, a arquitetura hexagonal apresenta algumas limitações:

  • Complexidade: a arquitetura hexagonal pode ser mais complexa do que outras abordagens de desenvolvimento de software devido aos seus múltiplos elementos.
  • Compreensão do código: pode exigir mais código do que outros tipos de arquiteturas. Isso tende a dificultar sua compreensão, especialmente quando o software cresce muito ou não está bem documentado.
  • Dispersão: com o passar do tempo, a arquitetura pode tornar-se muito dispersa e fragmentada, levando algumas partes do programa a serem mais complexas ou dependentes.
  • Design inicial: essa abordagem requer experiência e conhecimentos aprofundados da lógica de negócios e de sua infraestrutura, fazendo com que o design inicial seja mais complicado e demande mais tempo.
  • Risco de custo elevado: se a arquitetura hexagonal não for aplicada de forma adequada, ela pode se tornar uma solução excessivamente complexa e dispendiosa, tanto em termos de tempo quanto de recursos.
arquitectura-hexagonal

Exemplo de arquitetura hexagonal

Desde o seu surgimento, em 2005, muitas empresas já adotaram a arquitetura hexagonal no desenvolvimento de seus softwares. Um ótimo exemplo disso é a Netflix, a popular plataforma de streaming. Você pode conferir todos os detalhes de como eles usaram essa metodologia neste blog da empresa.

Durante seu processo de crescimento, a Netflix precisou que seu software fosse cada vez mais independente. Por essa razão, a plataforma utilizou a arquitetura hexagonal para dividi-lo em serviços menores e mais específicos, com o objetivo de ampliar as possibilidades de seus desenvolvedores.

Outro objetivo era que o software tivesse a capacidade de trocar fontes de dados sem que isso afetasse sua lógica de negócio. Ao aplicar essa abordagem, conseguiram isolar a lógica central e deixar de lado preocupações externas. Agora, já é possível alterar as fontes de dados sem que isso cause um impacto significativo em seu núcleo.

Ao adotar a arquitetura hexagonal, a Netflix não só aprimorou seu desempenho como também estabeleceu-se como uma solução escalável. Essa abordagem também facilita que seus desenvolvedores tomem decisões mais acertadas a partir dos dados coletados em testes, que se tornaram mais simples de executar.

A arquitetura hexagonal é, sem dúvida, uma abordagem que permite projetar softwares de alta qualidade. Por isso, qualquer desenvolvedor ou profissional do setor deve conhecer esse tipo de metodologia se quiser lançar aplicativos competitivos no mercado e oferecer o desempenho que os usuários necessitam. Assim, atualizar conhecimentos e desenvolver novas habilidades é essencial para enfrentar os desafios atuais e crescer tanto pessoalmente quanto profissionalmente.

Para ajudar as pessoas a progredirem, superar os desafios da quarta revolução industrial e crescer de forma inclusiva e sustentável, o Banco Santander está comprometido com três conceitos-chave para promover a empregabilidade: aprendizagem contínua, reciclagem profissional e formação complementar. Para isso, conta com o portal Santander Open Academy, um programa global, único e pioneiro.

Se você busca continuar crescendo, tanto pessoal quanto profissionalmente, consulte o portal de Santander Open Academy, que reúne centenas de oportunidades de formação em instituições internacionais de prestígio. Você poderá acessar treinamentos em tecnologia, idiomas, estudos, pesquisa, soft skills, estágios e liderança feminina, que te ajudarão a melhorar sua empregabilidade e redirecionar sua carreira profissional.

Quer se tornar um lifelong learner e continuar aprendendo para aumentar suas oportunidades de trabalho? O portal Santander Open Academy oferece muitas opções para que você possa atingir seus objetivos. Consulte a plataforma e lembre-se, você pode se inscrever em quantos programas quiser. Aproveite a oportunidade!

valores de una empresa