Skip to content

07. Cross-Cutting Concerns

Fase: 05 — Diseño Arquitectónico
Entregable: 07
Proyecto: NoteVault (PC, Mac, Android, iPhone)


1. Estrategias Transversales de Arquitectura

Preocupación Transversal Estrategia de Implementación Técnica Ubicación en el Código
Manejo Global de Errores Errores estructurados con clase ApiError que retornan código, mensaje legible y nunca exponen trazas de pila a la UI. frontend/src/api/common.ts
Logging y Diagnóstico Logs estructurados locales con niveles INFO, WARN, ERROR confinados al almacenamiento de sesión del cliente. Proceso Electron Main y terminal de desarrollo.
Caché en Memoria Caché de segundo nivel para rutinas de ejercicios, estado de navegación y árbol de notas con invalidación por mtime. scheduleManager.ts, navState.ts
Sanitización de Seguridad Sanitización obligatoria con DOMPurify antes de renderizar cualquier salida Markdown, KaTeX o HTML. components/notes/MarkdownPreview.tsx
Resolución de Rutas Confinadas Toda ruta relativa solicitada por la interfaz se valida en appState.resolve() bloqueando Path Traversal. frontend/src/api/appState.ts

2. Marco Conceptual: Interceptor Transversal (Cross-Cutting Concern)

1. **Entidad principal e independiente.** 2. **Es la entidad líder del conjunto de datos:** posee un identificador global único que fija una política transversal del sistema (`cross_cutting_id`: `CROSS-PATH-CONFINEMENT`) consultado por todos los handlers. 3. **Existe por sí misma en la infraestructura de la aplicación sin pertenecer a un módulo funcional específico**, y es la única responsable de asegurar que las políticas de seguridad, logging y caché se apliquen de forma homogénea en toda la aplicación. 4. **Punto de entrada y límite de consistencia:** Envuelve la ejecución de cada operación antes de tocar el dominio.