TacBlog

Teach
Aprendes más si compartes

Una pincelada sobre la arquitectura hexagonal

December 4, 2023

By:

#Equipo Tactech

,

Varios hexágonos unidos entre si

Los hexágonos son una forma geométrica interesante y de nombre original, pero esta vez, lo que nos preocupa es su relación con el mundo del desarrollo y la arquitectura de software. La arquitectura hexagonal es el nombre de “fantasía” para denominar a la basada en puertos y adaptadores.

Alistair Cockburn fue quien la difundió y es reconocido por ser el co autor del afamado “Agile Manifesto”

¿Pero qué significa en la práctica la arquitectura hexagonal? ¿Por qué es popular? ¿Y para qué proyectos es más útil? Acá te hacemos un resumen en simple.

Una definición simple

En este enfoque arquitectónico se busca separar las preocupaciones centrales de una aplicación de su entorno externo, facilitando la prueba y la evolución del sistema.  

En la arquitectura hexagonal, la lógica de negocios de una aplicación (también llamada núcleo) está en el centro y se comunica con el mundo exterior a través de puertos.

Estos puertos son interfaces que definen cómo el núcleo interactúa con el exterior. Por otro lado, los adaptadores son implementaciones específicas que conectan el núcleo a las tecnologías y protocolos concretos utilizados en el entorno externo.

De esta manera consigue desacoplar capas permitiendo que evolucionen de manera aislada. Así, este tipo de arquitectura cambia el foco del desarrollador quién se centra más en diferenciar entre el interior y el exterior del software.

La ventaja diferenciadora

Lo primordial es que facilita la sustitución de componentes externos sin afectar la lógica de negocio central. Esto mejora la modularidad, la prueba y la mantenibilidad del sistema. Lo que es sumamente positivo para los equipos de TI pues facilita el mantenimiento a futuro.

La arquitectura hexagonal es especialmente útil en aplicaciones donde la interfaz de usuario, las bases de datos, o cualquier otro componente externo, pueden cambiar con el tiempo.

Ojo, esto no significa que sea la respuesta para todo. Por mucho que esté de moda actualmente. Pero si tiene ventajas especialmente en aplicaciones, donde muchas cosas deben estar cambiando constantemente en distintas variables.

¿Dónde no? No vale la pena en desarrollos simples, con pocos cambios y donde los recursos son más escasos, porque finalmente, es de mayor complejidad por lo tanto la hexagonal suele ser más costosa. Y por supuesto, el conocimiento del equipo, el seguir los principios SOLID, entre otros, son clave para utilizar esta arquitectura.

Porque finalmente, es más compleja e infiere mayores conocimientos que se alejan incluso de sólo lo técnico. Se debe contar con un equipo o con una mentalidad centrada en el diseño modular, la flexibilidad y la adaptabilidad a medida que evoluciona el sistema. La formación continua y la disposición para aprender y adaptarse son cruciales en un entorno que utiliza esta arquitectura-

¿Y cuándo conviene usarla?

Bueno, lo primero, es recomendarte que no te dejes llevar solo por la moda. Lo primero es analizar bien cuál es lo que buscas lograr y la necesidad de tu negocio. Lo segundo, sería que cuentes con expertos tech que te puedan asesorar con sinceridad para que trabajes con aquello que se adapte mejor a tus necesidades, presupuesto y potencialidad futura.

Algo también importante es que el conocimiento de esta no es exclusivo, “para los especialistas tech es debido conocer las formas de trabajo en capas, para de igual manera al momento de plantear una solución sepa que su core o lógica de negocio solo se debe mutar cuando el cliente lo requiere mediante cambios al alcance o los limites del proyecto, en cualquier otro caso no se debe tocar nunca las funciones que albergan la lógica de negocio”, afirma Carlos Osorio, tech lead en el Equipon Tactech.

Cof, cof… en Tactech somos expertos, avisado quedas.

Pero para compartirte algunos ejemplos donde tiene un mayor uso:

  • Sistemas Financieros:

En aplicaciones financieras, donde las regulaciones y estándares pueden cambiar con frecuencia, la arquitectura hexagonal permite adaptarse rápidamente a nuevos requisitos sin cambiar la lógica central.

  • Comercio Electrónico:

En plataformas de comercio electrónico, la interfaz de usuario, las pasarelas de pago y los métodos de envío pueden evolucionar con el tiempo. La arquitectura hexagonal facilita la actualización de estos componentes sin afectar la gestión de productos, carritos de compra, etc.

  • Aplicaciones IoT (Internet de las Cosas):

En entornos IoT, donde los dispositivos y protocolos pueden variar, nos permite manejar la diversidad de manera eficiente, ya que los adaptadores pueden ser diseñados para interactuar con diferentes tipos de dispositivos.

  • En sistemas empresariales grandes y complejos:

Donde diferentes equipos trabajan en módulos independientes, la arquitectura hexagonal facilita el desarrollo paralelo y la integración, sin problemas de componentes.

Insistimos, estos son tan solo unos ejemplos. Pero es bueno conocerlos y conocer la base de esta arquitectura y para que entiendas su sentido a la hora de buscar desarrollar tu proyecto digital con equipos especializados.

Y como te adelantábamos antes, nosotros podemos ser ese equipo. Juntémonos y conversamos: contacto@tactech.cl. Te asesoramos con sinceridad y expertiz.


Fuentes: Medium, Hubspot, Tokio, Cosas de Devs, Chat GTP y conocimientos del #EquipoTactech.
Fotografía de portada: Thimote Courtier desde Unsplash