Trabajar con código heredado (o código legacy) puede ser frustrante pero a menos que estés iniciando un proyecto desde cero es inevitable. Así que mejor aprender a hacerlo de la mejor manera.
El mayor reto al trabajar con código heredado es no dejarse llevar por suposiciones.
Probablemente pensarás que el código puede haber sido desarrollado de una mejor manera, y en muchas ocasiones tendrás razón, pero en muchas otras hay una razón por la cual está como está.
No puedes simplemente empezar a refactorizar a diestra y siniestra porque puede haber dependencias de las que no estés consciente.
Sin embargo, es nuestro deber ético mejorar el código además de que nos hará la vida más fácil eventualmente, así que aquí van unos tips para cuando tengas que trabajar con código heredado.
Hazte responsable del código
Una de las pláticas más comunes que escucho entre desarrolladores es acerca del código spaghetti con el que les están lidiando o de la horrible arquitectura que tiene el proyecto en el que tienen que trabajar (Siendo honesto yo también me he quejado así en varias ocasiones).
Si bien es complicado trabajar con un código ajeno y que no tiene las mejores prácticas, entre más pronto te hagas a la idea de que es lo que hay, menos frustración vas a sentir y te podrás enfocar en mejorar la aplicación.
Revisa la documentación
Revisar la documentación de los requerimientos originales te ayudará a entender el origen del código y evitará que hagas cambios que modifiquen un comportamiento que es deseado.
Haz las pruebas tus aliadas
La manera más efectiva de asegurarse que los nuevos cambios no están rompiendo funcionalidades es mediante pruebas automatizadas.
Si ya existe una suite de pruebas siempre recuerda ejecutarla tras cada cambio.
Si no hay suites de pruebas automatizadas, crea una cuanto antes.
Asegúrate que haya una prueba para cada funcionalidad que identifiques que puede ser afectar por tus cambios y, sobre todo, que todo tu nuevo código vaya acompañado de sus respectivas pruebas.
Sólo haz cambios cuando sea necesario
Es tentador querer hacer una gran refactorización con la idea en mente de que nos dejará una base de código con la que trabajaremos más fácil pero es algo peligroso.
Una refactorización considerable tomará mucho trabajo y mucho tiempo de desarrollo y de pruebas. Además entre más cambios simultáneos introduzcas en el código más complicado será detectar errores o funcionalidad que cambió a como era deseada.
Colabora con otros desarrolladores
Sobre todo con los que tengan más tiempo trabajando con el código. Una explicación de alguien te puede ahorrar mucho tiempo de estar analizando código.
Aún cuando sea alguien que tampoco tenga tanta experiencia con el código, un par extra de ojos puede ayudar a encontrar algo que tú no has visto.
Mantén el nuevo código limpio
Es fácil dejarse llevar por una aplicación llena de malas prácticas e implementar las nuevas funcionalidades respetando los anti-patrones usados o sólo enfocarse en hacer algo que funcione, total, la aplicación ya está hecha un caos.
Sin embargo, eso sólo hará el código aún más problemático y difícil de trabajar.
No puedes controlar la calidad del código heredado pero asegúrate de siempre implementar buenas prácticas en el código que añadas.
Awesome post! Keep up the great work! 🙂
Great content! Super high-quality! Keep it up! 🙂