« Développer en Java/Analyse statique de code » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Tognopop (discussion | contributions)
Ligne 4 : Ligne 4 :


; Pratiques à risques : sauts dans le code (instructions <code>break</code> ou <code>continue</code> dans les boucles)
; Pratiques à risques : sauts dans le code (instructions <code>break</code> ou <code>continue</code> dans les boucles)
; Code de mauvaise qualité : redondances (code copier-collé), code complexe (méthode avec une [[w:Nombre cyclomatique|complexité cyclomatique]] trop élevée)
; Code de mauvaise qualité : redondances (code copié-collé), code complexe (méthode avec une [[w:Nombre cyclomatique|complexité cyclomatique]] trop élevée)
; Code suspect : méthodes privées jamais appelées, variables lues avant d'être initialisées, variables jamais lues
; Code suspect : méthodes privées jamais appelées, variables lues avant d'être initialisées, variables jamais lues
; Violation de conventions : conventions pour les noms des accesseurs et modificateurs, conventions de nommage de attributs de classe, méthodes trop longues ou avec trop de paramètres, méthodes non-documentées (Javadoc)
; Violation de conventions : conventions pour les noms des accesseurs et modificateurs, conventions de nommage de attributs de classe, méthodes trop longues ou avec trop de paramètres, méthodes non-documentées (Javadoc)

Version du 27 avril 2011 à 14:57

L'analyse statique de code permet, sans avoir à compiler ou exécuter le code, de détecter des erreurs, du code suspect ou des pratiques à risques. Certains compilateurs détectent ce genre d'éléments et peuvent avertir le développeur la développeur via un message d'erreur. Certains outils sont spécialisés dans l'analyse de code et peuvent rapporter aux développeurs les problèmes rencontrés.

Types de problèmes détectés

Pratiques à risques
sauts dans le code (instructions break ou continue dans les boucles)
Code de mauvaise qualité
redondances (code copié-collé), code complexe (méthode avec une complexité cyclomatique trop élevée)
Code suspect
méthodes privées jamais appelées, variables lues avant d'être initialisées, variables jamais lues
Violation de conventions
conventions pour les noms des accesseurs et modificateurs, conventions de nommage de attributs de classe, méthodes trop longues ou avec trop de paramètres, méthodes non-documentées (Javadoc)

Quelques outils

Si vous utilisez un environnement de développement, celui-ci doit déjà vous donner quelques informations sous forme d'avertissement. La plupart d'entre eux peuvent être utiliser en ligne de commande ou être intégré à votre environnement de développement.

Vous trouverez de tels outils pour de nombreux langages dans les articles List of tools for static code analysis et Automated code review.

Checkstyle

Checkstyle permet d'assurer que du code Java respecte bien des conventions. Vous pourrez trouver sur le site officiel une liste des nombreuses règles que Checkstyle sait vérifier.

L'ensemble des conventions à respecter sont indiquées dans un fichier XML. Vous pouvez l'adapter pour inhiber des règles que vous trouvez trop contraignantes. L'application est livrée notamment avec un fichier représentant les conventions de Sun, largement adoptées.

PMD

PMD détecte le code suspect et les mauvaises pratiques :

  • Blocs try/catch/finally, if/else vides
  • Code mort
  • Variables locales, paramètres et méthodes privées jamais utilisées
  • Expressions trop complexes
  • Code sous-optimale, mauvaises utilisation de utilisation de String/StringBuffer
  • Méthodes avec complexité cyclomatique trop grande
  • Code dupliqué

FindBugs™

FindBugs permet également d'auditer l'application et de détecter des problèmes potentiels parmi quelques dizaines de problèmes connus. Ces détections concernent aussi bien des mauvaises pratiques que la correction du code, la correction dans un contexte concurrentiel, l'internationalisation, les failles de sécurités, les performances ou les pratiques risquées.