• 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

Voir la vidéo

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