Recientemente estuve escuchando el episodio Two Anti-Patterns To Avoid del podcast Developer Tea (excelente podcast por cierto). En el episodio Jonathan Cutrell discute dos anti-patrones, o como mejor me gusta llamar, malas costumbres que podemos cometer en el código fuente de nuestro proyecto. Inicialmente pensé en saltarme el episodio pero teniendo en cuenta que solo discutiría dos me dio curiosidad. De todas esas cosas que sabemos no debemos hacer pero aún así hacemos mientras programados me llamó la atención que dos cosas el anfitrión destacaría en la conversación.
Dead Code
Dead Code o Lava Flow es todo ese código que está ahí en nuestro código sin hacer absolutamente nada. Es evidente que debemos evitar dejar código huérfano en nuestro repositorio. Pero mientras escuchaba venía a mi memoria un sin número de ocasiones que había sufrido por este tipo de descuido. El sufrimiento surge debido a que se pierde mucho tiempo en saber si este código es necesario o no. Se complica cuando no hay una documentación clara de la intención del mismo. Es posible que hasta uno mismo haya caído en esta trampa una que otra vez. Pero si realmente te interesa la calidad de tu código procura remover este tipo de inconveniente lo más pronto posible.
Otro lugar en donde podemos encontrar este tipo de situación es cuando removemos dependencias y olvidamos hacer el debido cotejo de remover aquellos métodos o funciones que ya no son pertinentes. Claro, pensamos que «esto no afecta el performance» o mi excusa favorita… «esto lo limpio luego». Mientras más rápido ataques el asunto menos problemas tendrás más adelante.
Si sigues las metodologías y patrones de testing o code coverage es muy probable que estas te ayuden a evitar el dead code. Pero siempre atento, porque hay veces que luego de una refactorización del código podemos dejar pruebas huérfanas. No atender esto, también es una mala costumbre que debemos evitar.
Dead End
Dead End aplica a la práctica de añadir modificaciones al código fuente de las dependencias de nuestro proyecto. Una de las ventajas de utilizar proyectos de código abierto es que si en algún momento descubrimos un bug o detectamos algún problema en la dependencia lo podemos resolver de inmediato a través de un hotfix en nuestro código. El problema o mala costumbre aparece cuando necesitamos realizar una actualización a esa dependencia. Es muy probable que nuestro hotfix sea eliminado durante el proceso de actualización.
Cuando hacemos una modificación al código fuente de la dependencia estamos heredando todo el trabajo de mantener esta nueva versión de la dependencia. Ahora el mantenimiento recae en nosotros o en nuestro equipo de desarrollo.
Hay varias formas de poder evitar este problema. Lo ideal seria notificar al autor de la dependencia sobre el bug y presentar un posible Issue. Si la solución propuesta responde a una solución general del problemas pudieras inclusive someter un Pull Request al proyecto y cooperar con el autor. Si el problema de la dependencia afecta exclusivamente tu código fuente ya sabes que debes estar muy atento al momento de actualizar el proyecto o al momento de lanzar el producto a producción.
Para terminar
Estoy muy satisfecho de no haberme saltado este episodio del podcast. Estas dos malas prácticas parecerán tontas e inofensivas pero te hacen perder mucho tiempo valioso de tu proyecto. Haber repasado estas malas costumbres me ha llevado a reforzar el asunto de la calidad del código. Existen muchas malas prácticas que pueden comprometer la calidad de nuestro producto. Te invito a que seas más atento a la calidad y creeme que al final la satisfacción es buenisima.