-
Notifications
You must be signed in to change notification settings - Fork 4
ADR. Gestión de estados (Front End)
Selección de la librería para la gestión de estados en el lado cliente.
Aceptado
ReactJS ofrece gestión de estados, hooks (también personalizados) pero complica excesivamente el código el tratamiento de estados entre componentes, teniendo que utilizar contextos, portales o proveedores para ello. Es así que se decide tomar la decisión de optar por una librería externa.
Debido a las características del proyecto, se plantean tres opciones:
-
Redux. La más extendida y utilizada en el mercado actualmente.
-
Ventajas:
- Sigue un patrón de diseño (Flux), creado por Facebook, que facilita el desarrollo. Flux se segmenta en action, dispatcher, view y store.
-
Desventajas:
- Curva de aprendizaje bastante elevada, para el tiempo del que disponemos.
- Aplicar nuevo patrón, desconocido hasta ahora, que genera código boilerplate.
- Puede llegar a ralentizar la aplicación, si no se gestiona correctamente.
-
-
Zustand
Seleccionada
. Es más comparable a la tercera opción. Comparar Zustand y Recoil con Redux no tiene mucho sentido, ya que aunque pueden tener funcionalidades comunes, están orientadas de forma muy diferente.
-
Ventajas.
- Ofrece un mayor rendimiento que Redux, en gran parte por la sencillez de su implementación, no tenemos tantos "participantes", dependiendo entre sí.
-
Desventajas.
- No sigue patrón como tal. Es decir, la libre elección de la estructura la decide el programador.
- RecoilJS. Funcionalidades similares a Zustand, incluyendo llamadas asíncronas. La decisión de no utilizar esta librería se debe a que está en fase experimental (Cabe recalcar que es una iniciativa de Facebook) pero en producción no suele dar buenos resultados, hablando de proyectos un poco serios.
El aprendizaje de Zustand no supone un gran esfuerzo. Utilizar Redux en un proyecto de estas dimensiones y con el marco temporal establecido, no va a suponer una mejora en la aplicación (Bajo nuestro punto de vista).
Inicio · Documentación | Lomap_es5a
- Acta 01 - Introducción · 02_02_2023
- Acta 02 - Documentación · 09_02_2023
- Acta 05 - React, Solid y Documentación · 16_02_2023
- Acta 08 - Primera entrega de la documentación · 23_02_2023
- Acta 09 - Comienzo de desarrollo de la aplicación · 02_03_2023
- Acta 10 - Distribución y despliegue · 09_03_2023
- Acta 12 - Revisión del segundo prototipo · 16_03_2023
- Acta 13 - Integración y Test · 23_03_2023
- Acta 14 - Tests unitarios · 30_03_2023
- Acta 15 - Revisión del tercer prototipo · 13_04_2023
- Acta 16 - Tests de carga · 20_04_2023
- Acta 17 - Monitoring-Profiling · 27_04_2023
- Acta 03 - Inicio de la Documentación · 09_02_2023
- Acta 04 - Discusión de tecnologías · 12_02_2023
- Acta 06 - Decisiones de arquitectura (Cliente, servidor y despliegue) · 17_02_2023
- Acta 07 - Discusión de la base de datos y del IDE · 19_02_2023
- Acta 11 - Unión Backend y Frontend · 13_03_2023
- Acta 18 - Reunión final · 02_05_2023
- ADR 00 - Lenguaje
- ADR 01 - Framework para Front-End
- ADR 02 - Framework para Back-End
- ADR 03 - Arquitectura Cliente (RECHAZADO)
- ADR 04 - Arquitectura Servidor (RECHAZADO)
- ADR 05 - Integración Mapas
- ADR 06 - Despliegue proyecto (RECHAZADO)
- ADR 07 - Styled Components
- ADR 08 - Base de Datos (RECHAZADO)
- ADR 09 - IDE
- ADR 10 - Tests e2e
- ADR 11 - Tests unitarios
- ADR 12 - Cambio base de datos a MongoDB
- ADR 13 - AC · Usabilidad
- ADR 14 - AC · Privacidad
- ADR 15 - AC · Seguridad
- ADR 16 - Arquitectura Cliente v2 (RECHAZADO)
- ADR 17 - Gestión Estados React
- ADR 18 - Arquitectura Cliente v3
- ADR 19 - Base de datos para imagenes
- ADR 20 - Despliegue de la aplicación
- ADR 21 - Gestión de los amigos
- ADR 22 - Gestión de los puntos compartidos
- ADR 23 - AC · Testabilidad
- ADR 24 - Testeo de carga
- ADR 25 - Gestión de los puntos guardados