La parole est aux speakers : Grégoire Pineau

Publié le

Jusqu’à l’AFUP Day 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

Lock et Semaphore

Les situations de compétition ("race condition" en Anglais) sont un problème récurrent en informatique. Elles existent à tous les niveaux, depuis le noyau linux, jusqu'a votre application en passant par la base de données.

Elles se caractérisent par un résultat différent selon l'ordre dans lequel agissent les acteurs du système. Une situation de compétition peut survenir dès que plusieurs acteurs tentent d'accéder au même moment à une ressource partagée (fichier, ligne dans une base de données, etc.) et qu'au moins l'un d'entre eux est susceptible de modifier son état.

Des solutions existent depuis très longtemps pour pallier ces problèmes. Symfony a introduit le composant Lock dans sa version 3.4, puis le composant Semaphore dans sa version 5.2.

Cette conférence a pour objectif de vous fournir les bons outils pour éviter toutes race condition, en utilisant le composant Lock ou Semaphore en fonction des situations rencontrées.

Lille
28/05/2021
14:50-15:10

Tu as beaucoup contribué sur le code de Symfony, quelle est la contribution qui t’a le plus marqué ?

De mémoire, il n’y a pas une, mais deux contributions qui m’ont beaucoup marqué.

La première, c’est le composant Workflow. C’était, je pense, ma première grosse contribution en termes de volume de code. À l’époque, je travaillais chez SensioLabs et j’avais eu la chance d’avoir du temps pour réfléchir à la meilleure façon de faire cette nouvelle fonctionnalité. Grâce aux reviewers et à la communauté, nous avons réussi à avoir un design solide qui vieillit très bien. Nous avons pu continuer d’ajouter des nouvelles fonctionnalités sans avoir à changer l’existant. C’est très apprécié des utilisateurs, car ils n’ont pas besoin de mettre à jour leur code quand ils mettent à jour Symfony. Je remercie JoliCode au passage, mon nouvel employeur, de m’accorder du temps pour maintenir ce composant.

La deuxième, c’est l’ajout du «  »form theme » » pour Bootstrap (Twitter Bootstrap à l’époque). La contribution avait été assez difficile, non pas à cause de la difficulté technique, mais à cause de la gestion politique de la pull request. En effet, cette nouvelle fonctionnalité avait attiré énormément de commentateurs. Beaucoup étaient très excités, mais beaucoup étaient farouchement contre. Cependant, ces derniers pensaient qu’ajouter ce support signifiait 1/ fermer la porte aux autres framework CSS ; 2/ que Symfony allait inclure un framework CSS. J’avais dû faire preuve d’énormément de patience et de pédagogie pour expliquer qu’il n’y aurait aucun couplage entre Symfony et Bootstrap.

Travailles-tu en ce moment sur la sortie de futurs composants liés à Symfony ?

Pour le moment, je suis bien occupé sur des projets propriétaires, qui m’épanouissent intellectuellement. Je ressens moins le besoin d’aller m’évader dans des contributions open source.

Tu contribues énormément pour l’Open Source, au moment où nous écrivons cette question, tu as participé à pas moins de 9 projets ! Fais-tu cela sur ton temps libre uniquement, ou as-tu du temps dédié chez JoliCode ?

JoliCode accorde à tous les devs du temps pour contribuer à des projets open source. J’en profite bien évidemment 🙂 Cependant, il m’arrive aussi de contribuer de chez moi, je suis toujours chez moi, COVID oblige, sur mon temps libre. Le temps que j’accorde à l’open source est très variable en fonction de la quantité de travail, et de ma motivation. Quoi qu’il arrive, j’essaie au maximum de garder le nombre d’issues et de pull requests le plus bas possible, pour les projets que je maintiens, pour ne pas me faire déborder.