18 votes

Outil Java pour améliorer mon développement de code propre

Y a-t-il des outils (d'analyse statique / de refactoring / ...) spécialement conçus pour Java et adaptés au développement du code propre (CCD)?

Je connais les outils habituels pour l'analyse statique (PMD, Findbugs, Checkstyle), l'injection de dépendances, les tests et la couverture de code. Mais je recherche un outil qui me donne des indications sur la propreté de mon code (comme décrit par exemple ici et dans Clean Code de l'Oncle Bob), comment je peux le rendre plus propre, de préférence adapté à ma note de code propre. Un outil qui pourrait également me montrer comment je progresse dans le CCD au fil du temps serait optimal.

Un exemple d'un tel outil est CcdAddIn, qui affiche les valeurs du CCD selon votre note actuelle de CCD, mais c'est seulement pour Visual Studio :(

Connaissez-vous de tels outils pour Java? Lequel est le meilleur? Que remplissent-ils des critères ci-dessus? Ou avez-vous une raison pour laquelle un tel outil n'existe pas encore?


Si vous ne connaissez pas un tel outil: Connaissez-vous un outil d'analyse statique qui peut être configuré pour vérifier les critères mentionnés dans Clean Code de l'Oncle Bob, par exemple pour m'avertir des défauts tels que des noms ou des commentaires semblant mal choisis, les méthodes trop longues ou avec trop de paramètres, et suggérer immédiatement un refactoring particulier pour résoudre cela?

12voto

Ryan Stewart Points 46960

Sonar est livré avec quelques profils de qualité de code décents - basés sur PMD, Checkstyle et Findbugs - et une interface agréable pour les personnaliser pour votre propre usage. Je ne pense pas que vous trouverez une liste universelle de "Tu dois ..." dans le monde Java. Il y a trop d'applications différentes et d'approches de développement pour ce type d'uniformité. Si vous jetez un œil aux ensembles de règles PMD prédéfinis, vous trouverez même un ensemble de "Règles controversées" qui sont spécifiquement celles qui ont tendance à susciter des débats animés. Certains les adorent ; d'autres les détestent. Donc, la première leçon ici serait d'utiliser les conventions établies comme des lignes directrices et d'ajouter/supprimer comme vous le jugez bon.

Je n'ai jamais entendu parler de CCD dans le monde Java, donc je ne m'attends pas à trouver une traduction directe. Si vous vous souciez du code sain (propre?), vous devez utiliser un outil comme Sonar ou bien tous les outils qu'il compile dans une interface pratique. Sonar fait bien plus que simplement l'analyse statique. Il y a une instance de démonstration de Sonar où vous pouvez vous faire une idée de ses fonctionnalités ainsi que reculer d'horreur devant les métriques de certaines bibliothèques open source. Donc, la deuxième leçon serait "Utilisez Sonar parce que c'est génial".

2voto

Aniruddha Points 716

Vérifiez l'outil appelé 'checkstyle' http://sourceforge.net/projects/checkstyle/files/. Vous pouvez étendre le checkstyle.

2voto

Terrell Plotzki Points 1652

Si vous utilisez l'incroyable Hudson pour l'intégration continue, il existe un ensemble de plugins qui fournissent des rapports et des analyses de tendance sur l'évolution du code (ou sa dégradation ;-) ) au fil du temps. Incluant PMD, Checkstyle, FindBugs ainsi que la couverture des tests

2voto

DaveFar Points 3360

J'ai seulement trouvé le CCD Workbench, qui semble être assez proche du CcdAddIn de Visual Studio, mais je n'ai trouvé aucun endroit pour télécharger ce plugin eclipse (et je n'ai pas reçu de réponse à mon e-mail).

La description de CCD Workbench, ainsi que ce rapport sur sa conception, sont en allemand. Est-ce que le mouvement CCD est plus fort en Allemagne que dans d'autres pays? Cela semble être le cas.

2voto

basav Points 1120

La plupart des outils qui détectent les violations du CCD fonctionnent en collectant d'abord les métriques du code et en mettant en évidence les valeurs aberrantes.

Sonar est un tel excellent outil qui a déjà été mentionné.

Les outils ci-dessous sont spécifiquement créés pour collecter des métriques du code orienté objet mais montrent les violations sous une forme graphique qui aidera le développeur à analyser et à éviter.

iPlasma est un excellent outil

CodePro est un plugin Eclipse qui aide à détecter les problèmes de code et de conception (par exemple, code dupliqué, classes qui rompent l'encapsulation ou méthodes placées dans la mauvaise classe).

Relief est un outil visualisant les paramètres suivants des projets Java:

  • taille d'un package, c'est-à-dire combien de classes et d'interfaces il contient
  • le type d'élément visualisé (les packages et les classes sont représentés par des boîtes, les interfaces et les champs de type par des sphères).
  • à quel point un élément est utilisé (représenté par la gravité, c'est-à-dire la distance du centre)
  • nombre de dépendances (représenté par la profondeur).

Stan4j est un outil commercial qui coûte quelques centaines de $. Il cible uniquement les projets Java, se rapproche beaucoup (ou offre des rapports un peu meilleurs? pas sûr) de Sonar. Il a une bonne intégration avec Eclipse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X