La parole est aux speakers : Guillaume Loulier
Jusqu’au Forum PHP 2021, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !
La conférence
N'ayez pas peur de refactoriserRefactoriser est une composante majeure de notre travail quotidien, et ce, même si nous faisons souvent abstraction de cette partie car nous pensons qu'elle est difficile, coûteuse et au final, peu impactante / importante. Malheureusement, cette approche mène souvent à des problèmes tardifs quand une librairie évolue, qu'une API est dépréciée ou que la CI échoue. Dans ce talk, nous verrons comment intégrer toute une série d'outil dans notre travail quotidien et notre CI afin d'améliorer nos applications et se préparer à toute évolution, nous verrons aussi comment configurer ces outils pour obtenir des retours rapides et intégrer ces derniers via de nouvelles fonctionnalités ou correctifs. Via une panoplie contenant Rector, Psalm, PHPStan, Infection et bien d'autres, nous avons enfin ce qu'il faut pour délivrer de la valeur plus souvent, de manière plus sécurisée et sans compromettre les performances ainsi que la qualité. Il est enfin temps d'arrêter d'avoir peur de refactoriser, d'apprécier ces petits moments d'amélioration et de revenir enfin à la livraison de valeur sans craintes. |
Grace Hopper / Orly 21/10/2021 09:30-10:10 |
Dans une équipe il est souvent plus facile de modifier du code qu’on a soi-même écrit. Que conseilles-tu pour limiter cela et que tout le monde soit à l’aise sur toute la base de code ?
L’un des points les plus importants à mon sens est que chacun soit au courant de ce qui est validé / poussé sur les branches principales, un(e) développeur(euse) ne doit pas découvrir un bout de code au moment du refactoring, pour cela, le pair-programming, les reviews de code voir même des « sprint review » portés sur le code doivent être partie intégrante du processus de développement.
On peut aussi prévoir des sessions de montées en compétences après le sprint afin de mettre tout le monde au fait de ce qui a été fait, de ce que cela apporte et des évolutions à venir (afin que chacun(e) puisse explorer le code).
J’ajoute aussi que le PO doit aussi savoir ce qui a été validé, le refactoring étant souvent amené par un ticket dédié, comprendre le code impacté et les modifications qui peuvent être amenées permet d’accélérer la réalisation de ce dernier et avec le temps, de simplifier le processus.
Quels outils utilises-tu pour t’aider à refactoriser ?
Cela peut sembler surprenant mais l’un des outils qui m’a le plus aidé est probablement Infection, rien de tel que de devoir se plonger dans les tests pour comprendre le code et saisir des subtilités.
De plus, Infection aide aussi à supprimer du code en fonction des mutants qui n’auraient pas été couverts et qui, après coup, seraient inutiles.
Couplé avec des outils comme Psalm ou PHPStan, on peut rapidement supprimer des centaines de lignes qui n’apportent plus rien au code voir qui introduisent des bugs ou des soucis de performances (point plus qu’important).
Quel a été ton plus grand défi « refactoring » ?
Difficile d’en sortir un car chaque période de refactoring est un défi, je dirais que l’un de ceux qui m’a le plus marqué est un refactoring récent sur un projet client qui consistait à renommer des méthodes, ce projet n’avait pas de couverture sur le refactoring et peu de couverture sur les tests (ce qui bien souvent est signe d’un manque de temps pour les écrire) et sans m’en rendre compte, certaines modifications ont rendu indisponible un système de panier (ce qui en production, coûte … beaucoup de temps et d’énergie à corriger). Suite à cet incident, on a pris le temps de revenir sur ce qui n’avait pas marché et de mettre les outils adaptés (PHPStan notamment) afin que chaque modification qui ne serait pas répercutée remonte comme une erreur et bloque la CI.
Une conférence présentée par
Guillaume LOULIER |
Rien que je ne pourrais dire via cette bio ne compte vraiment, les actes prévalant sur les paroles. |
Autres interviews
- 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
- La parole est aux speakers : Maxime Huran
- La parole est aux speakers : Vincent Laurier
- La parole est aux speakers : Ivan Enderlin
- La parole est aux speakers : Lætitia Avrot
- La parole est aux speakers : Gabriel Pillet
- La parole est aux speakers : Baptiste Langlade