[:fr]La parole est aux speakers : Jean-François Lépine[:]
[:fr]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: Pauline Vos
- La parole est aux speakers: Vincent Lepot
- La parole est aux speakers: Martin Supiot
- La parole est aux speakers : Nicolas Grekas
- La parole est aux speakers: Pascal Martin
- La parole est aux speakers : Derick Rethans
- La parole est aux speakers : Gina Banyard
- La parole est aux speakers : Loïc Frémont
- La parole est aux speakers : Julien Joye
- La parole est aux speakers : Alexandre Morgaut
- La parole est aux speakers : Audrey Brouard
- La parole est aux speakers : Vincent Bontems
- La parole est aux speakers : Grégoire Pineau
- La parole est aux speakers : Fabien Paitry
- La parole est aux speakers : Enrique Nerea
- La parole est aux speakers : Antoine Bluchet
- La parole est aux speakers : Kauffmann Thierry
- La parole est aux speakers : Dolbeau Olivier
- La parole est aux speakers : Charles FOL
- La parole est aux speakers : Noback Matthias
- La parole est aux speakers : Alexandre Daubois
- La parole est aux speakers : Benoit Viguier
- La parole est aux speakers : Agé Marion
- La parole est aux speakers : IATSUN Iana
- La parole est aux speakers : Vizinho Adriana
- La parole est aux speakers : EYMONOT Felix
- La parole est aux speakers : Veyron Albane
- La parole est aux speakers : Coquard Cyrille
- La parole est aux speakers : Smaïne Milianni
- La parole est aux speakers : Ambroise Rougier
- La parole est aux speakers : Lætitia Avrot
- La parole est aux speakers : Yann Jacquot et Alexis Stefanski
- La parole est aux speakers : Frederic Bouchery
- La parole est aux speakers : François Zaninotto
- La parole est aux speakers : Robin Chalas
- La parole est aux speakers : Rachid Hammaoui
- La parole est aux speakers : Valmont Pehaut-Pietri
- La parole est aux speakers : Tiphaine Perra et Anthony Demangel
- La parole est aux speakers : Florian Bogey
- La parole est aux speakers : Valentin Silvestre
- La parole est aux speakers : James Hemery
- La parole est aux speakers : Arnaud LAHAXE
- La parole est aux speakers : Kevin BALICOT
- La parole est aux speakers : Kévin DUNGLAS
- La parole est aux speakers : Arnaud Langlade
- La parole est aux speakers : Julien REDEL
- La parole est aux speakers : Alexandre Daubois
- La parole est aux speakers : Pascal Chevrel
- La parole est aux speakers : Iana Iatsun
- La parole est aux speakers : Emilien Bouard