Question

  • Utilisez-vous des analyseurs de code source? Si oui, lesquels et pour quel développement linguistique?
  • Les trouvez-vous utiles pour résoudre des bugs potentiels dans votre code? Ou bien la plupart de leurs avertissements sont-ils triviaux?
  • Après une utilisation prolongée, trouvez-vous que la qualité de votre code est meilleure qu'avant?
Était-ce utile?

La solution

J'utilise quelques outils d'analyse statique en Java. FindBugs est la première ligne de défense. Elle contient de nombreuses erreurs courantes et fournit des commentaires très utiles. Il repère souvent les erreurs stupides de programmeurs fatigués et ne fait pas peser une lourde charge sur l'utilisateur.

PMD convient à de nombreux autres bogues plus graves, mais nécessite beaucoup plus de configuration. Vous constaterez que les valeurs par défaut des PMS sont souvent excessives. Il y a trop de règles qui sont probablement bénéfiques à petite échelle mais qui au final n'aident pas les autres programmeurs à maintenir votre code. Certaines règles de PMD évoquent souvent une optimisation prématurée.

Le support CPD dans PMD est probablement plus utile. Il tente de trouver du code qui a été dupliqué ailleurs, afin de rendre le refactoring beaucoup plus facile. Effectué sur un projet entier, cela aide vraiment à déterminer les priorités pour le nettoyage du code et l'arrêt des violations de DRY.

Checkstyle est également utile pour vous assurer que vos codeurs sont conformes à certaines normes de style de codage. Il y a un peu de chevauchement avec PMD mais il est généralement beaucoup plus utilisable.

Enfin, Cobertura est une excellente suite de tests de couverture. Très pratique pour savoir où les tests unitaires font défaut et où vous devriez donner la priorité à la création de nouveaux tests.

Oh, et j’ai également testé Jester . Cela semble être très utile pour trouver des trous dans les tests, même lorsque le code est couvert. Pas encore recommandé, simplement parce que je ne l’ai pas assez utilisé, mais un pour tester.

J'utilise ces outils depuis Eclipse et dans le cadre d'une suite de construction automatisée.

Autres conseils

Pour C, j'utilise MEMWATCH . C'est vraiment facile à utiliser et gratuit.

Je l'ai utilisé pour trouver de nombreux bugs de mémoire dans le passé.

J'ai utilisé resharper et MS TS (en gros FXCop) et les deux sont très utiles, en particulier dans les domaines suivants:

  • Identification du code mort
  • Wide Scope
  • Améliorations des performances (liées à la mondialisation, etc.)

Les recommandations ne sont pas toujours excellentes mais améliorent généralement la qualité du code.

Je suis un utilisateur de longue date de PC-Lint pour C et C ++ et le trouve très utile. . Ces outils sont particulièrement utiles lorsque vous reprenez une base de code avec laquelle vous ne vous connaissez pas. Au fil du temps, vous rencontrez une loi des rendements décroissants, où le nombre de nouveaux bogues que vous trouvez a tendance à disparaître.

Je reste toujours à un projet complet qui peluche sur une grosse version.

Modifier: il existe une belle liste d'outils pertinents sur Wikipedia ici

Je suis assez content de ReSharper . Non seulement il donne des informations utiles lors du codage (par exemple, des conversions inutiles, des applications en lecture seule, etc.), mais ses fonctions de refactoring sont excellentes pour réorganiser le code très rapidement.

Il ne couvre pas tout, donc FxCop (ou similaire) est un ajout décent à la boîte à outils. Cependant, comme Resharper donne des informations immédiates, le délai d'exécution est vraiment bon. (Je suis conscient que FxCop peut être exécuté à partir de VS, mais ce n'est tout simplement pas la même chose).

Je trouve les analyseurs quelque peu utiles, j’utilise le buildin dans Visual Studio (par exemple, / analyse pour c / c ++ et les règles personnalisées pour .net), parfois j’utilise stylecop et codeitright pour c # principalement pour des directives sur comment les choses devraient être

Je ne pense pas qu’il existe un outil parfait pour tout, qui trouve chaque bogue, mais je pense que les outils aident à trouver certains bogues, qui ne sont pas introuvables, mais croyez-moi, vous perdriez une tonne de temps à les trouver.

Oui, votre qualité de code est CERTAINEMENT meilleure qu'avant, mais je pense également que le débogage manuel est toujours nécessaire. Les analyseurs de source ne sont pas le remède ultime, ils sont cependant un bon médicament. S'il existait un outil, il vous suffirait de l'exécuter, de rechercher n'importe quel type de bogue et de le corriger, ce qui coûterait des millions.

Certains programmeurs que je sais jurent que IBM Rational PurifyPlus est superbe, mais c’est leur avis, je viens de passer 2 à 3 sessions avec cet outil.

Mais souvenez-vous toujours que l’un des principes de base de la programmation des erreurs logiques est le plus difficile à trouver et à corriger, aussi les longues heures de débogage sont-elles inévitables. Un bon analyseur de code, associé à des tests unitaires, peut faire des miracles.

PS. J'ai tendance à produire beaucoup moins d'erreurs en C # qu'en C ++, quelqu'un peut dire que je me trompe, mais bien que j'utilise c ++ plus d'années que c #, je trouve le "code" et je m'en occuperai " L’approche gc de C # est bien plus facile que c ++, en particulier pour les projets que vous vous précipitez pour terminer à la limite de temps / délai, ce que CHAQUE projet est comme ces jours-ci ...

J'utilise StyleCop pour C #. C'est un excellent outil pour conserver un style de code cohérent qui améliore la qualité du code. ReSharper effectue également une analyse de code, mais elle est plutôt simple.

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