Recientemente me he involucrado en un proyecto en el que un juego basado en la web utiliza un motor escrito en PHP. El juego funciona bien, pero podría ser más robusto y tener algunas características más, y el código es viejo y bastante feo.¿Cómo se refactoriza su antiguo código PHP?
El problema con este código (y mucho código PHP en general, sospecho) es que ha evolucionado hasta donde está y no está estructurado muy bien, tiene una gran cantidad de fragmentos de código cortados/pegados casi idénticos, y hace un uso intensivo de los globales aun cuando las funciones estén involucradas. Ni una sola prueba de unidad en ninguna parte, por supuesto, y el código está codificado para usar una base de datos particular y depende de cadenas $ _REQUEST de la página web que llama al código.
Lo correcto sería extraer partes del código como subfunciones, ponerlas en orden y agregar algunas pruebas de unidad para asegurarse de que sigan funcionando, agregando algunos objetos simulados en el camino. Sin embargo, hacer esto completamente a mano es tedioso y propenso a errores y me pregunto cómo se hace esto: ¿hay un IDE o herramienta que pueda ayudar, por ejemplo? Me gustaría tener una herramienta que pueda ayudar a producir una función a partir de una pieza definida de código, sugerir qué variables deben ser parámetros, por valor o referencia, agregar automáticamente $ this-> referencias, etc.
¿Esto es demasiado preguntar, o hay una buena solución?
Gracias!
Enlace roto y aparentemente no más en la red. – Kzqai
[Este artículo] (http://thinkinghard.com/blog/EconomicsOfTestingUglyCode.html) tiene el mismo título, y se escribió en 2008 en consonancia con la fecha de la respuesta de @David. –