Outils pour la qualité logicielle en PHP

Cet article est une suite logique de l’article « Culture pour la qualité logicielle PHP », lequel vous a présenté les différents aspects à appréhender chaque jour afin d’avoir une culture de conception de produits de qualité. Aujourd’hui nous  verrons les outils  les plus utilisés à notre disposition afin de mettre en pratique ces aspects, nous n’expliquerons pas en détails l’installation, ni l’utilisation de ces outils mais nous vous les présenterons de manière globale afin de percevoir leurs importance dans la qualité logicielle. Nous vous présentons une liste, non exhaustive, des outils ayant des versions open source.

  • Outils de gestion de projet

Quelle que soit la taille de l’équipe projet, avoir un outil de gestion est bien bénéfique afin de ne pas être surpris à la dernière minute sur l’état d’avancement du projet, anticipation étant le maître mots de ces outils ci-dessous :

Outils Offre Présentation
IceScrum Gratuit / Payant iceScrum :

- est un logiciel de gestion de projet basé sur les méthodes agiles ;

- est utilisé par de entreprises comme EDF, Orange ;

- permet d’avoir une vision globale du projet et augmenter la productivité.

Trello Gratuit Trello est un outil  en vogue qui vous permet de gérer et d’organiser votre projet  de façon collaborative au travers de tableaux de bord, …
Teamweek Gratuit/

Payant

Teamweek est un outil simple et pratique de  planification de projets en ligne avec un calendrier de l'équipe.

 

  • Environnement PHP moderne

Déployer, mettre à jour des librairies dans votre application sans faire des copier-coller de dossier, ni se préoccuper des  régressions multiples est un gain de temps énorme de nos jours. Vous trouverez ci-dessous des outils qui vous permettent de résoudre ces problèmes.

Outils Présentation
Composer Composer est un gestionnaire de dépendances open source, Il permet d'installer  et mettre à jour des bibliothèques php au sein d’un projet.
Bower Bower, outil en vogue, est un gestionnaire de dépendance open source front end (jquery, twitter bootstrap, …) qui permet de mettre à jour facilement toute ces dépendances JavaScript et css.
Docker Docker permet d’automatiser les  déploiements d’environnement sous forme de conteneur qu’on pourra ensuite lancer sur un serveur Linux, finis les problèmes de gestions de configuration entres les environnements (vous ne vous poserez plus la question "Mais pourquoi ça ne marche pas en recette mais ça tourne bien en développement ?"). Avec Docker vous pourrez mettre en place facilement de l’Intégration continue, déploiement continu.
Vagrant Vagrant  est un outil qui permet la création et la configuration de machines virtuelles  moins lourdes et portables en encapsulant le logiciel de virtualisation via un fichier de configuration simple afin d’avoir à sa disposition des machines pour tous les environnements projet.
Grunt Grunt est un outil génial qui permet d’automatiser toutes les tâches répétitives comme minification , compilation, valider des fichiers, tests unitaires en JavaScript.
Gulp Gulp est un outil qui permet d’automatiser les tâches récurrentes mais plus performant, plus simple et avec plus de possibilités. Par exemple avec gulp, vous pouvez créer des générateurs de sites web.
  • Choix de l’architecture logicielle

Le choix de l’architecture est primordial au début du projet car cela dépend des objectifs et de l’envergure du projet.  Aujourd’hui la majeure partie des Frameworks modernes respectent toutes les mêmes philosophies. Vous pouvez donc opter pour des Frameworks  développés par vous à partir de zéro ou vous baser sur quelques Frameworks  et micro-Frameworks PHP dont les plus populaires vous sont présentés ci-dessous.

Outils
Symfony  est un framework  MVC Open source web très complet crée par la société sensioLabs permettant de faciliter et d’accélérer la réalisation des applications web et site internet  sécurisée est actuellement le plus en vogue : version 3.1. Niveau d’apprentissage élevé
Zend Framework, est un framework  MVC Open source web développé par la société zend : version 2.5, perds de sa popularité mais regorge de bons concepts. Niveau d’apprentissage moins élevé
Cake PHP , est un framework  MVC Open source web développé par Cake Software Foundation. Il est simple à prendre en main, permet de faciliter et de simplifier les tâches classiques du développement web :  version 3.2
Slim  est un de micro  Framework PHP qui permet d’écrire rapidement des applications Web simples et puissantes et API version 3.4.2 est développé en autre par  Rob Allen l’un des contributeurs de zend Framework
Silex est un micro Framework développé par Sensiolabs actuellement à sa version 2. Il est basé sur le framework Symfony

Gestionnaire de version

Quelle que soit la taille de l’équipe, l’historisation du code source et le suivi des modifications effectuées sont importantes car elles permettent de suivre la vie du projet, finis les copies de dossiers du code source sur les serveurs chaque soir. Les gestionnaires les plus utilisés sont GIT, SVN

Tests, profilage  et Intégration continue du code

Afin de garantir un produit de qualité et un code qui ne génère pas des régressions à chaque modification, il est important de mettre en place des systèmes de tests avec les outils ci-dessous :

Outils Utilité
PHPUnit Écriture de tests unitaires
Behat Écriture de tests fonctionnels
xDebug Débugger avec  des points d’arrêts, du pas à pas comme en C# fini les var_dump et autres. Permet de voir la pile des méthodes appelées.
xhProf Profiler open source développé par Facebook
Zend Server Z-Ray Outil de débuggage et de tests de performances développé par Zend
Blackfire Développé par SensioLabs, efficace pour les tests de performances.
Jenkins Intégration Continue

Audits et Performance de votre code

Afin d’obtenir un code de qualité, il convient d’analyser le code afin de dénicher tout problème de performance, de duplication de code, de non-respect des conventions de codage PSR, non-respect de la PHP doc et d'y remédier avec les outils suivants :

Outils Utilité
PHP Code Sniffer Vérifier la qualité de son code
PHPCpd Permet de détecter la duplication de code
PHP Mess Detector Permet d’évaluer la qualité d’un code en détectant  entre autres les variables et méthode non utilisés
Sonar Permet d’évaluer  et suivre la qualité d’un code.
PHP Metrics Permet d’avoir des statistiques sur les mesures du code source
APC Alternative PHP Cache permet de créer un système de cache performant
MemCache Mise en cache  performant en base de données de votre application.

 

 

Un commentaire

Laisser un commentaire

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

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.