Optimizando la robustez y escalabilidad en el módulo Textiles de Reimpact platform
El equipo de desarrollo ha centrado sus recientes esfuerzos en la consolidación del módulo Textiles dentro de la plataforma Reimpact. Este trabajo abarca desde la infraestructura de modelos y mapeo de datos hasta la implementación de una capa sólida de validación y seguridad.
Mejora en la resiliencia de procesos
Para garantizar la integridad de los datos durante la importación masiva de archivos, se han implementado configuraciones de reintento en los trabajos en segundo plano (Jobs). Al añadir propiedades de tries y backoff en las clases de procesamiento, logramos gestionar fallos transitorios de manera más eficiente, evitando pérdidas de información en tareas de larga duración.
Consistencia de tipos y seguridad
Se han realizado ajustes significativos para mejorar el rigor tipado y la seguridad:
- Precisión numérica: Se ha migrado el uso de
floatadecimalpara campos sensibles, eliminando errores de redondeo en cálculos de masa y porcentajes. - Seguridad en rutas: Se han aplicado guardas (
guards) en los métodosindexQueryde los recursos administrativos para impedir que usuarios sin compañía asociada accedan a datos globales o de otros inquilinos, reforzando el aislamiento multi-inquilino. - Limpieza de archivos: Se implementó una lógica de saneamiento en los servicios de generación de errores para evitar que nombres de compañías con caracteres especiales comprometan las rutas del sistema de archivos.
Optimización de arquitectura y mantenimiento
Con el objetivo de cumplir con los estándares de limpieza y mantenibilidad, hemos adoptado varias prácticas:
- Inyección de dependencias: Se ha reemplazado la instanciación manual de servicios por inyección vía constructor, facilitando las pruebas unitarias.
- Uso de Traits: Se han extraído lógicas de autorización duplicadas en las políticas (
Policies) hacia unTraitcompartido, simplificando el código de cada entidad. - Validación robusta: En los recursos de administración, se ha sustituido el uso de campos de texto libre por campos de selección basados en enumeraciones, garantizando que solo se almacenen valores válidos según el dominio de negocio.
Estos cambios no solo mejoran la estabilidad del sistema, sino que preparan al módulo para soportar un mayor volumen de operaciones, garantizando una mejor experiencia de usuario y una mayor fiabilidad técnica.