La parole est aux speakers : Charles Desneuf

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

Transformer une application RAD vers du DDD, pas à pas.

Comment migrer une application peu testée, développée avec des outils RAD, pour intégrer de nombreuses évolutions de règles métiers et par la même occasion la rendre plus compréhensible, en ayant une démarche orientée Domain Driven Design ? La réponse n’est pas si évidente.

On peut bien sûr opter pour une réécriture complète du système mais ce n’est pas sans problème. Comment continuer à délivrer des fonctionnalités ? Comment s’assurer que le nouveau système aura bien le même comportement que l’ancien ? Et surtout, combien de temps cela va t’il prendre ?

Une autre piste est de refactorer le code petit à petit, d’introduire les nouveaux concepts lorsqu’un besoin se fait sentir, sans avoir besoin de bloquer tout autre développement. C’est ce que nous avons choisi de faire pour migrer un backoffice construit autour du bundle Symfony EasyAdmin.

Dans ce retour d’expérience nous verrons comment nous avons commencé à mieux connaître les règles métiers en lisant le code et en animant des Event Storming. Nous parlerons de la manière dont nous avons réussi à créer un filet de sécurité avec des tests en nous laissant guider par le code coverage, ou encore de comment nous avons introduit graduellement les nouveaux concepts métiers à l’aide des interfaces avant de modifier la base de données. Tout au long de la conférence nous présenterons les difficultés rencontrées et ce que nous avons mis en œuvre pour les déjouer.

Katherine Johnson / Roissy
21/10/2021
11:25-12:05

Ton sujet portera sur la migration d’une application vers du DDD : qu’est-ce que tu aimes dans le DDD ?

Mon intérêt pour le DDD a évolué au cours des années. J’y suis arrivé via le côté technique, ce qu’on décrit comme les patterns tactiques – les value objects, aggregates, repositories… On sortait d’un projet qui ne s’était pas bien passé, on avait une usine à gaz très complexe, qui n’était pas hyper satisfaisante fonctionnellement, et une grosse frustration de tout le monde. J’ai cherché quelles pouvaient être les solutions possibles pour éviter de refaire un projet dans les mêmes conditions et je suis tombé sur le DDD. On avait d’un côté des patterns techniques pour améliorer le code et des pistes pour mieux communiquer et comprendre les besoins de nos utilisateurs. Une aubaine. Je me suis un peu obstiné et j’ai réussi à entraîner une partie de l’équipe avec laquelle je travaillais dans cette voie. On s’est rendu compte qu’on se posait beaucoup plus de questions mais que ça payait.

Un peu plus tard, je suis tombé sur l’event sourcing, et j’ai trouvé le concept fascinant. Ça m’a fait me poser beaucoup de questions sur sa mise en application, avec l’introduction possible d’eventual consistency. Ce sont ces interrogations qui m’ont poussées à mieux comprendre la partie stratégique du DDD, qui parle de comment découper un système. Cette histoire de découpage, d’architecture, vient avec des notions d’organisation d’équipes, de stratégie sur les choix d’implémentations que je trouve aussi passionnantes. Donc pour répondre à la question plus directement: j’aime tout dans le DDD, parce que c’est finalement relativement vague, beaucoup de choses en même temps, qui sont hyper complémentaires, et donc permettent de jongler entre beaucoup de concepts.

Tu es déjà intervenu plusieurs fois dans nos conférences en tant que speaker, comment abordes-tu cette édition des retrouvailles ?

Je n’y ai pas particulièrement pensé pour tout dire. On commence à avoir repris l’habitude de croiser du monde donc ça ne sera pas comme une redécouverte.

Je ne sais pas si cela va changer fondamentalement la dynamique de l’événement, à moins que vous ayez prévu des surprises. J’ai juste l’inquiétude qu’on se retrouve à être confinés à nouveau et que l’événement ne puisse pas avoir lieu, ou en ligne, ce qui serait moins marrant.

Tu es récemment devenu indépendant : en quoi cela a t-il changé ta façon de travailler ?

Pour le moment je n’ai pas vraiment de recul, ça ne fait que quelques mois. J’avais commencé à travailler dans une entreprise pendant le premier confinement ce qui fait que j’étais déjà tout le temps en télétravail avec des gens que je ne connaissais pas ou très peu. Je ne sais pas quels éléments je peux attribuer à l’indépendance ou à la situation actuelle. Je suis beaucoup plus chez moi. C’est assez solitaire jusque là parce que mon client actuel est une petite structure avec peu de devs, sur d’autres sujets, et que vu que je fais pas mal de refacto je ne discute pas trop avec les utilisateurs pour le moment. C’est pas tout à fait ce que j’avais envisagé au départ. Un de mes buts en étant indépendant est de pouvoir voir plusieurs équipes pour partager ce que j’ai appris, les aider à grandir là où je peux, et au passage apprendre de ces équipes également. J’aimerais bien essayer d’avoir plusieurs types de missions en parallèle, de l’accompagnement long embarqué dans une équipe, et faire aussi du conseil en archi et de la facilitation de temps à autre. Voir si ça permet de varier les plaisirs. Ce ne sont que des idées pour le moment donc je te propose qu’on en reparle la prochaine fois !

Une conférence présentée par

Charles DESNEUF
Charles DESNEUF
Charles est développeur web depuis plusieurs années et s'intéresse aux manières de réaliser des applications répondant aux besoins des utilisateurs. Il s'est pour cela beaucoup penché sur ce qui permet de délivrer des logiciels de qualité. Au quotidien, il accompagne des équipes dans la mise en place de ces pratiques, de la compréhension du besoin à la création de logiciels maintenables.

Autres interviews