Améliorer la qualité de son code


Technique

“De la qualité tu développeras…”

Nous allons vous présenter quelques outils, que vous connaissez peut-être déjà, permettant de s’assurer un code qualitatif qui respecte certains standards. Utiliser ces normes permet à d’autres développeurs travaillant sur un même projet de retrouver rapidement leurs marques et de ne pas être déstabilisés par les syntaxes pouvant différer d’un développeur à l’autre.


Code Sniffer (phpcs)

PHP Code Sniffer permet de vérifier que le code respecte la syntaxe du standard choisi. Il y en a plusieurs, nous pouvons citer notamment PEAR, PSR-1, PSR-2.

Nous avons choisi le standard Symfony2 (https://github.com/opensky/Symfony2-coding-standard) que nous vous conseillons si vous travaillez sur cette techno.

Il est aussi conseillé de configurer votre IDE (PHPStorm :)) pour qu’il utilise lui-même phpcs et qu’il surligne les passages de votre code lorsqu’il comporte des erreurs de syntaxe, c’est quand même bien plus agréable que de l’exécuter par ligne de commande à chaque fois, n’est-ce pas ?

Certes, il faut reconnaitre qu’au début cela peut être agaçant que tout le code soit surligné, mais nous vous assurons que l’on s’y fait rapidement et qu’au final, on y gagne un code bien plus lisible pour les autres, et même pour soi. Indispensable si vous contribuez sur des projets opensource !

 

 

PHP-CS-Fixer

PHP-CS-Fixer est un outil permettant de corriger automatiquement votre code selon les standards que vous avez configuré dans PHP Code Sniffer.

Vous pouvez aussi le configurer dans votre IDE pour que la manipulation soit la plus simple et la plus accessible possible. Hop en un clic vos fichiers sont corrigés simple smile Améliorer la qualité de son code !

 

 

PHP-Depend

Php_Depend est un outil d’analyse de code.

Il calcule 4 métriques différentes :

1/ Ca : Le nombre de classes dépendant des classes d’un package.

2/ Ce : Le nombre de classes dont dépendent les classes d’un package.

3/ I : L’instabilité, définie par le ratio Ce / (Ce + Ca).

4/ A : L’abstraction, définie par le ratio entre le nombre de classes abstraites et le nombre total de classes.

Ces 4 métriques sont utilisées pour générer un grahique qui permet une lecture rapide du niveau d’instabilité et d’abstraction du code considéré.

 

 

PhpCPD – détection redondance de code

Le pire ennemi du développeur a toujours été le copier/coller. C’est un réflexe que malheureusement beaucoup de développeurs ont.

Pensant gagner du temps, cela peut entraîner dans la plupart des cas des conséquences auxquelles on ne s’attend pas forcément :

-> Si le code est buggé, alors on duplique les bugs

-> L’oubli de fixer le bug à tous les endroits où l’on a dupliqué le code

-> Dans bien des cas, il n’est pas adapté à la situation courante

S’installant depuis un channel Pear, PhpCPD permet (même sous Windows) de scanner un répertoire et d’afficher la liste des codes dupliqués. Que souhaiter de plus ?

 

 

PHPmd

PHP Mess Detector (PHPMD) est une librairie permettant d’évaluer la qualité de votre code source.

Il détecte les variables et les méthodes non-utilisées, les noms de variables trop courts ou trop longs, les méthodes trop complexes, etc.

Comme les autres librairies évoquées ci-dessus, PHPMD est également configurable dans votre IDE.

Il évalue notamment le “Cyclomatic Complexity”, un metric qui calcule le nombre de if, for, while, etc. dans votre fonction.Plus il y en a, plus votre fonction sera considérée comme complexe.

PHPMD s’installe grâce à PEAR :

pear channel-discover pear.phpmd.org

pear channel-discover pear.pdepend.org

pear install –alldeps phpmd/PHP_PMD


Conclusion

Ces outils, simples d’utilisation, permettent d’augmenter la qualité du code produit, facilitant ainsi sa maintenance, sa réutilisation et sa diffusion.

Il est donc fortement conseillé aux développeurs d’utiliser ces outils pour leur bien, mais aussi celui des autres.

Et enfin, il est très facile de les intégrer à votre IDE qui ne vas pas hésiter à vous rappeler les erreurs que vous commettez : ça vous évitera plus d’un refactoring au moment de commit 😉


Enjoy now  simple smile Améliorer la qualité de son code

Laisser un commentaire