- Développement
- Conférence
- Standard
- 55 min
Développer un moteur de règle en 50 minutes, l'AST à la rescousse
Date jeudi
Horaire 12h30 à 13h25
Salle Amphi D
Description
Cette conférence est issue d'une histoire vraie, où j'ai du écrire un moteur de règles qui doit pouvoir modifier le contenu d'un document JSON en utilisant un DSL maison 🍜 exposé par une API REST 😅 Lors de la première tentative, nous étions parti sur l'utilisation du langage Kotlin, à base de KFunction, de KParameters, d'introspection, qui s'est révélée être un enfer. C'est en discutant de mes déboires avec un collègue qu'il m'a dit: "mais en fait c'est un AST ton truc 💡". L'AST, Abstract Syntax Tree est une structure de données permettant de représenter un programme, exactement ce que l'on cherche à accomplir pour notre moteur de règles, mais ça je ne le savais pas ! Le lendemain, il m'envoyait un scratch IDEA de 40 lignes représentant bien mieux le coeur de notre futur moteur que mes innombrables fonctions génériques de haut niveau et mon code impossible à maintenir. C'est pas clair ? Alors venez, on redéveloppe from-scratch le coeur du moteur avec Kotlin en quelques lignes de code, en illustrant le concept de ce fameux AST.
Orateur·ices
Maxime Odye
Je suis un développeur passionné et formateur sur des sujets techniques autour du monde du développement logiciel. Conférencier technique et agile, j'essaye de mêler la technique et l'organisationnel, deux mondes intrinsèquement lié.
Actions rapides
Les sessions futures sur le même thème
- Développement
- Conférence
❌ [ANNULÉ] ❌
Jeudi 14h00 à 14h55 - Amphi D
- Développement
- Tool in action
JBang, un fichier Java pour les gouverner tous ? 💍
Dans le monde Java, nous sommes habitués à initialiser un projet avec de nombreux fichiers et répertoires. A tel point que des CLI ont vu le jour pour nous aider à créer les projets SpringBoot ou Quarkus par exemple. Vient ensuite le choix du "package manager" : Maven ou Gradle ? Et c'est seulement à partir de là que l'on peut commencer à développer puis exécuter son code 😅. Toutes ces étapes fastidieuses expliquent pourquoi, lorsque que l'on a besoin de faire un développement rapide de quelques lignes pour automatiser une action, on préfère d'autres langages à Java : Python par exemple. Et si je vous disais, qu'avec JBang, vous allez pouvoir rester avec votre langage préféré, Java, et développer une classe toute simple (avec des dépendances externes) en quelques secondes ! C'est le pari (spoiler : réussi) de JBang que je vous propose de découvrir durant une session de live coding. A vous les joies du scripting en Java !
Jeudi 15h00 à 15h25 - Amphi B
- Développement
- Tool in action
Développer une file d'opérations asynchrone en Rust pour Thunderbird
L'année dernière, Thunderbird a officiellement annoncé le support natif de Microsoft Exchange, une première en plus de 20 ans pour l'oiseau bleu. Une grosse partie de l'effort qui nous a mené ici s'est centré autour de l'utilisation de Rust. Au fur et à mesure que le projet évoluait d'un prototype vers une fonctionnalité utilisable, nous nous sommes penchés sur un enjeu de taille : améliorer l'organisation et la planification des requêtes. Au cours de ce talk, j'introduirai brièvement l'utilisation de Rust dans Thunderbird, et je présenterai les tenants et les aboutissants de ce mini projet, ses différentes itérations, ainsi que les défis rencontrés en chemin (dont quelques disputes avec le système de typage de Rust).
Jeudi 15h00 à 15h25 - Amphi D