Un día normal como otro cualquiera, me comentan “tienes que añadir una funcionalidad nueva al proyecto,…” parece fácil. Pero mi cara cambia cuando abro el fichero y veo más de 1000 líneas de código, trozos comentados, líneas infinitas, no hay indentación. Conclusión: ¡un horror!
Seguro que ésto te ha pasado alguna vez, ¿verdad? El código legado, sin tests forma parte de nuestro día a día, así que en vez de resignarme y quejarme decidí ponerme manos a la obra y solucionarlo. puedes enfrentarte al código, mejorarlo y que la próxima vez sea todo mucho más sencillo. Es posible optimizar las aplicaciones PHP con unas sencillas técnicas de refactoring. Empecé a aprender estas técnicas, hacer katas, testear dependencias difíciles, etc. Poco a poco he pasado de odiar el código legacy a experimentar la satisfacción de resolver los múltiples retos que me planteaba.
En este curso te explicaré todo sobre del código legacy y de cómo pasar del dolor a la satisfacción. También te contaré de cómo pasar a hacer un fichero de mil líneas a construir unas clases que cumplen los principios SOLID, de tener un código acoplado a ver como el código empieza a tener tests, empieza a evolucionar y tu empiezas a mejorar como programador.
Refactorizar es cambiar el código sin modificar el comportamiento observable de la aplicación. El objetivo de este curso es mejorar tus habilidades como programador y que puedas enfrentarte a cambiar código sin miedo a romper nada.
Veremos como simplificar el código para ganar legibilidad y que añadir funcionalidades sea sencillo. Utilizaremos herramientas simples pero efectivas como Composer, hablaremos sobre trucos en Git, nos olvidaremos de utilizar include y require para aprender autoload. Además conoceremos las recomendaciones de estilo de la comunidad PHP como PSR-2. Manteniendo el foco en hacer un código limpio, junto con unas sencillas técnicas de refactoring, te demostraré que luchar contra el código legacy es posible.
En este curso aprenderemos a identificar los “code smell” en el código legacy. Juntos vamos a ver como transformar esos smell en código para que te sientas orgulloso. Paso a paso te explicaré distintas técnicas como “Extract Method”, “Rename Variable”, “Replace Temp wih query”, “Move Method”, etc. que nos ayudarán mucho en nuestro día a día. Son técnicas que tienen como base la sencillez y nos aportan una gran efectividad. Después de aplicar estas técnicas y casi sin darnos cuenta llegaremos a una solución simple, legible, fácil de mantener y testeable.
Además veremos cómo testear clases con dependencias, en las que a priori parece imposible tocar una línea de código sin romper nada. Poco a podo, dando pequeños pasos, aplicando técnicas de refactoring, llegaremos a soluciones útiles. Del mismo modo estas técnicas son sencillas que podrás aplicarlas en tu día a día con aplicaciones legacy en PHP.
Con un poco de paciencia, te darás cuenta que modificar el código sin cambiar el comportamiento es sencillo. Basándonos en ejemplos claros y con la ayuda del IDE podrás extraer métodos, harás que esa función tan grande que hace tantas cosas empiece a parecer más «bonita», verás que moviendo métodos a otras clases tu código empieza a cumplir los principios SOLID. Y eso solo es el principio.
Finalmente, aprenderemos que tener un código legacy no, no es un tormento sino un reto. Un desafío para aprender a testear, a sacarle el máximo partido a PHP, para construir código mantenible basado en los principios SOLID.
Si te ha gustado el contenido del post y quieres limpiar tu código para mejorarlo, no te lo pienses más y apúntate a nuestro curso de Refactoring PHP.