La arquitectura hexagonal, también llamada de puertos y adaptadores o clean arquitecture separa nuestra aplicación en distintas capas o regiones con su propia responsabilidad. Si quieres saber cómo es este tipo de arquitectura, no te pierdas este artículo donde te lo contamos: ¡pa-ra-de-bus-car!

¿Qué es la arquitectura hexagonal?

La arquitectura hexagonal es un tipo de arquitectura de software que busca separar el core lógico de la aplicación y dejarlo en el centro, aislado del exterior y de otras interacciones. Este tipo de arquitectura cambia el foco del programador que se centra más en diferenciar entre el interior y el exterior del software.

Esta conexión se realiza mediante puerto y se implementa por lo que se conoce como adaptadores. De ahí que la arquitectura hexagonal sea conocida también de forma habitual como arquitectura de puertos y adaptadores. 

Por qué también se llama puertos y adaptadores

Este modelo se conoce también como arquitectura de puertos y adaptadores porque la conexión entre el core y el exterior se hace mediante:

  • Puertos: contratos (interfaces) que definen cómo se entra o se sale del núcleo.
  • Adaptadores: implementaciones concretas que permiten conectar esos puertos con tecnologías reales (una API, una base de datos, un framework, un componente UI, etc.).

La representación “en hexágono” es una forma visual de mostrar que hay múltiples puntos de entrada y salida. El número de lados no es lo importante; lo importante es que cada lado simboliza una forma de conectar el sistema sin contaminar su núcleo.

Interior vs. exterior: qué se queda en el core y qué va fuera

  • Interior (core): modelo de dominio, reglas de negocio y casos de uso. Es la parte que quieres proteger y mantener estable.
  • Exterior: UI, controladores, base de datos, caché, mensajería, integraciones con microservicios o sistemas en red.

Con este enfoque, la aplicación puede ser “dirigida” por distintos agentes: usuarios, otros programas, pruebas automatizadas o scripts, sin que el core cambie por ello.

Cómo funciona la arquitectura hexagonal

La arquitectura hexagonal crea una separación clara: el core no depende de detalles externos. En su lugar, define interfaces y obliga a que el resto del sistema se adapte a ellas.

Puertos: contratos para entrar y salir del core

Los puertos son el mecanismo que mantiene el núcleo limpio. Funcionan como contratos que describen:

  • Qué necesita el core para interactuar con el exterior (salidas),
  • Cómo se le puede pedir que haga algo (entradas).

Así, el core no “sabe” si está hablando con una base de datos concreta, una API real o un mock de pruebas. Solo conoce el contrato.

Adaptadores primarios y secundarios: qué hace cada uno

En la práctica suelen aparecer dos tipos de adaptadores:

  • Adaptadores primarios (driving): reciben la petición desde fuera y activan el core.
    • Ejemplos: controladores HTTP, UI, CLI, handlers de eventos.
    • Usan puertos de entrada para invocar casos de uso.
  • Adaptadores secundarios (driven): son los que el core utiliza para salir al exterior.
    • Ejemplos: repositorios de base de datos, clientes de API, cachés, colas de mensajes.
    • Implementan puertos de salida definidos por el core.

De este modo, el core se mantiene encapsulado y el exterior se vuelve sustituible.

Capas habituales: dominio, casos de uso y servicios externos

Aunque cada equipo lo adapta a su contexto, suele organizarse así:

  • Dominio: entidades, reglas y lógica de negocio pura.
  • Casos de uso / aplicación: orquestan acciones del negocio y coordinan dependencias a través de puertos.
  • Infraestructura: implementa adaptadores concretos (DB, APIs, frameworks, UI, etc.).

Principios de la arquitectura hexagonal

La arquitectura hexagonal se trata de un tipo de arquitectura especialmente utilizada hoy en día. No es una arquitectura compleja de montar y se basa en algunos principios y técnicas fundamentales que veremos a continuación:

Separación explícita de responsabilidades

El objetivo es que cada parte tenga una responsabilidad clara y que el core no se vea afectado por decisiones externas (tecnología, framework, cambios de UI, etc.).

Inversión de dependencias y abstracciones

El principio más importante es la inversión de dependencias: en vez de que el core dependa de implementaciones concretas (como un driver de base de datos), el core define abstracciones y las implementaciones viven fuera.

Eso permite reemplazar una base de datos, cambiar un proveedor o mover lógica de un servicio a otro con menor impacto en el núcleo.

DTOs y límites: cómo cruzar fronteras sin acoplarte

Para cruzar límites entre capas sin “arrastrar” dependencias, se suelen usar estructuras de datos simples (como DTOs) y contratos claros. La meta es que el core no quede ligado a modelos externos o a objetos propios de un framework.

Ventajas de usar arquitectura hexagonal

Descubre qué ventajas tiene y cómo implementarla en frontend con buenas prácticas.

