Contrôler la qualité du code
La qualité du code est vitale pour qu'un projet soit pérenne sur le moyen et long terme. De nombreux outils existent pour automatiser les contrôles et générer des rapports statistiques, et parfois, générer les patchs correctifs. Cet article présente une liste non exhaustives de ces outils.
Outils en ligne de commande
Bash/Sh/Shell
ShellCheck
https://github.com/koalaman/shellcheck
Contrôle la qualité d'un code shell.
PHP
PHPUnit
Bibliothèque permettant la mise en place de tests unitaires pour le code PHP.
PHP Analyzer
https://github.com/scrutinizer-ci/php-analyzer
L'analyseur de code utilisé par scrutinizer-ci.com.
PHP Mess Detector
Cet outil détecte le code sous-optimal, les paramètres et classes inutilisées et les expressions trop compliquées.
PHP Copy/Paste Detector
https://github.com/sebastianbergmann/phpcpd
Détecte le code copié / collé.
facebook pfff
https://github.com/facebook/pfff/
Outil d'analyse avancée du code libéré par facebook.
PHP_CodeSniffer
http://pear.php.net/package/PHP_CodeSniffer/
Détecte les violations des standards de code.
PHP Coding Standards Fixer
Répare les erreurs de standard de programmation.
PHPLint
http://www.icosaedro.it/phplint/
Analyse le code à la recherche d'erreurs de syntaxe et de documentation.
Behat
Framework de BDD (Behaviour Driven Development) (fr) pour PHP.
HTML
HTML_CodeSniffer
http://squizlabs.github.io/HTML_CodeSniffer/
Contrôle la qualité du code HTML, notamment les règles d'accessibilité.
JavaScript
JSHint
Détecte les problèmes d'un code JavaScript.
JavaScript Code Style
https://github.com/mdevils/node-jscs
Détecte les erreurs de standard de développement d'un code JavaScript.
Closure Linter
https://developers.google.com/closure/utilities/?hl=fr
S'assure qu'un code JavaScript suit les recommandations de Google.
CSS
CSSLint
https://github.com/stubbornella/csslint
Détecte les problèmes d'une feuille de style CSS.
Outils Web
Application Web auto-hébergées
Jenkins
Serveur d'intégration continue open-source.
Services en ligne
Scrutinizer
Ce service s'interface avec GitHub pour proposer des rapports complets sur la qualité du code.
Travis
Plateforme d'intégration continue permettant d'automatiser l'exécution des tests unitaires.
Au hasard du surf
Grunt
Gestionnaire de tâches automatisées en Javascript.
Grunt-PHP
https://github.com/sindresorhus/grunt-php
Plugin PHP pour Grunt.
Remerciements
- Merci aux réponses à Is there a static code analyzer [like Lint] for PHP files? (en).
- Merci à Benjamin Lévêque (fr) pour Qualité du code: PHPCS (fr).