Skip to content

Mantener un aplicativo JavaScript “legacy” es una pesadilla

Si me preguntan del por qué siempre hablo muy favorablemente acerca de JavaScript y el vibrante ecosistema de desarrollo que se ha formado a su alrededor en los últimos años puedo pasar horas hablando acerca de sus bondades y la facilidad de levantar un aplicativo en cuestión de días y no meses. Sin embargo un lado que siempre pasamos por alto cuando estamos en esa embriagante etapa de iniciar un proyecto y estrenar todos esos módulos de los que hemos leído en Medium y otros blogs de desarrollo es lo que sucede con nuestros aplicativos luego de que han pasado un par de años.

En estos días me he visto en la necesidad de revivir un aplicativo legacy que lleva por lo menos 2 años de no ser actualizado. Si bien se encuentra funcionando en productivo sin mayores inconvenientes, no ha habido desarrollo activo en un buen rato. Recibir correos semanales de GitHub informando acerca de nuevas vulnerabilidades nunca había sido un problema, podía sencillamente ignorarlo y continuar con mi vida. El problema sin embargo es cuando te requieren una modificación menor pero que implica levantar de nuevo todo un ambiente de desarrollo y tener que enfrentar finalmente todas las vulnerabilidades y errores críticos que han surgido desde la última vez que se le dio mantenimiento adecuado a un proyecto. Esto es con lo que GitHub me recibe:

Esta es la intimidante realidad de depender de un ecosistema que no espera a nadie y que al mismo tiempo espera que los desarrolladores que hacen uso de el se mantengan en eterna actualización. El ecosistema de JavaScript es un arma de dos filos, que se mostrará amigable y muy a la vanguardia siempre y cuando nuestros proyectos se encuentren en desarrollo y mantenimiento activo, pero que nos hará a un lado y se reirá burlonamente si decidimos que un proyecto ya ha finalizado y que se encuentra en etapa de soporte pasivo.

Una actualización menor se convierte por lo tanto en un peligrosísimo juego de atravesar un campo minado de vulnerabilidades críticas para llegar hasta las líneas de código que estamos intentando modificar sin que todo el peso del proyecto colapse ante tantas dependencias que hace apenas 1 año y medio eran perfectamente válidas pero que ahora están a punto de estallar.

Published inDesarrolloOpinión