Arquitectura en capas: controller, servicio y repositorio
Clase 15 de 43 • Curso Profesional de Arquitectura de Software
Contenido del curso
Atributos de calidad
- 2

Qué son los atributos de calidad en software
01:49 min - 3

Cómo medir idoneidad funcional en software
02:52 min - 4

Qué es eficiencia de ejecución en software
04:14 min - 5

Cómo medir interoperabilidad y coexistencia
03:49 min - 6

Qué es la usabilidad y sus 6 dimensiones
08:14 min - 7

Cómo medir confiabilidad en software
05:38 min - 8

Los 5 pilares de seguridad en software
04:01 min - 9

Cómo garantizar mantenibilidad con tests
06:27 min - 10

Adaptabilidad vs capacidad de instalación vs reemplazo
02:48 min - 11

Tensiones entre atributos de calidad de software
04:04 min - 12

Atributos de calidad según fase de empresa
07:00 min
Patrones de arquitectura
- 13

Qué es un patrón de arquitectura
02:50 min - 14

Modelo vista controlador: cómo separar responsabilidades
05:37 min - 15

Arquitectura en capas: controller, servicio y repositorio
Viendo ahora - 16

Event sourcing vs bases relacionales
06:17 min - 17

Qué es la arquitectura microkernel
01:52 min - 18

Arquitectura Comparte Nada con Map Reduce
02:29 min - 19

Patrón de microservicios: cuándo y cómo
03:57 min - 20

Qué es CQRS y cómo separa lectura de escritura
03:24 min - 21

Arquitectura hexagonal: puertos y adaptadores
04:10 min - 22

Qué son los contextos delimitados en DDD
05:34 min - 23

Cómo combinar patrones de arquitectura
09:22 min - 24

Evolución de patrones desde monolito a microservicios
07:58 min
Diseño de una arquitectura
- 25

Cómo traducir requerimientos en decisiones arquitectónicas
02:18 min - 26

Conectores en arquitectura: tipos y cuándo usarlos
06:18 min - 27

Llamadas asíncronas vs síncronas vs cliente-servidor
03:05 min - 28

Conector enrutador vs difusión: Twitter
01:55 min - 29

Conectores cola, repositorio y pub/sub
03:52 min - 30

Framework de diseño orientado a atributos
01:55 min - 31

Cómo detectar fallas y reparar sistemas
05:59 min - 32

Cómo recuperar y prevenir fallas en sistemas
04:09 min - 33

Tácticas para confinar modificaciones
06:15 min - 34

Cómo prevenir efectos dominó en software
12:17 min - 35

Tácticas para controlar eficiencia de ejecución
09:14 min - 36

Cómo detectar, resistir y recuperarse de ataques
09:02 min - 37

Cómo probar que el software funciona correctamente
05:14 min - 38

Cómo controlar la usabilidad con tácticas
08:20 min - 39

Cómo validar arquitectura con ATAM y métricas
06:34 min - 40

Evolución de arquitectura: startup a gran escala
10:30 min
Modelado y documentación de arquitectura
La arquitectura en capas (o layered) separa responsabilidades para lograr claridad, aislación y mantenibilidad. Con frecuencia se organiza en tres o cuatro capas, priorizando una comunicación estricta de arriba hacia abajo. Este enfoque encaja en un monolito y también en partes de sistemas distribuidos gracias a su orden y estabilidad.
¿Qué es la arquitectura en capas y cómo se organiza?
La idea central es que cada capa sea responsable de un concepto global de la aplicación. En el ejemplo, se distinguen aplicación, dominio y datos; a veces aparece una cuarta capa de presentación.
- Capa de aplicación: orquesta casos de uso y coordina flujos. Un controller vive aquí y conversa con dominio.
- Capa de dominio: incluye entidades y servicios del negocio. Se aísla de detalles de uso por parte del usuario.
- Capa de datos: implementa acceso a base de datos o colecciones en memoria por medio de un repository.
- Cantidad de capas: depende de la aplicación, aunque es habitual ver tres o cuatro.
¿Qué rol cumplen controller, servicio y repositorio?
- Controller: endpoint o interfaz que recibe la petición del usuario y delega en dominio.
- Servicio de dominio: encapsula reglas del negocio y usa entidades para representar el estado en memoria.
- Repository: sabe cómo acceder y buscar en la fuente de datos, sin conocer al usuario ni al dominio.
¿Qué implica la aislación entre capas?
- Permite trabajar en capas inferiores sin preocuparse por las superiores.
- Evita que detalles de interacción con el usuario contaminen el modelo de dominio.
- Refuerza límites claros entre aplicación, dominio y datos.
¿Cómo se comunican las capas: de arriba hacia abajo?
La regla del patrón indica que la comunicación va siempre de arriba hacia abajo. Una capa inferior, con detalles de bajo nivel, no debería invocar a una superior que abstrae interacción con usuario o modelado del dominio.
¿Dónde encaja la lógica de presentación?
Una capa superior puede dedicarse a lógica de presentación, como la vista o algún tipo de server side rendering. Así se mantiene separada de dominio y datos.
¿Qué ejemplo práctico muestra el carrito de compras?
Un usuario solicita su carrito de compras. Puede hacerlo mediante un pedido HTTPS o desde una aplicación de escritorio. El flujo respeta el orden de capas y retorna la respuesta hacia arriba.
- El controller recibe la solicitud y consulta al servicio de carrito.
- El servicio usa la entidad carrito para representarlo en memoria.
- La búsqueda se realiza a través del repository, que sabe cómo acceder a los datos.
- El repository responde al servicio con el carrito correspondiente.
- La respuesta sube: servicio al controller, y controller al usuario.
¿Se usa en monolitos y en sistemas distribuidos?
La arquitectura en capas se implementa en un monolito: todo se despliega junto. También puede aplicarse dentro de sistemas distribuidos, donde cada parte se diseña en capas por su mantenibilidad.
¿Tienes dudas o un caso real donde aplicar capas? Cuéntalo en comentarios y enriquezcamos la solución juntos.