• Développement
  • Conférence
  • 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

    Rust : pourquoi s'y intéresser, au-delà de la sûreté mémoire

    "Rust, c'est un C++ sans bugs mémoire." C'est le pitch qu'on entend partout. C'est aussi celui qui nous empêche de voir ce que Rust change vraiment. À l'AMIAD (Agence Ministérielle pour l'Intelligence Artificielle de Défense), on développe en Python — embarqué, backend, services métier. Quand on a cherché une alternative pour nos systèmes embarqués, Rust s'est imposé naturellement. Ce qu'on n'avait pas prévu, c'est qu'on finirait par l'adopter pour bien d'autres briques. Pourquoi ? Parce que le design du langage — son système de types, ses traits, son compilateur — apporte des réponses concrètes à des problèmes que la plupart des langages repoussent au runtime : erreurs silencieuses, abstractions coûteuses, couplage rigide, magie implicite. Dans ce talk, on explore comment un compilateur peut devenir votre meilleur allié pour éliminer ces problèmes avant même l'exécution. Aucun prérequis Rust : on part des problèmes, pas de la syntaxe. Vous repartirez avec une vision claire de ce que change un langage qui refuse de reporter à demain ce qu'il peut vérifier aujourd'hui.

    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