> For the complete documentation index, see [llms.txt](https://elguerre.gitbook.io/de0an/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://elguerre.gitbook.io/de0an/capitulo-8-la-construccion-proyectos-tareas-y-pomodoros/refinando.md).

# Refinando

## Vistas y procedimientos almacenados

A medida que la aplicación crece en funcionalidad, las consultas directas a las tablas pueden resultar insuficientes para cubrir las necesidades de la interfaz de usuario. La creación de vistas SQL nos permite encapsular consultas frecuentes —como el listado de tareas agrupadas por proyecto junto con el número de pomodoros completados— en una única definición reutilizable. De la misma manera, los procedimientos almacenados nos ofrecen la posibilidad de ejecutar operaciones más complejas del lado del servidor, como la actualización masiva de estados o el cálculo de estadísticas de productividad, sin sobrecargar al cliente.

Siguiendo la línea del capítulo 7, donde configuramos el acceso a datos mediante Azure SQL Database y los servicios de acceso, incorporar estas vistas y procedimientos almacenados es una evolución natural del modelo de datos. Es recomendable definirlos durante esta fase de construcción, ya que facilitan tanto el rendimiento de las consultas como la mantenibilidad del código de acceso a datos.

## Actualización de Data.Tests

Los cambios realizados en este capítulo —nuevas entidades, relaciones entre proyectos, tareas, pomodoros y checklists, así como las modificaciones en los servicios de acceso— hacen necesario revisar y actualizar el proyecto de pruebas *Data.Tests*. Tal como aprendimos en el capítulo 6, mantener las pruebas alineadas con la implementación es fundamental para garantizar la estabilidad del código.

En particular, será conveniente añadir nuevos tests que cubran las operaciones CRUD sobre las entidades incorporadas, verificar que las relaciones entre proyectos y sus tareas se resuelven correctamente, y comprobar que los servicios devuelven los datos esperados tras las modificaciones. Una buena cobertura de pruebas en esta etapa nos evitará sorpresas cuando integremos la navegación y las funcionalidades avanzadas de los próximos capítulos.
