Una de las herramientas más solicitadas hoy en día es react.js. Si bien muchas veces es una buena opción, tenemos que entender que toda herramienta tiene sus beneficios y que hay otras que podrían aplicar mejor para el desarrollo que necesitamos. Lo importante es evaluar cada caso en particular para definir la herramienta a utilizar. 

La construcción de aplicaciones usando módulos desarrollados en react.js presenta grandes beneficios. El principal: permite el desarrollo de módulos autocontenidos que incluyen todos los archivos necesarios para correr sin necesidad de desarrollar toda la aplicación con esta librería. Estos módulos pueden ser reutilizados en distintos puntos de una misma aplicación, e incluso en distintas aplicaciones. De hecho, en este escenario, react.js procesa una única vez el módulo, sin importar cuántas veces se lo llama. Esto último se traduce en dos ventajas más:

  • El módulo ocupa menos memoria del lado del cliente, lo que garantiza a su vez un mejor desempeño.
  • Este esquema facilita las modificaciones para quienes desarrollamos y damos mantenimiento al módulo.

Otras herramientas podrían requerir el mapeo de todos los puntos en los que hay que modificar código, ejecutarlas, testearlas (ya sea en conjunto o por separado), para luego pasarlas a producción. Un trabajo muy costoso que requiere además, una importante inversión de tiempo y atención.  En cambio, con react.js sólo es necesario modificar un módulo para que los cambios se vean reflejados en todos los procesos que lo llaman. Un beneficio que acelera los testeos y la salida a producción, mientras facilita el mantenimiento, sobre todo si se trata de un despliegue a gran escala.

Con react.js es posible utilizar ECMAScript 6: el nuevo estándar de JavaScript que permite escribir código más orientado a objetos. Se trata de un abordaje moderno a la creación de código, que además le da más robustez al desarrollo. Los diversos compiladores, como BabelJS, transformarán este código en uno comprensible por el browser, que es el entorno de ejecución de nuestras plataformas (por ejemplo, Cloud Experience).

Lo cierto también es que React.js requiere de una gran estructura para funcionar y su curva de aprendizaje es un tanto más ardua que la que tienen otras herramientas o vanilla javascript, resultando contraproducente o muy costoso en aplicaciones pequeñas.

Concretamente, con react.js se suele utilizar Flux, que es una forma de manejar el flujo de los datos. Esto requiere la creación de un circuito que maneje los eventos de una forma específica para que el código lo ejecute. Dado que la creación y el despliegue de este flujo requiere unas cuantas horas de programación, y un entorno de CI/CD para desplegar a produccion, resulta impráctico para funciones que se utilizan una única vez dentro de la aplicación o para aplicaciones muy sensillas. En estos casos es conveniente usar vanilla javascript o algun framework que este mas orientado a eso, que resuelven estas tareas de forma más conveniente.

En definitiva, cuando se trata de grandes aplicaciones, la programación modular resulta sumamente conveniente, justificando las horas de programación y el uso adicional de recursos.

Autor: Diego Vidal, Arquitecto de Software

BACK