Arquitectura de referencia principal para abarcar el desarrollo de aplicaciones web modernas, en las que la funcionalidad y la navegación se gestionan en una única página dinámica, proporcionando una experiencia de usuario fluida y rápida mediante la actualización de la vista sin recargar la página completa.
Esta arquitectura permite reutilizar componentes y módulos comunes a través de una estructura organizada y modular.
Necesidad
Permitir la construcción y despliegue de aplicaciones web que puedan proporcionar una experiencia de usuario fluida, rápida y responsiva, gestionando eficientemente la carga de datos y la actualización de vistas: manejo de estados, actualización de datos, enrutamiento, acceso a APIs, gestión de autenticación y autorización, y optimización del rendimiento.
Características principales
- Disponibilidad de un catálogo de componentes reutilizables para la construcción de vistas y funcionalidades dentro de la SPA.
- Sistema de enrutamiento para gestionar la navegación interna sin recargar la página.
- Manejo de estados centralizado para gestionar la data de la aplicación de manera eficiente.
- Sistema de caché para el almacenamiento temporal de datos y mejorar el rendimiento.
- Integración con servicios de backend mediante APIs para la actualización y acceso a datos.
- Implementación de módulos de autenticación y autorización para asegurar el acceso a recursos protegidos.
- Colectores de telemetría para el envío de trazas, logs y métricas.
- Optimización de rendimiento mediante técnicas como la carga perezosa (lazy loading) y el prerenderizado.
Relaciones
- Consumida por:
- Clientes (navegadores y dispositivos móviles)
Accede a:
- Arquitectura de APIs para la gestión de datos y servicios.
- Sistema de autenticación y autorización para validar y gestionar el acceso de usuarios.
Características comunes entre arquitecturas Front:
- Desarrollo y Despliegue: Todo el código de la aplicación se gestiona y despliega como una única unidad. La integración y el despliegue pueden ser complejos y lentos a medida que la aplicación crece.
- Escalabilidad: La escalabilidad horizontal puede ser limitada, ya que todas las funcionalidades se gestionan dentro de un solo repositorio y base de código.
- Mantenimiento y Refactorización: La refactorización puede ser compleja debido a la interdependencia de componentes dentro de una única base de código.
- Tecnologías y Herramientas: Utiliza un conjunto uniforme de tecnologías y herramientas para toda la aplicación.
Beneficios arquitecturas SPA
- Flexibilidad Tecnológica: Utiliza tecnologías modernas y frameworks avanzados para proporcionar una experiencia de usuario optimizada.
- Independencia y Descentralización: Mantiene la coherencia y reutilización de componentes dentro de una base de código unificada.
- Escalabilidad y Mantenibilidad: Facilita el mantenimiento centralizado del estado y la lógica de la aplicación.
- Desarrollo Paralelo: Proporciona una base de código unificada donde los desarrolladores pueden colaborar de manera eficiente.
- Mejora Continua: Facilita la implementación de mejoras en la interfaz de usuario de manera uniforme.
- Resiliencia y Aislamiento de Fallos: Un manejo centralizado de errores y fallos puede garantizar una experiencia de usuario consistente.