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

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 :