Mantenibilidad y cambios sin efecto dominó

Separar core e infraestructura permite que las capas evolucionen con menos fricción. Puedes ajustar la UI o cambiar una integración sin reescribir la lógica central.

Testing más sencillo y fiable

Al estar desacoplada, la aplicación es más fácil de probar:

  • puedes testear casos de uso sin levantar base de datos,
  • puedes sustituir adaptadores por dobles (mocks/fakes),
  • y validar reglas de negocio con rapidez.

Flexibilidad tecnológica y escalabilidad

La arquitectura facilita la sustitución de tecnologías y el crecimiento del sistema por módulos, lo que mejora la escalabilidad técnica a medida que se añaden funcionalidades.

Arquitectura hexagonal en frontend: cómo aplicarla

Aunque se asocia mucho a backend, la arquitectura hexagonal también encaja muy bien en desarrollo frontend, sobre todo en aplicaciones que crecen y necesitan orden, pruebas y evolución sin caos.

Capa de aplicación: el corazón del frontend

Aquí vive la lógica principal de la app: estado, reglas, coordinación de acciones y casos de uso. Esta capa debería evitar depender directamente del framework (cuando sea posible) y mantenerse centrada en el comportamiento.

Adaptadores en frontend: UI, APIs y servicios externos

En frontend, los adaptadores suelen ser:

  • UI (componentes, vistas): actúan como adaptadores primarios que reciben eventos del usuario.
  • Servicios externos (API, storage, analytics): suelen ser adaptadores secundarios que implementan puertos de salida.
  • El objetivo es el mismo: que la lógica principal no esté pegada a un detalle concreto (por ejemplo, una librería de peticiones o una implementación específica de almacenamiento).

Interactores o casos de uso: coordinando interfaz y lógica

Los casos de uso (también llamados interactores) encapsulan la lógica de negocio o de aplicación: qué debe ocurrir cuando el usuario hace algo, cómo se valida, qué llamadas externas se realizan y qué respuesta vuelve a la UI.

Buenas prácticas para desarrollar con arquitectura hexagonal

Vamos a ver ahora algunas de las mejores prácticas para desarrollar con éxito usando como base la arquitectura hexagonal en frontend: ¡atención!

Mantén la separación de preocupaciones

Define bien qué parte es core y qué parte es infraestructura. Si algo es un detalle intercambiable (framework, DB, HTTP, componentes), manténlo fuera del núcleo.

Diseña pensando en pruebas desde el inicio

Si tus puertos están bien definidos, probar es mucho más fácil. Asegúrate de que los casos de uso se puedan ejecutar sin depender de elementos externos reales.

Haz tu arquitectura evolutiva, no rígida

La arquitectura hexagonal no consiste en “crear capas por crear”. Úsala para proteger lo importante (la lógica) y permitir cambios en lo demás sin romperlo todo.

¡Es la hora de formarte para ser un samurai en arquitectura hexagonal!

Para conocer a fondo la arquitectura hexagonal y en general para formarte en este ámbito informático puedes hacerlo con una formación relacionada con la programación.  Aquí puedes elegir desde programación con java, uno de los lenguajes más usados en todo el mundo que te permitirá obtener la certificación OCP de forma sencilla. Esta formación te permite desarrollar nuevas aplicaciones, crear nuevas soluciones multiplataforma y resolver problemas específicos a través de las creaciones de java.

Puedes optar también por un curso de programación web front-end, con formación en HTML5, CSS3 y JavaScript. Aprenderás a dominar todos estos términos de forma profesional y técnica para poder trabajar en una empresa de desarrollo de software o gestionar una app interna de una gran compañía.

Si lo tuyo son las aplicaciones, un curso de desarrollo de apps para Android te capacitará para crear nuevas apps para este sistema operativo que opera más del 85% de los dispositivos móviles en todo el mundo y más del 90% en España.

Además, puedes aprender a programar aplicaciones con el lenguaje Swift4 y Xcode9 para crear aplicaciones móviles para iOS y MacOS y por último aprender la programación de Phyton y así utilizar la sintaxis de Python para diseñar programas sencillos, trabajar con librerías, realizar conexiones con bases de datos, implementar proyectos… Este lenguaje se emplea en casi todos los sectores

La formación en el área informática pasa también por inteligencia artificial, machine learning, deep learning, back end etc.

Si eliges cualquiera de estas vías formativas vas a tener que tener ciertas habilidades tanto para estudiar como para trabajar posteriormente en el sector.  Ahora ya sabes qué es la arquitectura hexagonal, cómo funciona, y qué puedes hacer par ser un programador especializado en este tipo de arquitectura.

Si necesitas ayuda para lograrlo, rellena el formulario, samurai:

¡Tokio School te puede guiar para conseguir tu objetivo!