La parole est aux speakers : Jean-François Lépine
Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !
La conférence
Faut-il faire du travail de qualité ?Laissez moi vous raconter l'histoire de Bob et Alice, dont les enjeux sont assez complexes (spoiler : ça sent le vécu) : Deux développeurs (Bob et Alice) doivent estimer le temps de développement d'un site ; Bob pense finir en une semaine ; Alice en 8 semaines. |
Ta conférence est intitulée « Faut-il faire du travail de qualité ? », et tu vas y dépeindre deux visions du développement diamétralement opposées : y a t-il un de ces profils de développeur-e-s que tu rencontre plus souvent ? D’ailleurs, qu’est-ce qui t’a poussé à proposer un tel sujet ?
Je pense que deux visions opposées du web s’affrontent en ce moment.
Pour être caricatural : les « aigris », qui regrettent le temps où télécharger jQuery et FileZilla suffisait pour faire un site; et les « buzz-addicts », qui aiment utiliser toutes les technologies à la mode au fur et à mesure qu’elles sortent.
Je rencontre principalement des développeurs qui rentrent dans la seconde catégorie ; et c’est bien normal, tout le monde aime apprendre de nouvelles choses. Mais je vois également de plus en plus de développeurs qui regrettent la course à la nouveauté, principalement dans l’écosystème JavaScript.
Quand je discute avec les uns et les autres, l’argument de la qualité ressort quasi systématiquement. Il faut « faire du code de qualité ». C’est une sorte de quête du Graal, mais où chacun semble se faire sa propre idée de ce qu’il faut rechercher.
C’est tout cela qui me pousse à proposer cette conférence : partager mon expérience et mes réflexions sur ce sujet, et voir s’il n’existe pas des outils / pratiques pour savoir vers quel chemin une équipe doit se diriger lorsqu’elle construit un projet.
Peux-tu nous présenter ton projet PHPMetrics ?
PhpMetrics est un outil d’analyse statique de code source ; l’idée générale est de demander à un robot de lire votre code source, puis de vous fournir des indicateurs sur la manière dont votre code source est architecturé et composé.
PhpMetrics est né de mon travail quotidien : lorsque l’on fait un audit de code, une des principales difficultés réside dans la capacité à rendre des éléments très techniques accessibles à tous, y compris aux personnes non-techniques (décideurs, chefs de projet…).
Je souhaite permettre à tous, y compris les non-experts, de comprendre la manière dont le code source est construit.
Au début je calculais à la main un certain nombre de métriques, que je reportais dans un classeur Excel pour en faire des graphiques lisibles. C’est un travail rébarbatif, et assez rapidement, l’envie d’automatiser une partie de ce travail m’est venue.
L’analyse statique est très vite devenue pour moi une passion, et je dois avouer que j’ai dévoré pas mal de thèses sur le sujet, thèses que j’essaie au fur et à mesure de retranscrire en algorithmes, et que j’intègre à PhpMetrics. Aujourd’hui, PhpMetrics fournit plus de quarante métriques, et la liste grandit. Il rivalise largement avec les outils similaires des écosystèmes Java, C++ ou .Net…
Un des enjeux de PhpMetrics n’est pas technique, mais ergonomique : comment rendre tous ces chiffres (très barbares!) lisibles. J’expérimente beaucoup, et d3js m’a beaucoup aidé !
Je suis fier de voir qu’aujourd’hui le projet est assez utilisé, et je suis très curieux de voir comment les contributeurs vont le faire évoluer par la suite.
Tu as lancé autre projet sur le Mutatesting. Qu’est-ce donc que cette pratique ?
C’est une sorte de monstre ! Et je crois que la pratique n’est pas prête de se démocratiser dans l’écosystème PHP, c’est peut-être encore un peu trop tôt…
Les tests de mutations permettent d’évaluer la pertinence des tests unitaires. Les tests unitaires testent le code, mais qui teste les tests unitaires ?
C’est le rôle des tests de mutation : cet outil lance vos tests sur du code source légèrement modifié (muté, par exemple en supprimant un « else » ou en remplaçant « == » par « != ») ; si le test unitaire est pertinent, la modification de code devrait le mettre en échec.
C’est une pratique très ancienne, mais qui commence seulement à se démocratiser, car très longue, coûteuse en CPU et avec beaucoup de faux positifs.
L’originalité de MutaTesting est qu’il utilise PhpMetrics pour évaluer les classes dont la probabilité de bugs est élevée, et ne teste que les tests unitaires associés.
MutaTesting est sorti il y a déjà longtemps, mais il reste expérimental. Si la pratique vous intéresse, je ne peux que conseiller d’utiliser humbug qui reste largement plus utilisé.
Une conférence présentée par
![]() Jean-François LÉPINE |
Passionné par la qualité logicielle et l'industrialisation. Créateur de PhpMetrics. |
Autres interviews
- La parole est aux speakers : Thibault Richard
- La parole est aux speakers : Benjamin Rambaud
- La parole est aux speakers : Sarah Haïm-Lubczanski
- La parole est aux speakers : Stéphane Hulard
- La parole est aux speakers : George Banyard
- La parole est aux speakers : Nicolas Grekas
- La parole est aux speakers : Jean-François Lépine
- La parole est aux speakers : Hélène Maître-Marchois et Mathieu Marchois
- La parole est aux speakers : Bastien JAILLOT
- La parole est aux speakers : Kévin Dunglas
- La parole est aux speakers : Mathias Arlaud
- La parole est aux speakers : Amélie Abdallah
- La parole est aux speakers : Anaïs Sparesotto et Hortense Mahon
- La parole est aux speakers : Benoit Viguier
- La parole est aux speakers : Olivier Mansour et Valentin Claras
- La parole est aux speakers : Sebastian Bergmann et Roman Pronskiy
- La parole est aux speakers : Laurent Brunet
- La parole est aux speakers : Pierre Pelisset
- La parole est aux speakers : Loïc Fremont
- La parole est aux speakers : Stéphane Bortzmeyer
- La parole est aux speakers : Tomáš Votruba
- La parole est aux speakers : Pierre Tondereau
- La parole est aux speakers : Louis Pouzin
- La parole est aux speakers : Loïck Piera
- La parole est aux speakers : David Buros
- La parole est aux speakers : Antoine Bluchet
- La parole est aux speakers : Kevin Dunglas
- La parole est aux speakers : Jessica Martel
- La parole est aux speakers : Damien Seguy
- La parole est aux speakers : Arnaud Ligny
- La parole est aux speakers : Mathias Arlaud
- La parole est aux speakers : François Zaninotto
- La parole est aux speakers : Kévin Dunglas
- La parole est aux speakers : Pauline Vos
- La parole est aux speakers : Marion Monnet
- La parole est aux speakers : Nicolas Grekas
- La parole est aux speakers : Louis Pinsard
- La parole est aux speakers : David Negrier
- La parole est aux speakers : Elie Sloïm et Martin Supiot
- La parole est aux speakers : Sofia Lescano
- La parole est aux speakers : Damien Seguy
- La parole est aux speakers : Charles Desneuf
- La parole est aux speakers : Romain Camp
- La parole est aux speakers : Stéphanie Trumtel
- La parole est aux speakers : Mathias Arlaud et Robin Chalas
- La parole est aux speakers : Frédéric Bouchery
- La parole est aux speakers : Anne-Laure Deboissieu et Amélie Defrance
- La parole est aux speakers : Emeric Kasbarian et Jérémy James
- La parole est aux speakers : Benoit Viguier
- La parole est aux speakers : Grégory Planchat