Domanda

Attualmente sto lavorando a un'app Web perl in stile LAMP e recentemente mi sono imbattuto in questo labirinto mortale di codice lasciato da un precedente sviluppatore. Ha lasciato così tanti numeri magici e strane logiche che mi fa venire il mal di testa ogni volta che ho dovuto affrontarlo.

Sto imparando i test delle unità in questo momento, quindi voglio trovare alcuni strumenti utili per il refactoring del codice e scrivere test unit lungo la strada per assicurarmi di non rompere accidentalmente nulla.

Qualche consiglio su qualsiasi buon strumento di refactoring per LAMP perl? Preferibilmente gratis :)

Grazie.

È stato utile?

Soluzione

Penso che Eclipse / EPIC ha " alcuni " Strumenti di refactoring del Perl ... ma non citarmi su questo ;-)

Potrebbe anche valere la pena dare un'occhiata a Komodo . Tuttavia, la versione completa non è gratuita come Eclipse / EPIC. Potresti provare la loro versione opensource Komodo Edit ma immagino che non avrà tutte le funzionalità?

Non ho usato né sopra né altri strumenti di refactoring ... Vado avanti con vi / vim & amp; Editor di TextMate e cosa forniscono (o cosa ho trovato finora in ciascuno di questi editor!).

Effettuare test unitari è un buon inizio. Dai anche un'occhiata a perltidy / Perl :: Tidy & Amp; Perl :: Critic che può aiutarti a sbirciare nel caos e trovare alcuni di quelli < !> quot; odori di codice " ;.

Altri suggerimenti

Probabilmente, volontari su Refactor: my = > 'code' può aiutarti. Ad ogni modo, è libero di chiedere :)

La natura dinamica di Perl significa che è molto difficile creare strumenti di refactoring per questo.

Tuttavia, per quanto riguarda i test, dovresti essere in grado di mettere insieme alcuni test di regressione per aiutarti nel tuo cammino. Funziona iniziando con il codice così com'è ora e acquisendo il suo output attuale. Potrebbe essere in esecuzione lo script CGI dalla riga di comando e salvare l'HTML risultante su file.

Dopo averlo acquisito, è possibile modificare il codice e, man mano che si procede, verificare che l'HTML non sia cambiato, il che significa che il codice non si è rotto. Quando si verificano modifiche, è possibile trovare il bug o modificare il test per accettare il nuovo HTML come corretto.

Questo può essere un po 'complicato da configurare, ma ti renderà la vita più semplice nel lungo periodo. Dovresti provare ad automatizzare questi test per semplificarne l'esecuzione. Test di verifica :: WWW :: Mechanize and Test :: LongString e tutti gli altri.

Anche se non è in realtà un refactoring di grande profondità, questo nodo PerlMonks descrive una coppia di mappature Vim per deobuscolare il codice perl usando B :: Deparse .

I loro esempi:

Puoi digitare _d quando il cursore si trova su questa linea in modalità normale:

--$|&&s|\n|-|;

... e sarà sostituito con:

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

E questa riga:

$foo and $bar or $baz = 1;

... verrebbe sostituito con:

$baz = 1 unless $foo and $bar;

Eclipse con il plug-in EPIC ha del supporto per il refactoring. Non sofisticato come il refactoring di IntelliJ per lo strumento Java. Non sono sicuro al 100% che sarebbe d'aiuto con il tuo problema. Il modo in cui l'ho usato è per evidenziare blocchi di codice e spostarli in funzioni / metodi. Nel tuo caso probabilmente vorrai fare molta ricerca / sostituzione su quei numeri magici ...

Suppongo che userete Test :: More per scrivere i test unitari. Alcuni degli altri strumenti EPIC potrebbero aiutare in questo (ad esempio & Quot; todo & Quot; tags).

Puoi anche usare Test :: WWW :: Mechanize and Test :: WWW :: Selenium - nel tuo caso sarebbe utile avere dei test di selenio definiti per assicurarti di non interrompere alcuna funzionalità per l'utente finale. EPIC non ha nulla in particolare per aiutarlo, ma dovrebbe essere possibile usarlo per scorrere il codice durante il debug.

Buona fortuna. : -)

Vedi Develop :: Refactor - Estensione Perl per il refactoring del codice Perl. https://metacpan.org/pod/Devel::Refactor

vim! (O qualsiasi altro editor di testo)

In realtà non esiste uno strumento magico per rifrangere il codice, ci sono strumenti per (ad esempio) rinominare variabili / funzioni, ma non c'è modo che possa magicamente correggere una struttura di codice orribile o una logica strana.

Padre ha alcuni strumenti di refactoring. La ridenominazione delle variabili funziona abbastanza bene da un po '(due anni circa) adesso.

http://padre.perlide.org/

Dichiarazione di non responsabilità: sono un collaboratore di Padre.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top