En esta jornada se revisa la arquitectura del CRUD de PRODUCTOS después de completar su persistencia con FireDAC y SQLite.
Problema detectado:
CargarProductos y BuscarProductos realizaban el mismo trabajo de transformación entre los registros devueltos por SQL y los objetos TProducto.
También era necesario garantizar que las consultas quedasen cerradas correctamente aunque se produjera una excepción durante la lectura.
Cambios realizados:
CrearProductoDesdeQuery
Arquitectura:
Formulario VCL
↓
TProducto
↓
Data Module
↓
FireDAC
↓
SQLite
Después de la refactorización se realiza una prueba completa:
CREATE
↓
cerrar / abrir
↓
READ
↓
UPDATE
↓
cerrar / abrir
↓
comprobar cambios
↓
DELETE
↓
cerrar / abrir
↓
comprobar eliminación
Resultado:
El CRUD continúa funcionando correctamente.
Aprendizaje:
La refactorización se justifica cuando reduce duplicación, mejora la separación de responsabilidades, facilita mantenimiento o aumenta robustez.
No se añaden nuevas abstracciones cuando la arquitectura existente ya resulta suficientemente clara.
Competencias trabajadas:
- Delphi / Object Pascal
- VCL
- FireDAC
- SQLite
- SQL
- CRUD
- Refactorización
- Separación de responsabilidades
- Mantenimiento
- Depuración
- Pruebas de regresión
Commit:
refactor(products): centralize query mapping and consolidate CRUD architecture
Repositorio:
https://github.com/101aero/pcshopPB