Question

Une chose qui me manque vraiment à propos de Java est le support des outils.FindBugs, Checkstyle et PMD ont créé une sainte trinité de mesures de qualité de code et de vérification automatique des bogues.

Existe-t-il quelque chose qui permettra de vérifier les bogues simples et/ou les violations de style du code Ruby ?Des points bonus si je peux l'adapter à des frameworks tels que Rails afin que les idiomes Rails soient respectés.

Était-ce utile?

La solution

J'ai récemment commencé à chercher quelque chose comme ça pour Ruby.Ce que j'ai rencontré jusqu'à présent :

Cela pourrait être un point de départ.Malheureusement, je n'ai pas encore suffisamment utilisé aucun des trois pour donner une bonne opinion.

Autres conseils

Saikuro et Flog peuvent être utiles pour avoir une idée de base de la complexité du code.Vous pouvez également utiliser un outil comme rcov pour consulter votre couverture de test.
Il existe un plugin pour les projets Rails qui combine toutes ces métriques en une seule tâche de rake.On l'appelle metric_fu.

Projets que j'ai trouvés et testés récemment :

Vous voudrez peut-être essayer RuboCop.Il s'agit d'un vérificateur de style de code Ruby basé sur Guide de style Ruby.Il est maintenu assez activement et est basé sur les outils Ruby standard (comme le ripper bibliothèque).Il fonctionne bien avec Ruby 1.9 et 2.0 et possède une excellente intégration Emacs.J'espère que cela vous sera utile !

Poussière on dirait que cela peut vous aider à trouver du code inutilisé et inutile, ce qui semble correspondre en quelque sorte à ce que vous recherchez.

Je ne connais aucun autre outil de ce type.
Ce problème est beaucoup plus difficile à résoudre en Ruby qu'en Java - vous remarquerez que tous ces outils Java se présentent comme utilisant une "analyse statique" du code.
L'analyse statique du code Ruby n'est souvent pas possible, car il n'y a rien de statique que vous puissiez analyser (les méthodes sont souvent créées au moment de l'exécution, etc.)

Quoi qu'il en soit, certaines de ces choses ne sont pas nécessaires dans Ruby car le langage les intègre.Par exemple, vous n'avez pas besoin d'une norme de codage pour imposer que vos classes soient toutes NamedLikeThis parce que le code ne fonctionnera pas s'ils ne le sont pas.

P.S.je avoir pour ajouter l'avertissement standard selon lequel ce type d'outils peut souvent être un peu une fausse piste.Vous pouvez passer toute la journée à faire en sorte que votre code adhère à ce que l'outil pense qu'il devrait être et vous retrouver avec plus de bogues qu'au départ.
À mon humble avis, la meilleure solution est d'écrire votre code couramment afin de pouvoir le lire plus facilement.Aucune analyse statique ne sera aussi bonne qu'un code de lecture humaine qui indique clairement ce qu'il est censé faire.C'est là que Ruby est capable de faire cela, à des années-lumière de beaucoup d'autres langages.Personnellement, je vous recommanderais de consacrer vos efforts à apprendre à écrire plus couramment et à éduquer votre équipe sur de telles choses, plutôt que de consacrer du temps à l'analyse statique.

Un autre outil intéressant, bien qu'à ses débuts selon l'auteur, est puant :

http://reek.rubyforge.org/

reek inclut actuellement des contrôles très naïfs pour les odeurs de code suivantes :

  • Méthode longue
  • Grande classe
  • Envie de fonctionnalités
  • Nom peu communicatif
  • Longue liste de paramètres
  • Fonction d'utilité
  • Itérateurs imbriqués
  • Couple de contrôle
  • Reproduction
  • Élément de liste

Personnellement, je pense qu'il y a encore trop de faux positifs, mais le simple fait de regarder le résultat de certains de mes codes m'a aidé à repenser certaines décisions concernant le style et l'architecture du code.

Code Climat est un outil SaaS qui s'intègre via git et « note » automatiquement votre code.Il vous avertit via différents canaux en cas de baisse soudaine de qualité.Belle interface utilisateur également.

Je n'ai pas vu cette question lorsqu'on m'a posé cette question, mais un article de blog que j'ai rédigé pourrait également être utile.J'y couvre un tas d'outils Ruby et couvre spécifiquement 4 outils de qualité de code...

  1. Roodi
  2. Poussière
  3. Fouetter
  4. Saikuro

Cela vaut peut-être également la peine de vérifier Towelie et Flay

http://devver.wordpress.com/2008/10/03/ruby-tools-roundup/

Nous avons maintenant combiné de nombreux outils dans un seul outil de surveillance de la qualité du code et des métriques Ruby appelé Caliper.Cela pourrait bien répondre à vos besoins.Il suit diverses mesures de qualité tout au long de la vie d'un projet.

Caliper - améliorez votre code Ruby

Il y a aussi excellent.Je ne l'ai pas encore essayé, mais cela aussi semble prometteur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top