La parole est aux speakers : Guillaume Loulier

Publié le

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 refactoriser

Refactoriser 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
Guillaume LOULIER
Rien que je ne pourrais dire via cette bio ne compte vraiment, les actes prévalant sur les paroles.

Autres interviews