Contenido del curso
Conceptos detrás de las Arquitecturas Limpias
Arquitecturas de referencia
Dominio de una arquitectura
- 11

Errores que rompen el encapsulamiento del dominio
08:36 min - 12

Transaction Script: cuándo usarlo y sus límites
08:25 min - 13

Inyección de Dependencias e Inversión de Control en Java
07:40 min - 14

Qué es el modelo de dominio en POO
06:43 min - 15

Capa de Servicios y Fachada en la Arquitectura de Software
04:19 min - 16

Casos de uso en Clean Architecture con C#
07:08 min - 17

CQRS: separar comandos e consultas em C#
11:59 min
Capa externa
- 18

Acceso a datos en arquitectura limpia
06:03 min - 19

Patrón Repository para separar datos del dominio
08:17 min - 20

REST APIs en arquitectura limpia con Spring Boot
05:27 min - 21

Implementación de Integraciones con el Patrón Adapter en Arquitectura Limpia
09:06 min - 22

Pruebas Unitarias en Arquitecturas Limpias con Java y Spring Boot
05:38 min - 23

Mocks y stubs en pruebas de integración
09:26 min
Cierre
Cómo adaptar arquitecturas limpias a tu proyecto
Resumen
Las arquitecturas de software como la hexagonal, cebolla o limpia no son recetas rígidas: son puntos de partida que necesitas adaptar a tu contexto. Aquí entenderás cómo personalizar capas, respetar la regla de la dependencia y manejar la convención de nombres que usaremos en el curso.
¿Por qué debes adaptar la arquitectura a tu contexto?
Ninguna arquitectura es universal. Lo que funciona en un proyecto puede no encajar en otro, y esa es justamente la razón por la que debes tomarlas como base flexible.
En la arquitectura hexagonal, por ejemplo, el número de puertos y adaptadores no tiene que ser seis. Puede crecer o reducirse según lo que tu sistema necesite comunicar con el exterior. Lo mismo pasa con las capas del dominio: puedes tener una sola, dos o incluso más, y en la capa externa aplica la misma lógica.
Me gusta mucho la definición de Ralph Johnson, uno de los autores del libro clásico sobre patrones de diseño: la arquitectura es acerca de las cosas importantes, sean las que estas sean. Traducción práctica: lo que es crítico en tu negocio debería estar reflejado como ciudadano de primer nivel en tu arquitectura.
En MakerWatch, por ejemplo, las redes sociales son el corazón del negocio. Por eso, cuando trabajamos con una arquitectura limpia, ese elemento quedó reflejado como pieza central. En tu caso, identifica qué es lo que mueve tu negocio y dale ese mismo trato.
¿Existe una arquitectura de software perfecta? No. La arquitectura correcta depende del contexto, del negocio y de lo que sea importante para tu sistema. Lo que funciona en una app social puede ser excesivo en una herramienta interna.
¿Qué regla nunca puedes romper en una arquitectura limpia?
Aquí viene la única restricción fuerte: la regla de la dependencia es sagrada. Tienes libertad para decidir cuántas capas usas en el dominio o en la capa externa, pero el sentido de las dependencias siempre apunta hacia adentro.
Esa regla es la que te permite controlar el acoplamiento y, sobre todo, proteger la lógica de negocio de los detalles externos como bases de datos, frameworks o APIs. Si la rompes, pierdes la razón de ser de toda la arquitectura.
¿Por qué los nombres de arquitecturas y capas se usan de forma arbitraria?
Cuando explores código en GitHub, artículos o repositorios, vas a notar algo curioso: los nombres se intercambian todo el tiempo. Lo que en un lugar llaman arquitectura cebolla, en otro lo presentan como hexagonal, y viceversa. Pasa igual con las capas.
No te obsesiones con el nombre exacto. Lo que importa es entender qué es una arquitectura limpia, cómo se organiza y por qué fluyen así las dependencias. Por eso en el curso nos apegamos a las definiciones originales de los autores, evitando interpretaciones que generen ambigüedad.
¿Arquitectura hexagonal y arquitectura cebolla son lo mismo? No exactamente, aunque comparten principios como la regla de la dependencia y la separación entre dominio y capa externa. Los nombres se usan indistintamente en la práctica.
¿Cuál es la convención de capas que usaremos en el curso?
Para evitar confusiones con la variedad de términos que circulan, fijamos una convención clara. El elemento central siempre será el dominio, y todo lo que lo rodea lo llamaremos la capa externa.
El dominio, además, lo separamos en dos capas internas:
- Modelo de dominio: la parte más central, donde viven las entidades del negocio.
- Capa de aplicación: orquesta los casos de uso y conecta el modelo con el exterior.
- Capa externa: contiene adaptadores, infraestructura y todo lo que se comunica con el mundo.
Esta terminología está alineada con varias arquitecturas de referencia y nos dará un lenguaje común para las próximas unidades, donde profundizaremos en el dominio.
Me encantaría leer en los comentarios cuáles son los principales aprendizajes que te llevas de este módulo y cómo piensas adaptar estas ideas a tu propio proyecto.