OBJETIVOS
❑ Conocer Vertical Slice Architecture
❑ Saber cuáles son sus diferencias frente a una arquitectura tradicional
❑ Implementar en vivo esta arquitectura
❑ Contar mi experiencia
❑ Aplicar conceptos de Clean Architecture
Slide 4
Slide 4 text
Arquitectura Tradicional
(3 Capas)
Presentación (UI/Api/Consola)
Aplicación (Lógica de negocio)
Infraestructura (DB, Servicios Ext)
Slide 5
Slide 5 text
Arquitectura Tradicional
(3 Capas)
Presentación (UI/Api/Consola)
Aplicación (Lógica de negocio)
Infraestructura (DB, Servicios Ext)
ProductsController.cs
ProductsService.cs
ProductRepository.cs
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
Arquitectura Tradicional
ProductsController.cs
ProductsService.cs
ProductRepository.cs
Slide 10
Slide 10 text
Arquitectura Tradicional
Una funcionalidad
traspasa todas las
capas.
Las responsabilidades
se miden en capas.
ProductsController.cs
ProductsService.cs
ProductRepository.cs
Vertical Slice Architecture
Presentación (UI/Api/Consola)
Aplicación (Funcionalidades)
Infraestructura (DB, Servicios Ext)
• Request
• Validaciones
• Mappers
• Helpers
• Lógica de negocio
• Acceso a datos
• Response
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
Clean
Architecture
Slide 16
Slide 16 text
Clean Architecture
❑ Se centra en la creación de
sistemas que sean modularizados,
testables, independientes de
frameworks y externamente
mantenibles a lo largo del tiempo.
Slide 17
Slide 17 text
Vertical Slice + Clean
Presentación (UI/Api/Consola)
Aplicación (Funcionalidades)
Infraestructura (DB, Servicios Ext)
No debe haber
lógica.
Una sola línea de
código que llame a la
funcionalidad.
Slide 18
Slide 18 text
Vertical Slice + Clean
Presentación (UI/Api/Consola)
Aplicación (Funcionalidades)
Infraestructura (DB, Servicios Ext)
No debe saber nada
sobre HttpContext, ni
de sistema operativo,
ni de variables de
entorno.
Beneficios Técnicos
❑ Corta curva de aprendizaje para empezar a desarrollar.
❑ Fácil identificar el código a modificar. Sin depender de otras funcionalidades.
❑ Facilita la adopción de nuevas tecnologías. Permite incorporar nuevas tecnologías de
forma gradual y controlada.
❑ Al tener una arquitectura modular y completa, facilita la escalabilidad del sistema.
❑ Fácil de realizar y mantener los Unit Testing.
Slide 24
Slide 24 text
Beneficios de Equipo
❑ Se obtiene una retroalimentación más rápida del cliente, usuario o líder.
❑ Facilita la lectura de Pull Request. (Una funcionalidad = 1 PR)
❑ El mantenimiento y la corrección de errores se simplifican.
Slide 25
Slide 25 text
Desventajas
❑ Dificultad para crear códigos reutilizables sin caer en un “core”.
❑ Se crean una gran cantidad de clases. Es importante tener una buena organización de
carpetas.
❑ Requiere de supervisión de líder técnico para asegurarse que se mantengan los
principios de la arquitectura.
Slide 26
Slide 26 text
CONCLUSIONES
❑ Vertical Slice Architecture es un enfoque altamente adaptable a la mayoría
de los proyectos.
❑ Promueve la fácil incorporación de nuevas funcionalidades sin afectar otras
partes del sistema.
❑ Adoptar la arquitectura de rebanada vertical puede mejorar
significativamente la calidad, la velocidad y la flexibilidad en el desarrollo de
software.