El patrón repository protege al dominio de la capa de datos y esconde su acceso entre adaptadores e interfaces para evitar que los cambios, migraciones o nuevas fuentes afecten el núcleo de la aplicación.
También es parte de las arquitecturas limpias en el desarrollo de software. Aprende más sobre este patrón en platzi.com/repository.
Las arquitecturas limpias, también llamadas arquitecturas centradas en el dominio, son reglas y patrones para crear aplicaciones flexibles, escalables y fáciles de mantener. Se dividen en capas claras: dominio (código crucial), protección (conexión externa) y externa (infraestructura, interfaz, base de datos).
Existen variantes como:
La clave es la inversión de dependencias: el dominio es llamado por las demás capas. El núcleo es agnóstico a cambios, tecnologías o implementaciones.
💡 Aprende más sobre cómo implementar arquitectura hexagonal en tu proyecto
El patrón repository es un patrón de diseño para ubicar el acceso a datos en la capa externa de la aplicación y así mantener el dominio agnóstico a sus fuentes de datos (y sobre todo a su implementación).
Esto es importante por principalmente 3 motivos:
Migraciones: No es frecuente, pero es común que las aplicaciones deban migrar su base de datos. El proceso se complica si hay código específico de la fuente de datos en toda la aplicación o atado a las reglas de negocio.
Múltiples fuentes de datos: Es frecuente tener varias fuentes de datos en una aplicación. Puede haber diferentes bases de datos, almacenamiento de archivos o sistemas de terceros como CRM o motores de búsqueda.
Facilitar el testing: Las pruebas de bases de datos requieren un entorno separado. Separar el acceso a datos del dominio ahorra configuración en la mayoría de pruebas.
La implementación depende de la arquitectura elegida. Se crean repositorios en la capa de protección e implementaciones en la capa externa para conectar la aplicación a fuentes de datos específicas.
El patrón repository es solo uno de los múltiples patrones y lineamientos de las arquitecturas limpias. Si quieres aprender cómo funcionan y evaluar cuándo pueden aportar valor a tu negocio, te invito a tomar el Curso de Arquitecturas Limpias para Desarrollo de Software.
#NuncaParesDeAprender 🤓💚