PC Shop — Aplicación de gestión desarrollada con Delphi 12

Aplicaciones, juegos y utilidades desarrolladas en Delphi Heaven, con capturas, avances, código fuente y versiones compiladas para Windows.
jaoj
Site Admin
Mensajes: 34
Registrado: Mar Jun 30, 2026 10:27 am

Re: PC Shop — Aplicación de gestión desarrollada con Delphi 12

Mensaje por jaoj »

💻 PC Shop — AGOSTO, Semana 3-4 — #POST 4/4

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:

✅ Se protegen las consultas mediante try/finally.

✅ Se centraliza el mapeo de registros SQL a objetos TProducto mediante:

CrearProductoDesdeQuery

✅ CargarProductos reutiliza este método.

✅ BuscarProductos reutiliza el mismo método.

✅ INSERT, SELECT, UPDATE y DELETE continúan centralizados en el Data Module.

✅ El formulario sigue sin contener SQL.

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
Responder