Arquitectura hexagonal: innovando en el diseño de software

06/07/2023 | Santander Universidades

Con distintas metodologías, arquitecturas y más de 2.500 lenguajes de programación diferentes, elegir los componentes correctos y mantener las aplicaciones limpias y funcionales, según las necesidades de cada proyecto, es todo un desafío para las empresas, así como para los programadores e ingenieros. 

Sin embargo, la arquitectura hexagonal de desarrollo de software está destacando en los últimos años, gracias a la flexibilidad que ofrece, a la hora de asegurar la calidad y escalabilidad del software, manteniendo la independencia entre la lógica del negocio y los detalles técnicos del sistema. ¿Quieres saber qué es la arquitectura hexagonal y cómo funciona? En este artículo, te ofrecemos todas las claves. 

CTA

¿Qué es la arquitectura hexagonal?

La arquitectura hexagonal, también conocida como “patrón de puertos y adaptadores”, es una metodología de desarrollo de software creada por Alistair Cockburn en 2005. Se trata de una propuesta que aboga por mantener la independencia entre los diferentes componentes de un programa informático, asegurando su fácil interconectividad mediante puertos y adaptadores. 

De este modo, su objetivo es evitar algunos de los errores estructurales que suelen producirse en el desarrollo de software orientado a objetos. Por ejemplo, es habitual que los distintos módulos sean demasiado dependientes entre ellos, algo que aumenta la complejidad y reduce la flexibilidad a la hora de hacer cambios o intercambiar componentes.

Asimismo, la arquitectura hexagonal también favorece la programación Clean Code al mantener separados de forma explícita la interfaz de usuario, la lógica de negocio y el servidor. Esto facilita la automatización de pruebas, el mantenimiento y la corrección de errores. 

En este enfoque arquitectónico, los componentes de software se representan con forma de hexágono. En el centro, se pone el núcleo de la aplicación, el cual está rodeado por los diferentes módulos. Además, entre ellos, se deja el suficiente espacio para representar las conexiones entre los diferentes componentes. 

Componentes de la arquitectura hexagonal

Para entender cómo funciona la arquitectura hexagonal de software, es necesario identificar de manera detallada los componentes sobre los que se sostiene esta metodología de desarrollo. En este sentido, podemos diferenciar entre dominio, puertos, adaptadores e infraestructura. 

Dominio (núcleo)

El dominio o núcleo se sitúa en la capa central del hexágono y contiene toda la lógica de negocio de la aplicación, así como las principales reglas de negocio, restricciones, comportamiento o modelo de datos. El dominio debe funcionar de forma independiente de las demás capas.

Puertos 

Los puertos actúan como punto de entrada y permiten la interacción entre el núcleo de la aplicación y los adaptadores. En este sentido, se encargan de transmitir la información y de hacer funcionar a los adaptadores. Puede haber tantos puertos como sean necesarios. 

Podemos imaginarlos como un puerto USB en el que es posible conectar distintos tipos de dispositivos.

Adaptadores

Los adaptadores permiten la comunicación entre los usuarios y el núcleo, haciendo uso de los puertos como intermediarios. Pueden ser reemplazados sin que esto afecte al núcleo, ya que seguirán pudiendo intercambiar información gracias a los puertos. 

Los adaptadores se encuentran en la capa de “infraestructura”, la cual está en el exterior del hexágono, contiene todos los elementos de entrada y salida de la aplicación y permite que esta última se comunique con servicios externos.

arquitectura-hexagonal

Ventajas y desventajas de la arquitectura hexagonal

Como puedes ver, la arquitectura hexagonal dispone de diferentes mecanismos que permiten programar y mantener el software de forma flexible. No obstante, este enfoque puede no ser adecuado para todos los proyectos, por lo que es necesario valorar cómo encajan sus ventajas y limitaciones con las características y necesidades del propio software. 

Ventajas de la arquitectura hexagonal

Entre las ventajas de la arquitectura hexagonal, podemos destacar las siguientes:

  • Independencia: la división del software en diferentes capas permite mantenerlas aisladas e independientes. Esto facilita los cambios y las actualizaciones. 
  • Flexibilidad: mientras que el núcleo del programa se mantiene estático, los demás componentes no son totalmente imprescindibles. Esto evita la dependencia o dificultades para migrar a otro sistema. 
  • Integración de tecnologías: gracias a su modularidad, es fácil integrar nuevas tecnologías.
  • Pruebas unitarias: la arquitectura hexagonal facilita la ejecución de pruebas automatizadas para la lógica de negocio, ya que esta se encuentra en el núcleo de la aplicación y es independiente de la infraestructura.
  • Escalabilidad: esta metodología permite que un software se pueda escalar de manera fácil, tanto en capacidades como en funcionalidades.
  • Rendimiento: un software bien estructurado permite mejorar la calidad del código, incrementar la funcionalidad y potenciar el rendimiento de las aplicaciones.
  • Mantenimiento: de la misma forma, un software de estas características suele ser fácil de entender y mantener.

