El error lógico en el tiempo
Published: 2021-11-24 01:53:17

Siempre he escuchado que el trabajo de un desarrollador en su mayoría es leer código que escribieron otros desarrolladores y creo que nunca me había dado cuenta de la gran verdad que lleva este dicho, hasta que me tocó leer código muy mal escrito.

En los últimos meses, he decidido volver al freelance, por lo general me alejo de los proyectos por uno o dos meses y luego vuelvo porque me gusta mi trabajo. Uno de esos proyectos lo tome porque me llamo mucho la atención la problemática que tenían y sabía que pocas personas manejaban esa tecnología y decidí trabajar en este proyecto, hable con el cliente, me planteo mejor su problema y como resultado de todas esas conversaciones, les hice una propuesta que aceptaron.

A partir de aquí usaré datos ficticios relacionados al proyecto por motivos de confidencialidad.

La aplicación era un sistema de inventario, los errores presentados eran específicamente en el módulo de productos, según me contaron, estos errores comenzaron aparecer repentinamente.

Me comenzaron a mostrar la aplicación y el formulario que daba los problemas, que por cierto este  era bastante grande, varias secciones anidadas, una dentro de la otra (imaginen todas las claves foráneas del producto como secciones una dentro de otra, debajo les dejo una imagen).


Esto no me pareció extraño al principio, lo que si fue extraño es que los campos y labels, funciones de javascript eran extraídos desde la base de datos y creados en HTML con PHP. Algo para nada recomendado, porque de todas formas el formulario no se podía generar editando código HTML y mejor no digo que pasaría si quieres cambiar el script de JS.

Mi tarea era simple, reparar el formulario para que guarde todos los datos y agregar nuevos campos para guardar una descripción que enviará el proveedor. Algo fácil cierto, pues te cuento que no, y aquí es donde todo se complica de una manera al que tuve que decir la palabra que más incómoda para mí en el área de desarrollo “No se puede”, aquí inicia mi historia.

*Dia 1*

Procedo a descargar el folder del sistema, y aquí está el primer error, no existía un repositorio, por lo tanto, no había un registro histórico de los cambios en el tiempo, así que tuve que conectarme al servidor y hacer un scp o rsync para descargar el código del repositorio

Cuando descargo el folder o intento descargarlo, veo que la app, tiene un peso de 10GB aproximadamente y aquí encontré el segundo error, los archivos de los proveedores se subían directamente al caché folder de la app, fotos de productos, fotos de los representantes, todos esos archivos se guardaban directamente en la carpeta destinada a la caché.

Tuve que descargarme la carpeta del node_modules y vendor, que fue bastante triste para mí , cuando tengo el folder completo, borro los folders innecesarios como el vendor, creo el repositorio en git, subo la copia a GitHub y con bastante paciencia logro montarlo en Docker.

Aquí entonces veo algo que me dejo con la boca abierta y con un miedo enorme, cuando estaba intentando configurar la base de datos, los valores de mi archivo de entorno no se estaban reflejando, cuando entro al archivo de configuración del proyecto, sorpresa!!!, TODAS LAS CREDENCIALES ESTABAN ESCRITAS TAL CUAL en el código, un desastre.

Y así concluyó el primer día.

Si has llegado hasta aquí, te agradezco mucho que hayas leído esta parte de la historia, para mí es un honor que estés leyendo esto, seguiré escribiendo el resto de la historia por día esperando al final o en medio de los post agregar un granito de valor a tu vida