para mejor perl refactoring lamp

mejor ide para perl



¿Hay alguna buena herramienta para refactorizar el código web de Perl? (8)

Actualmente estoy trabajando en un estilo de aplicación de perl web LAMP y recientemente me encontré con este laberinto de código dejado por un desarrollador anterior. Dejó tantos números mágicos y lógica extraña que me da dolor de cabeza cada vez que tuve que pasar por eso.

Estoy aprendiendo pruebas unitarias en este momento, así que quiero encontrar alguna herramienta útil para refactorizar el código y escribir pruebas de unidad en el camino para asegurarme de que no rompa nada accidentalmente.

¿Alguna recomendación para cualquier buena herramienta de refactorización para LAMP perl? Preferiblemente gratis :)

Gracias.


La naturaleza dinámica de Perl significa que es muy difícil crear herramientas de refactorización para él.

Sin embargo, con respecto a las pruebas, debería ser capaz de armar algunas pruebas de regresión para ayudarlo en su camino. Esto funciona comenzando con el código tal como está ahora y capturando su salida actual. Esto podría estar ejecutando el script CGI desde la línea de comandos y guardando el HTML resultante en el archivo.

Una vez que haya capturado esto, puede cambiar el código y, a medida que avanza, verifique que el código HTML no haya cambiado, lo que significa que el código no se ha roto. Cuando se producen cambios, puede encontrar el error o cambiar la prueba para aceptar el nuevo HTML como correcto.

Esto puede ser un poco difícil de configurar pero te hará la vida más fácil a largo plazo. Debe tratar de automatizar estas pruebas para que sea más fácil de ejecutar. Checkout Test :: WWW :: Mechanize and Test :: LongString, así como todos los demás.



vim ! (O cualquier otro editor de texto)

Realmente no hay una herramienta mágica para refractar su código, hay herramientas para (por ejemplo) cambiar el nombre de variables / funciones, pero no hay forma de que pueda arreglar mágicamente una estructura de código horrible o una lógica extraña.


Eclipse con el complemento EPIC tiene soporte de refactorización. No es tan sofisticado como la herramienta de refactorización de IntelliJ para Java. Sin embargo, no estoy 100% seguro de que te ayude con tu problema. La forma en que lo he usado es resaltar bloques de código y moverlos a funciones / métodos. En tu caso, es probable que quieras hacer una gran cantidad de búsquedas / reemplazos en esos números mágicos ...

Supongo que usarás Test :: More para escribir tus pruebas unitarias. Algunas de las otras herramientas EPIC podrían ayudar con eso (por ejemplo, etiquetas "todo").

También podría usar Test :: WWW :: Mechanize y Test :: WWW :: Selenium: sería útil en su caso tener las pruebas de selenio definidas para asegurarse de no romper ninguna funcionalidad del usuario final. EPIC no tiene nada en particular para ayudar con eso, pero debería ser posible utilizarlo para recorrer el código al depurar.

Buena suerte. :-)


Padre tiene algunas herramientas de refactorización. El cambio de nombre de variables funciona bastante bien por un tiempo (dos años más o menos) ahora.

http://padre.perlide.org/

Descargo de responsabilidad: soy un colaborador de Padre.


Si bien en realidad no se está refabricando a gran profundidad, este nodo de PerlMonks describe un par de asignaciones de Vim para desofuscar el código perl usando B :: Deparse .

Sus ejemplos:

Puede escribir _d cuando su cursor está sobre esta línea en modo normal:

--$|&&s|/n|-|;

... y será reemplazado por:

s//n/-/ if --$|;

Y esta línea:

$foo and $bar or $baz = 1;

... sería reemplazado por:

$baz = 1 unless $foo and $bar;



Creo que Eclipse / EPIC tiene "algunas" herramientas de refactorización de Perl ... pero no me cites sobre eso ;-)

También valdría la pena echarle un vistazo a Komodo . Sin embargo, la versión completa no es gratuita como Eclipse / EPIC. Podrías probar su versión de código abierto Komodo Edit pero supongo que no tendrá todas las características?

No he usado ni las herramientas de refactorización anteriores ... Me las arreglo con los editores de vi / vim y TextMate y lo que ofrecen (¡o lo que hasta ahora he encontrado en cada uno de estos editores!).

Hacer pruebas unitarias es un buen comienzo. También eche un vistazo perltidy / Perl :: Tidy & Perl :: Critic que puede ayudar a mirar de cerca el desorden y encontrar algunos de esos "olores de código".