Domanda

Uno di cui sono a conoscenza è Perl::Critico

E finora la mia ricerca su Google non ha prodotto risultati in più tentativi.:-(

Qualcuno ha qualche consiglio qui?

Sarebbe apprezzata qualsiasi risorsa per configurare Perl::Critic secondo i nostri standard di codifica ed eseguirlo su codebase.

È stato utile?

Soluzione

In termini di creazione di un profilo, ci hai provato perlcritic --profile-proto?Questo emetterà sullo stdout tutte le policy installate con tutte le loro opzioni con le descrizioni di entrambe, inclusi i loro valori predefiniti, in formato perlcriticrc.Salva e modifica per adattarlo a ciò che desideri.Ogni volta che aggiorni Perl::Critic, potresti voler eseguire di nuovo questo comando e fare un diff con il tuo attuale perlcriticrc in modo da poter vedere eventuali modifiche alle politiche esistenti e prenderne di nuove.

Per quanto riguarda l'esecuzione regolare di Perlcritic, impostare a Test::Perl::Critica prova insieme al resto dei tuoi test.Questo è positivo per il nuovo codice.

Per il codice esistente, utilizzare Test::Perl::Critico::Progressivo Invece.T::P::C::Progressive avrà successo la prima volta che lo esegui, ma salverà i conteggi sul numero di violazioni;successivamente, T::P::C::Progressive si lamenterà se qualcuno dei conteggi aumenta.Una cosa a cui prestare attenzione è quando si annullano le modifiche nel sistema di controllo del codice sorgente.(Ne stai usando uno, vero?) Supponiamo che io effettui il check-in di una modifica ed esegua i test e le mie modifiche riducano il numero di violazioni P::C.Successivamente, si scopre che la modifica era errata, quindi ripristino il vecchio codice.Il test T::P::C::Progressivo fallirà a causa dei conteggi ridotti.La cosa più semplice da fare a questo punto è semplicemente eliminare il file della cronologia (posizione predefinita t/.perlcritic-history) ed eseguirlo di nuovo.Dovrebbe riprodurre i tuoi vecchi conteggi e puoi scrivere nuovo materiale per ridurli nuovamente.

Perl::Critic ha molte policy incluse, ma ci sono un sacco di distribuzioni aggiuntive di policy.Dai un'occhiata a Compito::Perl::Critico E Attività::Perl::Critica::InclusiveOptionalDependencies.

Non è necessario che un singolo perlcriticrc gestisca tutto il codice.Crea file perlcriticrc separati per ogni insieme di file che vuoi testare e poi un test separato che punti a ciascuno di essi.Per un esempio, dai un'occhiata ai test dell'autore per P::C stesso su http://perlcritic.tigris.org/source/browse/perlcritic/trunk/Perl-Critic/xt/author/.Quando vengono eseguiti i test d'autore, c'è un test che analizza tutto il codice di P::C, un secondo test che applica regole aggiuntive solo sulle policy, e un terzo che critica i test di P::C.

Personalmente penso che tutti dovrebbero correre al livello di gravità "brutale", ma eliminare le politiche con cui non sono d'accordo.Perl::Critic non è del tutto compiacente;anche gli sviluppatori P::C non sono d'accordo con tutto ciò che dice Conway.Guardate i file perlcriticrc usati sul Perl::Critic stesso e cercate nel codice Perl::Critic le istanze di "## no critic";Al momento ne conto 143.

(Sì, sono uno degli sviluppatori Perl::Critic.)

Altri suggerimenti

C'è perltidy per la maggior parte degli standard stilistici.perlcritic può essere facilmente configurato utilizzando a file .perlcritic.Personalmente lo utilizzo al primo livello, ma ho disabilitato alcune policy.

Oltre ai "framework automatizzati", consiglio vivamente quello di Damian Conway Migliori pratiche Perl.Non sono d'accordo al 100% con quello che suggerisce, ma nella maggior parte dei casi tiene duro.

Il post sopra menzionato Sviluppo::Prof probabilmente significa davvero Sviluppo::Copertina (per ottenere la copertura del codice di una suite di test).

Una bella combinazione è perlcritic con EPIC per Eclipse: premi CTRL-SHIFT-C (o la tua scorciatoia configurata preferita) e il tuo codice verrà contrassegnato con indicatori di avviso ovunque perlcritic abbia trovato qualcosa di cui lamentarsi.Molto più bello che ricordarsi di eseguirlo prima del check-in.E come di consueto con perlcritic, prenderà il tuo .perlcriticrc così potrai personalizzare le regole.Manteniamo il nostro .perlcriticrc nel controllo della versione in modo che tutti ottengano gli stessi standard.

Oltre alle migliori pratiche cosmetiche, trovo sempre utile eseguire Develop::Prof sulla mia suite di test unitari per verificare la copertura del test.

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