Desventajas de la arquitectura hexagonal

Por otro lado, la arquitectura hexagonal presenta algunas limitaciones como las siguientes:

  • Complejidad: la arquitectura hexagonal puede resultar más compleja que otros enfoques de desarrollo de software debido a sus múltiples elementos.
  • Comprensión del código: puede requerir de más código que otros tipos de arquitecturas. Esto puede dificultar su comprensión, sobre todo cuando este crece mucho o no está bien documentado. 
  • Dispersión: con el paso del tiempo, la arquitectura del software puede dispersarse y resquebrajarse demasiado, lo que puede hacer que ciertas partes del programa resulten más complejas o dependientes. 
  • Diseño inicial: este enfoque requiere de experiencia y conocimientos profundos de la lógica de negocio y su infraestructura, por lo que el diseño inicial será más complicado y necesitará de más tiempo. 
  • Riego coste elevado: si la arquitectura hexagonal no se aplica de forma adecuada, esta se puede tornar en una solución demasiado compleja y costosa, tanto en términos de tiempo como de recursos. 
arquitectura-hexagonal

Ejemplo de arquitectura hexagonal

Desde su aparición en 2005, muchas empresas ya han adoptado la arquitectura hexagonal a la hora de desarrollar su software. Un gran ejemplo de ello es Netflix, la popular plataforma de streaming. De hecho, puedes consultar todos los detalles de cómo han empleado esta metodología en su blog

Cuando Netflix empezó a crecer, necesitaba que su software fuera cada vez más independiente. Por esta razón, la plataforma aprovechó la arquitectura hexagonal para dividirlo en servicios más pequeños y específicos, con el fin de ampliar las posibilidades de sus desarrolladores. 

Asimismo, otro de sus objetivos era que su software tuviera la capacidad de intercambiar fuentes de datos sin que esto afectara a su lógica de negocio. Aplicando este enfoque, lograron aislar la lógica central y olvidarse de las preocupaciones externas. En este sentido, ahora pueden cambiar fuentes de datos sin que esto tenga un impacto significativo en su núcleo. 

De este modo, gracias a la arquitectura hexagonal, Netflix no solo ha mejorado su rendimiento, sino que también ha permitido que sea una solución escalable. Por otro lado, esta metodología permite a sus desarrolladores tomar mejores decisiones a partir de los datos obtenidos en las pruebas, las cuales también son más sencillas de ejecutar. 

Y es que la arquitectura hexagonal es, sin duda, un enfoque que permite diseñar software de alta calidad. Por ello, cualquier desarrollador o profesional del sector debe conocer este tipo de metodologías si quiere lanzar aplicaciones competitivas en el mercado y ofrecer el rendimiento que los usuarios necesitan. En este sentido, actualizar conocimientos es algo necesario para afrontar nuevos retos y crecer en el plano personal y profesional. 

Con este mismo propósito de fomentar la empleabilidad en este campo profesional, Banco Santander apuesta por tres conceptos clave: el aprendizaje continuo, el reciclaje profesional y la capacitación adicional. Para ello, cuenta con el portal de Santander Open Academy, un programa global, único y pionero. 

Si buscas seguir creciendo tanto personal como profesionalmente, consulta el portal de Santander Open Academy, en el que encontrarás cientos de oportunidades para formarte de la mano de instituciones de prestigio internacional. Podrás acceder a capacitaciones en tecnología, idiomas, estudios, investigación, soft skills, prácticas y liderazgo femenino, que te ayudarán a mejorar tu empleabilidad o reorientar tu carrera profesional.

¿Quieres convertirte en un lifelong learner y seguir aprendiendo para aumentar tus oportunidades laborales? El portal de Santander Open Academy te ofrece un montón de opciones para que puedas alcanzar tus objetivos. Consulta la plataforma y recuerda, puedes inscribirte en tantos programas como quieras. ¡Aprovecha la oportunidad!

valores de una empresa

Más posts interesantes que leer...