Je me demande s'il existe un outil permettant d'identifier des blocs de code cohérents dans le code source JAVA. Par exemple, si j'avais une méthode longue que je voudrais extraire d'une autre méthode - y a-t-il un outil qui peut automatiquement me dire de gros morceaux de code qui mériteraient d'être extraits?Outil d'identification des blocs cohésifs de code (JAVA)
Répondre
Extraire Sonar Il a un très bon support pour trouver des blocs de code en double.
Sonar utilise PMD et FindBugs sous-jacents. Il génère également des métriques personnalisées telles que la complexité des classes, la complexité des méthodes qui pointent vers des classes/méthodes trop grandes et susceptibles d'être décomposées.
Merci, mais je ne suis pas directement intéressé par le code dupliqué. Je détecte une méthode longue et aimerais connaître des morceaux de code qui valent la peine de les extraire dans une nouvelle méthode pour raccourcir la fonction originale. – KoenigGunther
@KoenigGunther J'espère que vous avez lu ma réponse mise à jour. –
Google CodePro Analytics a un plug-in Eclipse qui peut fournir un tas de statistiques comme des lignes de code et une complexité cyclomatique qui peuvent être de bons indicateurs qu'une méthode doit être refactorisée.
Je ne pense pas que vous trouverez un outil capable de refactoriser automatiquement des blocs de code cohérents en méthodes. Il y a trop de subjectivité dans cela.
Les blocs de commande (c'est-à-dire les conditionnels et les boucles) sont "cohésifs" en ce sens que vous ne pouvez pas extraire facilement des blocs de code qui traversent les limites des blocs de commande. Trouver des blocs qui peuvent être remplacés par un appel de méthode, qui facilite la compréhension de la méthode d'origine. Vous aurez le meilleur impact sur la complexité en extrayant les zones d'imbrication des flux de contrôle les plus profondes, c'est donc un bon point de départ. Vous n'avez pas besoin d'un outil en tant que tel - le code lui-même a l'information dont vous avez besoin.
J'ai cherché un outil similaire avec une autre question: https://stackoverflow.com/questions/12016289/tool-for-visualizing-dependencies-inside-a-java-class juste à un niveau légèrement supérieur: une seule classe.
Je pense que la même réponse s'applique: Il n'y a rien de tel. Il existe cependant des outils qui fournissent des informations à partir desquelles vous pouvez extraire les informations que vous recherchez. Je verrais DependencyFinder. Il donne accès à tous les éléments du code, ce qui vous permet de trouver des groupes d'éléments de code accédant à un ensemble commun de variables. Malheureusement, j'ai trouvé l'API un peu confuse et pas bien documentée, donc vous aurez besoin d'essayer et d'erreur ou entrer en contact avec l'auteur. Il ne vous donnera probablement pas accès aux espaces, je pense. Mais je ne pense pas que ce soit une approche valable de toute façon.
Un autre outil que vous pourriez vouloir examiner est JaMoPP Il devrait même avoir des informations sur les espaces. Bien que ce soit un plugin Java, vous pouvez utiliser la librairie sous-jacente indépendante d'eclipse (je pense).
- 1. Comment changer les couleurs des nœuds des blocs cohésifs?
- 2. Calcul de la cohésion de blocs cohésifs ig 0.5.4
- 3. du code Java Outil d'analyse
- 4. Combinaisons de panneaux uniques avec des blocs - Code en Java
- 5. blocs de code statique
- 6. Comment trouver des blocs catch vides dans le code Java
- 7. Outil pour convertir FXML en Java Code
- 8. Achèvement du code des blocs
- 9. Outil de recherche de classe Java Outil
- 10. Outil d'écriture de code javascript
- 11. Outil pour refactoriser les blocs "avec"
- 12. Aléatoire blocs de code
- 13. Les blocs de code
- 14. Remplacement de plusieurs blocs [code] blocs
- 15. Blocs de code anonymes
- 16. Blocs de code Prestashop
- 17. Syntaxe Java - si vous n'utilisez pas de blocs de code
- 18. Comment stocker des blocs de code Ruby
- 19. combinant des blocs jquery de code
- 20. Comment inclure des blocs de code
- 21. OCMod pas trouver des blocs de code
- 22. Où placer des blocs de code
- 23. Problèmes d'alignement des blocs de code Squarespace
- 24. Quand utilisez-vous des blocs de code?
- 25. blocs de code perl
- 26. N'importe quel outil de couverture de code Java pour Solaris
- 27. Outil de surveillance Java
- 28. Outil pour la couverture de code java sur GitHub
- 29. analyse de code java et structure par outil ou plugin
- 30. Java: Utilisation des variables de blocs try
Existe-t-il des exemples sur la façon de détecter des blocs de code choisis? Par exemple, je serais intéressé de trouver des instructions groupées séparées par d'autres instructions par des lignes vides. – KoenigGunther