Code de la complexité des outils d'analyse au-delà de la complexité cyclomatique
Alors que la complexité cyclomatique est une peine métrique, j'ai tendance à trouver ça un mauvais outil pour l'identification difficile à maintenir le code. En particulier, j'ai tendance à trouver cela souligne certains types de code (par exemple, les parseurs) et rate difficile de récursivité, de filetage et de problèmes de couplage ainsi que de nombreux anti-modèles qui ont été définis.
Ce que d'autres outils sont disponibles pour identifier les problématiques de code Java ?
Note, nous utilisons déjà des PMD et FindBugs qui, je crois, sont parfaits pour au niveau de la méthode d'identification du problème.
OriginalL'auteur Jim Rush | 2009-07-17
Vous devez vous connecter pour publier un commentaire.
Mon expérience est que les paramètres les plus importants lorsque l'on regarde le code de maintenabilité sont:
Lors de l'examen de code qui a été écrit par d'autres, il est souvent utile d'inclure des techniques dynamiques. Simplement exécuter des scénarios d'utilisation courants par l'intermédiaire d'un générateur de profils/outil de couverture du code de découvrir:
Les suspects habituels comme tout profiler, la couverture du code et des paramètres de l'outil sera généralement vous aider à obtenir les données nécessaires pour faire ces évaluations.
OriginalL'auteur
Google Testabilité Explorer vérifie par exemple pour les singletons et les autres statique des choses qui sont mauvaises odeurs dans la conception. Métriques est un plugin Eclipse qui mesure presque tous les code métrique connue de l'humanité. J'ai utilisé et peut facilement recommander la fois.
OriginalL'auteur Marcin
Sonar tente d'identifier les "points chauds" de la complexité et de la maintenabilité combinant les résultats de plusieurs outils open source (y compris les PMD et Findbugs). Il s'intègre très bien avec Maven et serveurs CI (en particulier d'Hudson).
MODIFIER par extraneon
Il y a un Sonar site disponible où beaucoup de projets open source sont analysés. Je pense que cela montre assez bien comment beaucoup de règles appliquées,et dans quelle mesure l'exploration va. Bien sûr, vous pouvez également désactiver les règles vous ne trouvez pas que c'est intéressant.
Ici est une explication de la métrique.
OriginalL'auteur Csaba_H
Je n'ai jamais utilisé, mais j'ai trouvé ça plutôt intéressant et prometteur:
http://erik.doernenburg.com/2008/11/how-toxic-is-your-code/
Et j'ai utilisé celui-ci et l'a trouvé très utile, parce que la gentille visualisation des dépendances
http://www.headwaysoftware.com/products/structure101/index.php
OriginalL'auteur Jens Schauder
De l'analyse statique des outils que vous utilisez déjà sont assez standard. Si vous utilisez Eclipse, essayez de regarder ici pour plus d'outils d'analyse de code.
Emma fournit une analyse de couverture de code, mais c'est vraiment pour les tests.
OriginalL'auteur Daniel F. Thornton
L'outil NDepend pour .NET code vous permettra d'analyser les nombreuses dimensions de la complexité du code, y compris les métriques de code comme:
La Complexité cyclomatique, Profondeur d'Imbrication, le Manque De Cohésion des Méthodes, de la Couverture par les Tests...
...y compris les dépendances de l'analyse et notamment Code de Règles de plus de Requêtes LINQ (CQLinq) dédié à demander, ce qui est complexe, dans mon code, et d'écrire la règle. Autour de 200 Code par défaut des Règles sont fournis. Ils concernent des anti-modèles comme la Singleton, la détection de les problèmes de threading, la détection de problèmes de couplage comme Couche d'INTERFACE utilisateur ne doit pas utiliser directement DB types...
A quelques temps, j'ai écrit un article pour résumer plusieurs dimensions de la complexité de code:
De Combat Fabriqué Complexité
Jim, en fait, nous avons publié un Code de Requête et de la Règle sur LINQ (CQLinq) qui est beaucoup plus puissant que le CQL. Jusqu'à présent, nous sommes le seul fournisseur à proposer quelque chose comme CQLinq. Il est le résultat d'un énorme effort de Recherche et de Développement et que nous la considérons comme mature pour usage du monde réel.
OriginalL'auteur Patrick from NDepend team