SensioLabs Insight et Scrutinizer : améliorons la qualité !

Les outils permettant d’analyser le code source d’une application Web existent depuis plusieurs années. Pour PHP, je pense par exemple à PDepend, PHP CS Fixer, PHP Code Sniffer, PHP Mess Detector. Je vous propose de détailler les différents utilitaires existants en ligne de commande et vous permettant d’améliorer la qualité de votre code. Nous verrons ensuite les avantages qu’apportent SensioLabs Insight et Scrutinizer dans le processus d’amélioration de la qualité du code.

Outils en ligne de commande

  • PDepend permet d’obtenir de nombreuses statistiques sur le code source parmi lesquels la complexité cyclomatique (qui analyse le nombre de chemins possibles lors de l’exécution d’une fonction par exemple). Une complexité élevée rendra d’autant plus difficile la maintenance du code.
  • CS Fixer est un petit utilitaire qui nous vient de Fabien Potentier (le grand manitou à l’origine du Symfony2 framework). Ce petit utilitaire permet d’analyser un code source. Il vous aide à corriger la plupart des problème lorsque vous cherchez à ce que votre code soit conforme aux normes PSR-1 et PSR-2. Je vous invite à suivre les liens pour consulter ces deux guides (traduits en français).
  • Code Sniffer est un très vieux projet qui poursuit plus ou moins les mêmes objectifs que CS Fixer à savoir, le respect des conventions et des standards pour l’écriture de code source.
  • Mess Detector permet de détecter le « bazar » dans votre code source et notamment les expressions trop compliquées ou encore les paramètres, méthodes et propriétés inutilisées.
  • Copy Paste Detector permet de scanner votre code à la recherche du code dupliqué. En effet, un code dupliqué sera plus difficile à maintenir puisque les éventuelles corrections/évolutions sur ce dernier devront être effectuées à différents endroits.

Le problème de ces différents outils

À priori, ces différents outils sont donc très intéressants. :smirk: Le problème, cependant, c’est que lancer les analyses de chacun de ces utilitaires prend du temps. Bien souvent, on se retrouve donc à ne pas les utiliser. On préfère en effet avancer davantage dans le développement du produit lui même plutôt que sur l’assurance qualité. D’autre part, le côté « console noir & blanc » n’est pas très user friendly …

Solution ? Des outils en mode SaaS pour présenter tout ça !

Des sociétés ont elles même rencontré ces problèmes. Elles on donc décidé de développer des outils qui pourraient formater et présenter correctement les informations qui nous intéressent.

SensioLabs Insight

La page d'accueil de SensioLabs Insight

La page d’accueil de SensioLabs Insight

SensioLabs Insight passe en revue un certain nombre de points. Ils sont triés selon plusieurs niveaux de sévérité Info, Warning, Critical. Les différentes erreurs présentes définissent ensuite la médaille attribuée au code (Platinium, Gold, Silver ou Bronze).

Avec ce type d’analyse et le système des médailles, on se prend au jeu. L’amélioration de la qualité du code devient plus amusante ! On a envie de viser toujours plus haut 😉

Scrutinizer CI

Le tableau de bord du projet Opencomp sur Scrutinizer-CI

Le tableau de bord du projet Opencomp sur Scrutinizer-CI

Scrutinizer CI nous amène enfin une alternative crédible à Code climate (uniquement réservé aux développeurs Javascript et Ruby) pour les projets en PHP. Cet outil est gratuit pour les projets open source. Il utilise les métriques des utilitaires en ligne de commande cités plus haut. Une note globale est ensuite attribuée en fonction de la qualité de votre code.

Chaque classe et chaque fonction sont notées sur une échelle de A à F (A signifiant le meilleur et F le pire). Le site vous indique donc les « pires » classes et les « pires » fonctions en fonction des notes les plus inférieures. Cela vous permet de savoir sur quelles portions de code vous devez en priorité vous concentrer pour améliorer la qualité.

J’espère que ce petit tour d’horizon des outils permettant d’améliorer la qualité de code vous aura plu. Si vous avez d’autres utilitaires à partager, n’hésitez pas à les poster en commentaires 😉

À la prochaine :kissing_heart:

A propos Jean Traullé

Passionné par l'informatique et les nouvelles technos, miagiste, papa de opencomp.fr, #sysadm, #ProxmoxVE, #Docker, #TYPO3, #CakePHP enthousiaste 😊
Ce contenu a été publié dans Non classé, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

Une réponse à SensioLabs Insight et Scrutinizer : améliorons la qualité !

  1. Ping : Codacy et Code Climate, la revue de code automatisée et qualité !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *