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

Y en a-t-il (analyse statique / refactoring / ...) outils pour Java spécialement conçus pour Développement de code propre (CCD)?

Je connais les outils habituels pour l'analyse statique (PMD, Findbugs, Checkstyle), l'injection de dépendance, les tests et la couverture de code. Mais je suis à la recherche d'un outil qui me donne des conseils sur la propreté de mon code (comme décrit par exemple ici et dans le code propre de L'oncle Bob), Comment je peux le rendre plus propre, de préférence adapté à mon Catégorie propre de code. Un outil qui pourrait aussi me montrer comment je m'améliore dans le CCD au fil du temps serait optimal.

Un exemple d'un tel outil est CcdAddIn , qui affiche les valeurs CCD en fonction de votre note CCD actuelle, mais c'est seulement pour visual studio: (

Connaissez-vous de tels outils pour Java? Laquelle est la meilleure? Qu'est-ce qui précède remplissent-ils? 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 donnés dans le code propre de Uncle Bob, par exemple me prévenir des odeurs comme des noms ou des commentaires semblant mal choisis, des méthodes trop longues ou trop nombreuses, et suggérer immédiatement un refactoring particulier pour résoudre ce problème?

23
demandé sur DaveFar 2011-08-13 12:51:57

6 réponses

Sonar {[2] } est livré avec des profils de qualité de code décent-basé sur PMD, Checkstyle et Findbugs-et une interface agréable pour les personnaliser pour votre propre usage. Je ne pense pas que vous allez trouver un, liste universelle de " tu..."dans le monde Java. Il y a trop d'applications et d'approches de développement différentes pour ce genre d'uniformité. Si vous jetez un oeil aux ensembles de règles PMD prédéfinis , vous trouverez même un ensemble de "règles controversées" qui sont plus précisément ceux qui ont tendance à engendrer des débats houleux. Certains les aiment; certains les détestent. Donc, la première moral ici serait d'utiliser les conventions établies de lignes directrices et d'ajouter/supprimer comme bon vous semble.

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

16
répondu Ryan Stewart 2011-08-13 16:37:04

Outil de vérification appelé 'checkstyle' http://sourceforge.net/projects/checkstyle/files/. U peut étendre le checkstyle.

2
répondu Aniruddha 2011-08-13 09:08:51

Je n'ai trouvé que le Workbench CCD , qui semble être assez proche de ccdaddin de visual studio, mais je n'ai trouvé aucun endroit pour télécharger ce plugin eclipse (et n'ai reçu aucune réponse à mon email).

La description de CCD workbench, ainsi que ce rapport sur sa conception, sont en allemand. Se pourrait-il que le mouvement CCD soit plus fort en Allemagne que dans d'autres pays? Me semble de cette façon.

2
répondu DaveFar 2011-09-13 22:03:56

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 excellent outil qui a déjà été souligné.

Les outils ci-dessous sont spécifiquement créés en tant qu'outils pour collecter des métriques du code orienté objet, mais montrent les violations dans un format graphique qui aidera le développeur à analyser et à éviter.

IPlasma est un excellent outil de

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

Relief est un outil de visualisation des paramètres suivants des projets Java:

  • taille d'un paquet, c'est à dire combien de classes et d'interfaces, il contient
  • le type d'élément visualisé (les paquets et les classes sont représentés sous forme de boîtes, les interfaces et les champs de type sous forme de sphères).
  • combien lourd un élément est utilisé (représenté par 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 ne cible que les projets Java, est très proche de (ou un peu mieux que les rapports? pas sûr) Sonar. Il a une bonne intégration Eclipse.

2
répondu basav 2012-12-17 04:46:20

Pour idée Intellij utilisateurs, je recommande le Fiche QA, ce qui est similaire au Sonar. Il intègre la sortie de différents outils, bien qu'il ne fournit pas une représentation graphique. Il est bien intégré dans L'IDE.

En outre, vous pouvez utiliser analyse de dépendance de L'idée pour détecter les cycles indésirables. Il propose, entre autres, la matrice de structure de conception/dépendance (DSM).

1
répondu Rostislav Matl 2011-09-26 15:29:01