Cette année ce sont 3 membres de Liksi qui ont eu l’occasion de participer à l’événement français incontournable pour les développeurs passionnés de nouvelles technologies et d’innovation : le Devoxx Paris.
Près de 4500 visiteurs par jour ont pu assister aux 230 conférences programmées lors de cette édition. Dans cet article, Thomas, Mathieu et Antoine vous partagent leurs recommandations pour cette édition 2024.
Mercredi
High-Speed DDD (revisited)
Dans cette conférence, Thomas Pierrain aborde la notion de dette métier engendrée et explique qu’elle est créée presque automatiquement dans un contexte de développement logiciel soutenu.
Il explique notamment qu’elle peut se créer lorsqu’un concept métier déjà implémenté est “tordu” et réutilisé pour implémenter rapidement une nouvelle fonctionnalité. Avoir recours à une telle pratique peut être souhaitable dans un premier temps afin d’optimiser le time to market.
Bien entendu, cet état de fait ne doit pas perdurer dans le temps au risque de complexifier grandement le code et son maintien.
Il est donc nécessaire de sensibiliser, convaincre le PM et l’équipe dirigeante efficacement de la nécessité de réduire cette dette. Il expose d’ailleurs une approche pour permettre une communication efficace dans cet article
Il présente également 3 Patterns pour permettre d’adresser techniquement de la dette technique :
- Le contexte de support caché : ce pattern consiste à rajouter un nouveau contexte (au sens DDD) afin d’encapsuler proprement notre nouveau code. On peut créer un ACL qui fera le mapping entre le modèle du legacy et le nouveau modèle afin d’éviter de le “polluer”. La notion “caché” indique que l’on ne souhaite pas rendre ce concept métier visible de l’utilisateur.
- L’ACL ombilical : ce pattern permet de protéger un contexte existant d’un autre en cours de développement et qui est potentiellement encore très mouvant. Il consiste à réaliser un ACL qui enrichit les données du modèle existant avec celles du nouveau contexte à la demande.
- L’extraction de modèles d’écriture : ce pattern sert à faciliter l’extraction de module métier dans le code existant.
La présentation de ces patterns se fait en se basant sur des problématiques concrètes rencontrées qui permettent de bien les appréhender.
Cette conférence parle donc de technique en évoquant des concepts d’architecture, de DDD, de gestion de dette tout en prenant en compte les problématiques de product management et d’organisation.
Bootiful Spring Boot 3.3
La conférence habituelle de Josh Long pour présenter les nouveautés SpringBoot.
Si vous avez déjà vu celle de l’année dernière, vous allez sûrement avoir un petit air de déjà vu car il présente également des sujets Spring Boot 3 dont il avait déjà parlé. Mais son aisance orale, son humour et sa capacité à faire le show rend toujours ses conférences très plaisantes à suivre.
Le Devoxx proposait également un format “Meet with an OSS project” où l’on pouvait échanger librement avec des équipes diverses et variées (Spring Boot, Quarkus, Immutable.js, Langchain4j…). Nous avons donc eu la chance de passer 1h30 en la compagnie de Josh Long et de Daniel Garnier-Moiroux pour parler de Spring Boot et de pleins de sujets connexes (nous avons par exemple pu poser des questions autour de Kotlin et de HATEOAS). Cela a été clairement un des moments les plus forts de nos 3 jours.
Crafting your own RAG system: Leveraging 30+ LLMs for enhanced performance
Dans cette conférence en anglais, Stephan Janssen expose clairement les différentes problématiques qui se posent aux développeurs lorsqu’ils veulent réaliser une application permettant d’interagir avec un LLM :
- Comment pouvoir nettoyer les entrées à venir des utilisateurs ?
- Quel est le LLM le plus pertinent actuellement pour notre besoin ?
- Quelle base vectorielle choisir lorsqu’on décide mettre en place un RAG ?
- …
Le point fort de cette conférence c’est que Stephan Janssen a pu illustrer ces problématiques à l’aide d’un outil opensource qu’il a lui même développé.
Il permet de tester facilement notre système avec une multitude de configurations différentes (et notamment énormément de LLM) afin de trouver la configuration la plus pertinente à l’instant T.
La limite de cette démarche est que cette vision établie à l’instant T ne sera probablement plus vraie à l’instant T+1 (les LLMs évoluent : ils peuvent se mettre à avoir plus d’hallucinations, un nouveau modèle peut arriver plus pertinent…).
Pour avoir échangé avec Stephan après la conférence, nous étions d’accord sur le fait que cette problématique est un vrai frein au recours d’un LLM dans un produit en production. Il serait néanmoins dommage de se priver de leur puissance et les cas d’usage intéressants pourraient être plus d’y avoir recours dans le cadre d’outils supervisés permettant de se simplifier la vie/de gagner du temps.
Cette conférence est donc plus à destination des développeurs ayant déjà des bases en LLM.
Jeudi
L’architecture micro frontend : comment transformer son site web en puzzle géant collaboratif
Maxime Ribera et Ludovic Lagatie de Leroy Merlin, nous présentent ici l’architecture micro-frontend du site e-commerce Leroy Merlin. L’idée de cette architecture est de découper l’application frontend en plusieurs afin de disposer de la flexibilité et de l’autonomie de chacun des composants. Les conférenciers nous exposent donc leur vision avec ses choix et concepts assumés :
- Pas de limitation sur les choix de technos, avec un gros point fort pour Svelte
- Un composant agrégateur de contenu qui orchestre et valide la performance de chacun des composants
Et en bonus, on finit par une démo live… sans effet Bonaldi !
Vendredi
Password-less apps: implementing WebAuthN
Dans cette conférence, Daniel Garnier-Moiroux & Josh Long nous déroulent la mise en place d’une authentification WebAuthN sur une application Java Spring.
Mais qu’est ce que WebAuthN ? C’est déjà un standard du World Wide Web Consortium (W3C) : https://www.w3.org/TR/webauthn/. En deux mots, ce standard permet l’authentification à des applications sans utiliser de mot de passe. Qui dit pas de mot de passe ne dit pas absence de sécurité ! Au contraire, WebAuthN repose sur un échange de clés asymétriques entre l’utilisateur et les applications.
Ici, Daniel Garnier-Moiroux, mets en place une authentification via appareils physiques : Yubikey, Smartphone (IOS). Et tout cela, boosté par Spring Security.
Bref, si vous cherchez quelque chose de clair, progressif et concret, je vous recommande chaudement cette conférence !
Le cauchemar des attaquants : une infrastructure sans secret
Thibault Lengagne nous prend par la main dans cette conférence orientée sécurité pour nous expliquer en quoi notre utilisation des mots de passe est un véritable problème au sein de nos infras. Il découpe ces secrets en trois grandes familles : les secrets orientés humain (développeurs), les secrets de CI/CD, et les workloads (mécanisme de rotation de mots de passe).
Son constat est simple : on retrouve encore énormément de mots de passe sur des repositories git, ou encore des secrets partagés par tous les microservices et qui donc ne permettent pas d’identifier d’où provient l’exploitation d’une faille. Pour solutionner ce problème, Thibault nous propose plusieurs solutions toutes basées sur l’idée que la perte d’un secret ne devrait pas être un problème : ils doivent avoir une durée de vie très courte qui empêche un attaquant de l’exploiter en cas de fuite.
Cette conférence est très inspirante bien que la mise en place de ces grands principes soit de notre point de vue compliquée à mettre en place dans une architecture fournie.
Conclusion
Participer au Devoxx, ou à toute autre évènement de ce type, c’est la garantie de revenir avec des idées et des envies plein sa valise.
Nous avons notamment creusé et expérimenté plusieurs sujets depuis notre retour : Spring Modulith, mettre en place et tester opentelemetry, migrer des projets sur GraalVM, refactoriser un projet en architecture hexagonal…
Cette participation a donc été grandement enrichissante. Elle nous permet d’améliorer nos interventions sur nos missions et d’alimenter l’animation interne au sein de Liksi !
Toutes les vidéos sont d’ores et déjà disponibles sur : https://www.youtube.com/@DevoxxFRvideos/playlists