# data[].attributes.body
Las capas son partes abstractas horizontales de una aplicación. Sus límites forman un ángulo recto con el flujo de datos. Las capas representan los diferentes niveles y tipos de abstracción de las preocupaciones que acompañan al desarrollo de software.

# data[].attributes.headline
2. ¿Por qué es importante dividir la aplicación en capaz?

# data[].attributes.subject
2. ¿Por qué es importante dividir la aplicación en capaz?

# data[].attributes.body
Mantiene el Principio de Responsabilidad Única .

Sigue la separación de preocupaciones .

Aísla los roles y habilidades de desarrollo. (Capa de presentación: desarrollo FE, capa comercial: desarrollo BE)

Admite múltiples implementaciones.

Diferentes tasas de cambio.

Aplicación de cortes a unidades más manejables.

# data[].attributes.body
Capa de presentación

Es la interfaz de usuario y de comunicación de la aplicación, donde el usuario final interactúa con la aplicación. Su objetivo principal es mostrar información al usuario y recopilar datos de este.

capa de negocio

Aquí residen las funciones que se ejecutan, se reciben las peticiones del usuario, se procesa la información y se envían las respuestas tras el proceso. Se denomina capa de negocio o capa de lógica del negocio, porque es aquí donde se establecen todas las reglas que deben cumplirse.

Capa de acceso a datos

Esta capa es la encargada de almacenar los datos del sistema y de los usuarios. Su función es almacenar y devolver datos a la capa de negocio, aunque para esto también es necesario en algunos casos, que tengan procedimientos almacenados y funciones dentro de la capa.

# data[].attributes.body
La arquitectura hexagonal se basa en los siguientes principios y objetivos fundamentales:

Separar de forma explícita y contundente las capas de usuario, negocio y servidor.

Derivar y empujar las dependencias desde las capas de usuario y servidor hacia la lógica de negocio.

Aislar e independizar al máximo cada una de las capas, suprimiendo acoplamientos indebidos y dotando a cada componente de una responsabilidad muy específica.

# data[].attributes.body
Capa de presentación

Es sencillamente la interfaz de usuario final. A grandes rasgos, se encarga de mostrar la información al usuario, interpretar sus órdenes y desencadenar las acciones de negocio pertinentes a través de su comunicación al resto de capas intervinientes.

Capa de aplicación

Define las tareas que debe realizar el software y dirige los objetos de dominio expresivo para resolver los problemas. Las tareas de las que se encarga esta capa son significativas para el negocio o necesarias para la interacción con las capas de aplicación de otros sistemas.

Esta capa se mantiene «delgada». No contiene reglas de negocio o conocimiento, sino que sólo coordina las tareas y delega el trabajo a las colaboraciones de los objetos de dominio en la capa siguiente.

Capa de dominio

También llamada capa de modelo. Es el componente de la arquitectura responsable de representar los conceptos del negocio, la información sobre la situación del negocio y las reglas del negocio. El estado que refleja la situación de la empresa a través de su sistema digital se controla y utiliza aquí, aunque los detalles técnicos de su almacenamiento se delegan en la infraestructura.

Capa de infraestructura

Esta capa proporciona las capacidades técnicas genéricas que soportan las capas superiores: envío de mensajes para la aplicación, persistencia para el dominio, dibujo de widgets para la UI, etc.

# data[].attributes.body
https://sixphere.com/blog/arquitecturas-limpias-ddd-parte-1/#:~:text=Arquitecturas%20limpias%20y%20el%20hex%C3%A1gono,hacia%20la%20l%C3%B3gica%20de%20negocio.

https://levelup.gitconnected.com/layers-in-software-architecture-that-every-sofware-architect-should-know-76b2452b9d9a

https://picodotdev.github.io/blog-bitix/2021/02/introduccion-a-ddd-y-arquitectura-hexagonal-con-un-ejemplo-de-aplicacion-en-java/#puertos-y-adaptadores

# data[].attributes.attachment_link.readable_text
Desde un punto de vista práctico, este principio de arquitectura se basa en una idea tan antigua como eficaz: divide y vencerás. Separar o partir el problema en trozos independientes facilitará no sólo la comprensión del problema global, sino que hara más sencilla la implementación de la solución y su posterior mantenimiento. Por otro lado, prepara el terreno para alcanzar una mayor extensibilidad y escalabilidad.

¿Te interesa profundizar aún más en este principio de arquitectura? Este artículo te será de gran ayuda. Exploremos de forma breve y concisa cada uno de los componentes principales de la arquitectura hexagonal.

Capa de presentación

Es sencillamente la interfaz de usuario final. A grandes rasgos, se encarga de mostrar la información al usuario, interpretar sus órdenes y desencadenar las acciones de negocio pertinentes a través de su comunicación al resto de capas intervinientes.

Cabe destacar en este punto que, en ocasiones y con mucha asiduidad, se identifica al usuario o actor externo con un ser humano. Nada más lejos de la realidad. El usuario final puede ser cualquier otra entidad: una máquina, un dispositivo IoT, otro sistema informático, etc. Es un punto a tener muy en cuenta de cara al diseño de esta capa.

Capa de aplicación

Define las tareas que debe realizar el software y dirige los objetos de dominio expresivo para resolver los problemas. Las tareas de las que se encarga esta capa son significativas para el negocio o necesarias para la interacción con las capas de aplicación de otros sistemas.

Esta capa se mantiene "delgada". No contiene reglas de negocio o conocimiento, sino que sólo coordina las tareas y delega el trabajo a las colaboraciones de los objetos de dominio en la capa siguiente. No tiene estado que refleje la situación del negocio, pero puede tener estado que refleje el progreso de una tarea para el usuario o el programa.

Capa de dominio

O también llamada capa de modelo. Es el componente de la arquitectura responsable de representar los conceptos del negocio, la información sobre la situación del negocio y las reglas del negocio. El estado que refleja la situación de la empresa a través de su sistema digital se controla y utiliza aquí, aunque los detalles técnicos de su almacenamiento se delegan en la infraestructura.

En definitiva, es el componente que implementa los flujos de trabajo o producción de la compañía a través de un lenguaje muy próximo al empresarial.

Capa de infraestructura

Esta capa proporciona las capacidades técnicas genéricas que soportan las capas superiores: envío de mensajes para la aplicación, persistencia para el dominio, dibujo de widgets para la UI, etc. Asimismo, es la responsable de la conexión con los sistemas/agentes externos a nuestro dominio.

La capa de infraestructura también puede soportar el patrón de interacciones entre las cuatro capas a través de un marco arquitectónico y es también llamada capa de anticorrupción en cuanto a que evita que las capas de negocio se "contaminen" con elementos en realidad ajenos a éste.

¿Quieres más información? Echa un vistazo a esta entrada.
En el próximo capítulo de esta serie, se planteará un problema real y el diseño de la solución aplicando éste y otros principios.

# data[].attributes.attachment_link.title
Arquitecturas limpias y DDD, un recorrido práctico. Parte 1 - Sixphere

# data[].attributes.attachment_link.description
Desde un punto de vista práctico, este principio de arquitectura se basa en una idea tan antigua como eficaz: divide y vencerás. Separar o partir el problema en trozos independientes facilitará no sólo la comprensión del problema global, sino que hara más sencilla la implementación de la solución y su posterior mantenimiento.