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

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :