Codice automatico strumento di qualità per Ruby?[chiuso]
-
09-06-2019 - |
Domanda
Una cosa che mi manca davvero su Java, è lo strumento di supporto.FindBugs, Checkstyle e PMD fatto per una santa trinità del codice di metriche di qualità e automatico bug di controllo.
C'è qualcosa che si verifica per il semplice bug e / o stile di violazioni del codice Ruby?Punti Bonus se posso adattare per l'utilizzo di framework come Guide in modo che Rails idiomi sono rispettate.
Altri suggerimenti
Saikuro e Flog può essere buono per ottenere una idea di base di codice di complessità.È inoltre possibile utilizzare uno strumento come rcov a guardare la copertura del test.
C'è un plugin per Rails progetti che combinano tutti questi parametri in un unico task rake.Si chiama metric_fu.
Progetti che ho trovato e testato di recente:
- https://github.com/railsbp/rails_best_practices
- Sembra funzionare, e dà sensibile avvisi
- https://github.com/simplabs/excellent
- Funziona, ma un bel po ' di falsi positivi
- https://github.com/troessner/reek
- Io non sono d'accordo con la maggior parte degli avvisi di questo strumento, ma funziona
- http://www.cs.umd.edu/projects/PL/druby/
- Questo richiede ocaml;Io non l'ho provato, ma sembra che potrebbe essere un bene
- http://roodi.rubyforge.org/
- non sembra essere Ruby 1.9 compatibile
- https://github.com/gdb/ruby-static-checker
- È rotto per me, e solo le catture errori di nome, in modo unit test di copertura che.
- https://github.com/michaeledgar/laser
- Non compilare per me
Si potrebbe desiderare di provare RuboCop.Si tratta di un codice Ruby controllo di stile basato sul Ruby Stile Di Guida.Si è mantenuto abbastanza attivamente e si basa su standard di Ruby utensili (come il ripper
biblioteca).Funziona bene con Ruby 1.9 e 2.0 e ha un grande Emacs integrazione.Spero vi sia utile!
Polvere sembra in grado di aiutarvi a trovare inutilizzati e inutili code, che sembra una sorta di adatta a quello che stai cercando.
Io non sono a conoscenza di tali strumenti.
Questo problema è di gran lunga più difficile di indirizzo in ruby che è in java, potrete notare che di tutti quelli strumenti java marca come l'utilizzo di 'analisi statica' del codice.
Analisi statica di codice ruby spesso non è possibile, perché non c'è nulla di statico, che potrai analizzare (metodi spesso creati a runtime e così via)
In ogni caso, alcune di queste cose sono inutili in ruby perché la lingua li costruisce in.Per esempio, non hai bisogno di uno standard di codifica per imporre che le classi sono tutte NamedLikeThis
perché il codice non funziona se non lo sono.
P. S.Io sono per aggiungere la dichiarazione standard che tipo di strumenti può essere spesso un po ' di red herring.Si può trascorrere tutta la giornata rendendo il vostro codice di aderire a ciò che lo strumento che pensa che dovrebbe essere, e alla fine con più bug che hai iniziato con.
IMHO la soluzione migliore è quello di scrivere il codice in modo fluente in modo da poter leggere più facilmente.Nessuna quantità di analisi statica sta per essere buono come un umano di lettura di codice in cui si afferma chiaramente che cosa si vuole fare.Essere in grado di fare questo è dove ruby è anni luce più avanti di molte altre lingue.Io personalmente consigliamo di puntare i vostri sforzi per imparare a scrivere in modo fluente, e di educare il vostro team su queste cose, di spendere il loro tempo in analisi statica.
Un altro strumento molto bello, anche se nelle prime fasi, secondo l'autore è puzzano:
puzzano, attualmente, è molto ingenuo verifica il seguente codice odori:
- Lungo Metodo
- Grande Classe
- Funzione Di Invidia
- Poco Comunicativo Nome
- Lungo Elenco Di Parametri
- Funzione Di Utilità
- Nidificato Iteratori
- Controllo Di Coppia
- Duplicazione
- Voce di elenco
Personalmente penso che ha ancora troppi falsi positivi, ma solo guardando l'output in alcuni di il mio codice e mi ha aiutato a ripensare alcune decisioni in merito il codice di stile e architettura.
Codice Clima è un SaaS strumento che si integra tramite git e automaticamente "gradi" del codice.Si avvisa l'utente tramite diversi canali, se c'è un improvviso calo di qualità.Bella interfaccia utente così.
Non ho visto questa domanda quando è stato chiesto, ma un blog post che ho fatto potrebbe aiutare pure.Io copertura di un mazzo di Ruby strumenti e in particolare la copertura di 4 codice di strumenti di qualità...
- Roodi
- Polvere
- Flog
- Saikuro
Potrebbe anche essere la pena di verificare Towelie e Flay
http://devver.wordpress.com/2008/10/03/ruby-tools-roundup/
Abbiamo combinato un sacco di strumenti in un solo codice Ruby qualità e metriche strumento di monitoraggio chiamato Pinza.Questo potrebbe soddisfare le vostre esigenze bene.Le tracce varie metriche di qualità oltre la vita di un progetto.
C'è anche eccellente.Io non l'ho ancora provato, ma sembra troppo promettente.