Está en la página 1de 7

UNIVERSIDAD TENICA DE MANABI.

CARRERA EN INGENIERIA DE SOFTWARE.

MATERIA:ARQUITECTURA DEL SOFTWARE.

NOMBRE: GEORGE MICHAEL VALDIVIESO

CEDEÑO.

NIVEL: CUARTO SEMESTRE 2022-2023.

DOCENTE/S: ENRIQUE MACIAS.

TEMA: ARQUITECTURA HEXAGONAL.


ARQUITECTURA HEXAGONAL

INTRODUCCION

La arquitectura hexagonal, también conocida como puertos y adaptadores, es un patrón

estructural que buscamos para crear una aplicación que no requiera tecnologías. Es

posible la capacidad de usar diferentes interfaces, como API o aplicaciones web, y utilizar

tecnologías de persistencia y comunicaciones para pruebas y comunicación. La necesidad

de diferenciar entre capas y reglas se ha visto amplificada por el aumento significativo de

la complejidad de los sistemas que se están desarrollando actualmente, lo que lleva al uso

de "Clean Architectures" o "arquitecturas limpias".

La especialización del adaptador es el uso de un puerto para propósitos específicos. Un

puerto o interfaz es implementado por una clase. La arquitectura se basa en un conjunto

de estándares, patrones y reglas que se expresan en capas y se agregan para definir su

asignación, acceso, flujo, etc. a lo largo del proyecto. Esta arquitectura se caracteriza por

su flexibilidad, aunque obliga a seguir pautas y reglas en nuestros proyectos.

Sus principios aún se mantienen y se les presta atención, aunque su implementación,

estructura de directorios e identificación de capas varían en varios proyectos. El objetivo

de la arquitectura hexagonal es separarnos de la aplicación de cada capa, dando como

resultado distintas capas que evolucionan de forma independiente. La estructura

hexagonal prioriza la separación de tareas y la reutilización de código.

DESARROLLO
El hexágono tiene la intención de enfatizar visualmente, para evitar estar limitado por la

percepción unidimensional de las capas y todo lo que evoca, considere las asimetrías

internas y externas y la similitud de los puertos, estando presente un número específico

de puertos distintos. La forma del hexágono se eligió para que los usuarios del esquema

tuvieran espacio para agregar puertos y adaptadores según fuera necesario en lugar de

estar limitados a un esquema unidimensional en capas, no porque el número seis sea

significativo. Este sorprendente resultado visual es el origen del término "arquitectura

hexagonal".

¿POR QUÉ SE CREARON LAS ARQUITECTURAS HEXAGONALES?

La invasión de la lógica comercial en el código de la interfaz de usuario ha sido durante

mucho tiempo una de las mayores pesadillas en las aplicaciones de software. Tres

cuestiones surgen a raíz de esto.

El sistema no se puede probar fácilmente con conjuntos de pruebas automatizados porque

parte de la lógica que debe probarse depende de detalles visuales que cambian con

frecuencia, como el tamaño de un campo de entrada o la ubicación de un botón. También

se vuelve imposible cambiar de un sistema operado por lotes a un sistema dirigido por

humanos. Como resultado, se vuelve difícil o imposible permitir que el programa sea

utilizado (o guiado por) otro programa cuando sea necesario.

Al centrarse en la simetría de la situación, es decir, una aplicación interna que interactúa

con elementos externos a través de varios puertos, la arquitectura hexagonal, o puertos y

adaptadores, desarrollados por Alistair Cockburn, resuelve estos problemas. Es posible

aplicar simetría a los componentes exteriores de la aplicación.

PUERTOS Y ADAPTADORES
Los "propósitos" de los elementos del esquema se unen bajo el término "puerto y

adaptadores". Una comunicación que es útil es identificada por un puerto. Para varias

tecnologías que se pueden conectar a un puerto, normalmente hay muchos adaptadores

disponibles para cada puerto. Estos incluyen un contestador automático, una pantalla

táctil o un teléfono de voz, una GUI, un arnés de prueba, un controlador por lotes, una

interfaz http, una interfaz directa de programa a programa (es decir, RPC), una base de

datos simulada en memoria o una base de datos real (posiblemente diferentes bases de

datos para desarrollo, prueba y producción).

Un punto de entrada de la aplicación que es independiente de los consumidores es un

puerto. Una interfaz en muchos lenguajes de programación podría servir como una buena

analogía. Sin saber nada sobre cómo se implementará en la práctica, podemos usar esta

interfaz. Los adaptadores sirven como enlace entre una aplicación y el servicio que

requiere. Su propósito es cambiar la forma en que los actores externos se comunican entre

sí y cómo funciona la lógica de la aplicación. Están en consonancia con la forma en que

se utilizan los puertos.

La arquitectura hexagonal se puede dividir en tres capas:

Capa de Dominio

La capa de dominio o, dicho de otro modo, las clases de su modelo, es el corazón de la

aplicación. Alberga las reglas de negocio y se encarga de preservar la consistencia del

estado de los objetos del dominio. El comportamiento de su aplicación y las limitaciones

sobre cómo otras capas se comunicarán con ella están definidos por la capa de dominio y

su lógica empresarial. Si bien el modelo controla y hace uso del estado que representa el

dominio, la infraestructura se encarga de manejar los aspectos técnicos de cómo se

almacena.
Capa de Aplicación

El usuario está involucrado. La ubicación de los controladores o servicios que permiten

la conexión con el mundo exterior y la validación de los datos que manejan es típicamente

donde se encuentran esas funciones.

Capa de Dominio

En esta capa se incluyen las implementaciones de conexiones con partes externas, que

normalmente están representadas por interfaces en el resto del proyecto. Podrían ser las

clases que implementan repositorios de dominio, por ejemplo. Esto le permite cambiar el

marco siempre que se respete el contrato, por lo que podría usar RedisUserRepository o

MongoUserRepository sin que tenga un impacto en el Dominio. Incluso podría crear un

InMemoryUserRepository que almacene usuarios en una lista en la memoria y seguiría

funcionando (aunque no habría persistencia en este caso).

Encaja muy bien con el concepto de DDD porque fomenta que nuestro dominio sea el

componente central de todas las capas y no esté acoplado a nada externo. Dado que

muchos conceptos y patrones de diseño existentes simplemente se agrupan, el

componente táctico del diseño basado en dominios no es nada nuevo. Por lo tanto,

podríamos concluir que la Arquitectura Hexagonal sirve como el pilar arquitectónico

principal para el DDD.


CONCLUSION

Seguir estas pautas sencillas no es difícil y le ahorrará muchos dolores de cabeza a largo

plazo. Se producirá un sistema que sea intrínsecamente comprobable superponiendo el

software y siguiendo la Regla de Dependencia, junto con todas las ventajas que esto

implica. Podrá reemplazar esos componentes obsoletos con la menor cantidad de

dificultad cuando algunos componentes externos del sistema, como la base de datos o el

marco web, se vuelvan obsoletos.


BIBLIOGRAFIAS

Ugalde, F. (2019, septiembre 17). Introducción a la Arquitectura Hexagonal.

Francisco Ugalde. https://franciscougalde.com/introduccion-a-

laarquitectura-hexagonal

CloudAPPi. (2021, marzo 2). Introducción a la Arquitectura Hexagonal.

CloudAPPi. https://cloudappi.net/introduccion-a-la-

arquitecturahexagonal/

Rolfo, M. (2022, junio 8). Arquitectura Hexagonal. Codigoencasa.com;

Codigoencasa.com. https://codigoencasa.com/arquitectura-hexagonal/

También podría gustarte