intive Argentina Blog

La utopía de las apps single-state

La frase cliché “si tienes que forzarlo, no es de tu talla” ha sido trasladada a la ingeniería en sistemas, cobrando así un sentido más técnico que filosófico. En serio, ¿cuántas veces has pasado horas frente al monitor cuestionando si tu aplicación amerita usar un single state? Si este es tu caso, y has tenido que reconsiderarlo demasiado, quizá no sea lo que tu producto necesite. Para responder a esta interrogante, recibimos en nuestra meetup de React a Marcelo Zapaia, especialista con más de 10 años en arquitectura en frontend y profesional apasionado de React.

React-Redux y la teoría del SSOT

Al decidir codear una aplicación en React, una tecnología basada en componentes, parecería obvio que el segundo paso sería guiarla por el camino del single state y, en ese sentido, de Redux, un popular state manager, o herramienta para el manejo de app states. La urgencia de Redux surge de la necesidad de compartir datos entre componentes de forma menos contracturada, de mantener relaciones más interactivas de los objetos, de romper con los lazos unidireccionales en los que no es posible interactuar de abajo hacia arriba o entre pares. Así, llegamos a la aspiración de las aplicaciones React-Redux y la teoría del Single Source of Truth (SSOT) o también conocido como el Centro de la verdad: una variable global enorme, a la que todos los componentes tienen acceso y que es read only, solo modificable a través de métodos. Es la solución para los programadores que requieren centralizar la información y reaccionar a ella desde otra parte del código.

Pero en ocasiones, la implementación de Redux incluye conceptos o persistencia de información, que no son acordes al tamaño del producto a desarrollar. Entonces lo primero que hay que preguntarse es ¿para qué utilizar un solo estado?, ¿se aplica y respeta correctamente el state manager? o ¿de igual forma se emplea para colgar microestados a lo largo del código? “Como devs, a veces hacemos trampa”, dice Marcelo.  Usamos Redux para guardar data just in case. Se guardan todos los query strings de la url, lo que haya en el local storage: “persistimos y recuperamos cuando queremos”. No se sabe con exactitud el fin, pero por las dudas se hace. Se vuelve un app state sin esquema ni bordes, una bomba de información cuyo componente no entiende de dónde viene.

Si ese fuera el propósito, en realidad podríamos utilizar herramientas “no single state”, como Hooks, Context Typescript, ideales para desarrollos de menor escala, para por ejemplo, vanilla Javascript, porque el costo de mantener un single state en aplicaciones o soluciones pequeñas es muy forzado.

TODO O NADA: LA UTOPÍA  ¡QUÉ DIFÍCIL ES SEGUIR UN SOLO PATRÓN!

De acuerdo con Juan Carlos Rengifo, ingeniero en frontend y TL de React de uno de nuestros proyectos más grandes, la planificación del esquema del store es fundamental, pues es allí donde se guarda el estado global de la aplicación. En proyectos con ritmos acelerados y de baja escala, puede resultar complicado decidir entre usar un state manager o no, lo que deriva en que existan términos medios o que directamente no se usen state managers; por lo tanto, él insiste en planificar y organizar el desarrollo desde el principio para poder asegurar la escalabilidad y el eficaz mantenimiento de la aplicación.

“Usar Redux suele ralentizar el tiempo de desarrollo al principio, pero la ganancia es enorme en control y progresión de la UI. Esto debido a que un estado descentralizado puede ser reutilizado y es automáticamente sincronizado por carecer de duplicidad. Si bien se necesitan actions, reducers y selectors (que además deben ser testeados), esta sería la opción recomendada para proyectos de mediana y larga escala”, explica Juan Carlos. En ese sentido, agrega que para considerar la herramienta como eficaz, cada componente debe ser agnóstico a su entorno y ocuparse únicamente de lo que debe. Por eso, el propósito y la planificación serán siempre claves.

 

Ilein González

Ilein González es licenciada en Comunicación Social, mención periodismo, graduada de la Universidad Católica Andrés Bello. Desde mayo del año 2018 se desempeña como Analista de Calidad en intive-FDV, en uno de los proyectos más desafiantes de la compañía. Ilein es además una entusiasta de la innovación y los procesos.

Deja un comentario