PL02: Registro de decisiones arquitectónicas
Última edición: August 30, 2025 10:47 AM Propietario: Daniel Queijeiro Albo Etiquetas: Plantilla Fecha de creación: August 26, 2025 9:59 PM
Esta plantilla permite documentar de manera clara y estandarizada las decisiones arquitectónicas tomadas en los proyectos de software. Facilita la trazabilidad, la comunicación entre equipos y el entendimiento del contexto que llevó a tomar cada decisión.
🎯 Objetivo
- Registrar y justificar las decisiones arquitectónicas clave de los proyectos.
- Asegurar que las decisiones tengan un contexto claro, impulsores identificados y consecuencias documentadas.
- Mejorar la transparencia y la colaboración.
Título de la decisión arquitectónica
- Status: Aceptado | Borrador | Rechazado | Obsoleto
- Encargados: Personas involucradas en la decisión
- Fecha: DD-MM-YYYY
Contexto y problema
Una breve explicación acerca del problema a resolver.
Impulsores de decisiones
Lista de cosas que necesitas considerar para elegir una opción.
Opciones consideradas
Lista de las opciones con una pequeña descripción, ventajas y desventajas de usar cada opción.
Resultado de la decisión
Explicación acerca de cuál opción fue seleccionada.
Consecuencias positivas
Lista de consecuencias positivas que introduce la opción seleccionada.
Consecuencias negativas
Lista de consecuencias negativas que introduce la opción seleccionada.
Links
Lista de recursos relevantes para aprender de cada opción.
📝 Ejemplos
✅ Correcto
Migrar a EJS
- Status: Aceptado
- Encargados: Daniel Queijeiro Albo (Arquitecture Owner)
- Fecha: 19-05-2025
Contexto y problema
La forma en que implementamos nuestra navegación entre vistas en ElectronJS originalmente está dificultando mucho el desarrollo de requisitos funcionales.
Hicimos una prueba de concepto y, si implementamos EJS en la lógica de carga de vistas, se puede acelerar el desarrollo, pero esto implica:
- Crear una forma reutilizable de precargar los EJS (ya que ElectronJS solo carga HTML).
- Refactorizar todas las vistas a formato EJS.
- Adaptar todos los scripts a la nueva forma de cargar vistas.
Impulsores de decisiones
- ¿Cuánto nos va a eficientar realmente la migración a EJS?
- ¿Es viable hacer una migración tan tarde en el proyecto?
- ¿Es mejor solo seguir con HTML?
Opciones consideradas
Opción 1: EJS
Motor de plantillas que permite generar HTML dinámico usando JavaScript y sintaxis embebida.
- Ventajas:
- Permite reutilización de componentes y layouts.
- Sintaxis familiar para desarrolladores JavaScript.
- Facilita la inyección de datos dinámicos.
- Reduce duplicación de código HTML.
- Mejor mantenibilidad del código.
- Desventajas:
- Requiere configuración adicional en ElectronJS.
- Necesita refactorización completa de vistas existentes.
- Curva de aprendizaje para el equipo.
- Dependencia adicional en el proyecto.
Opción 2: HTML estático
Continuar con archivos HTML como se implementó originalmente.
- Ventajas:
- No requiere cambios en la arquitectura actual.
- Funciona directamente con ElectronJS.
- Sin curva de aprendizaje adicional.
- Desventajas:
- Alta duplicación de código.
- Dificultad para mantener consistencia en la UI.
- Desarrollo más lento de nuevas características.
- Navegación entre vistas compleja.
Resultado de la decisión
Se decidió migrar a EJS, ya que nos ayudará a acelerar el desarrollo y liberar el MVP más rápido. Vemos más viable dedicar una semana a refactorizar que continuar con la complejidad del HTML actual.
Consecuencias positivas
- Aceleración significativa en el desarrollo de nuevas vistas.
- Mejor reutilización de componentes UI (headers, footers, menús).
- Código más mantenible y organizado.
- Facilita la implementación de temas y estilos consistentes.
- Reducción de duplicación de código.
- Mayor flexibilidad para inyectar datos dinámicos.
Consecuencias negativas
- Tiempo invertido en la refactorización (aprox. 1 semana).
- Posibles bugs durante la migración.
- Complejidad adicional en el proceso de build.
- Dependencia nueva que debe ser mantenida.
- Posible impacto en rendimiento por el renderizado.
Links
❌ Incorrecto
Migrar a EJS
- Status: Aprobado
- Encargados: Equipo
- Fecha: 2025
Contexto y problema
Necesitamos algo mejor para las vistas porque no sabemos trabajar con lo que tenemos.
Impulsores de decisiones
- Que funcione.
- Que sea rápido.
Opciones consideradas
EJS
Sirve para plantillas.
HTML
Es lo que ya tenemos.
Resultado de la decisión
Elegimos EJS porque sí.
Consecuencias positivas
- Mejor.
Consecuencias negativas
- Tarda.
Links
Google.