# Devoxx 2024 Retours du Devoxx 2024 (Ronan B., Kevin, David) ## [Instrumenter vos applications natives SpringBoot et Quarkus avec OpenTelemetry](https://www.youtube.com/watch?v=-bc4Twgcl0c&list=PLTbQvx84FrARars1vXos7mlPdvYJmsEoK&index=103) **Speakers:** Sandra Ahlgrimm, Bruno Baptista, Jean Bisutti * OpenTelemetry : simplifie la compréhension et les interactions dans des systèmes distribués, notamment grâce à ces outils comme l'application map et le transaction search * GraalVM native : images natives avec un packaging plus compact et une empreinte mémoire plus faible * Pour SpringBoot : starter intégrant opentelemetry en cours de développement * Pour Quarkus : intégration avec une dépendance azure ## [Jeux en ligne, mais comment ça lag pas ?](https://www.youtube.com/watch?v=RfIxB0QsNB0&list=PLTbQvx84FrARars1vXos7mlPdvYJmsEoK&index=162) **Speaker:** Benoit Arnaud * Approche *server authoritative* : le serveur a le dernier mot sur chacune des actions des joueurs * Clients : envoi des inputs et réception de l'état du jeu par le serveur * Netcode -> ensemble des infos sur les game objects (statiques et dynamiques) * Plusieurs méthodes d'optimisation : formatage des données, client-side prediction, server-reconciliation, handshake, delta-compression, lag compensation, rollback-based netcode ## [Quelle est la place des introverti·e·s dans une équipe agile ?](https://www.youtube.com/watch?v=bKGKwimpl8o) **Speaker:** Anaïs Huet * Introversion/Extraversion -> voir comme un spectre plus qu'un système binaire * Constat : les cérémonies Agile sont conçues pour créer une effervescence au travers de l'équipe -> cadre pas forcément propice à l'expression des personnes introverties * Pistes d'amélioration : donner plus de légitimité aux temps de solitude dans les réunions, repenser les espaces de travail, brainwriting -> chacun note ses idées sur des papiers avant de prendre la parole, donner des éléments de réflexion avant une réunion ## [Nous sommes tous rassemblés - We are all to gather](https://www.youtube.com/watch?v=UASse8a7FzE) **Speaker:** Rémi Forax * Nouvelles API en Java 22 : Gatherer, qui permet de créer des opérations intermédiaires custom * Similitudes avec l'API Stream : source -> opérations intermédiaires -> opération terminale * 4 méthodes à retenir : initializer (créer un état), integrator (exécute l'opération), combiner (combine des gatherer), finisher (termine l'opération en fonction de son état) * 3 axes quand on crée un gatherer : sequentiel vs parallélisable, stateless vs stateful, short-circuit vs greedy ## [Revue de code: on n'est pas venu·e·s là pour souffrir !](https://www.youtube.com/watch?v=KeM1cjKiMr4) **Speaker:** Pauline Rambaud, Anne-Laure de Boissieu * Constat : la revue de code ça fait peur ! Comment éviter les mauvaises interprétations et communiquer plus clairement au sein d'une équipe ? * Bonnes pratiques : linter, template de PR/MR, Definition of Done, Definition of Reviewed * Rendre l'intention plus claire : ajout de label (:question:, :praise:, :nitpick: ...) * Se mettre à la place de la personne qui a produit le code, privilégier l'egoless programming ## [J'ai terminé les 9 Advents of Code : Leçons Apprises](https://www.youtube.com/watch?v=NfkHfDD0aGA&list=PLTbQvx84FrARars1vXos7mlPdvYJmsEoK&index=177) **Speaker:** Teiva Harsanyi * Calendrier de l'Avent avec un problème d'algorithmique par jour : [Advent of Code](https://adventofcode.com/) * Permet de gagner en confiance sur les algos et les structures de données, avec des bénéfices au quotidien * *Big O* -> modèle pour comprendre la scalabilité d'un algo (autant en terme de temps que d'espace mémoire) * Penser à utiliser une structure de données adaptée au problème rencontré * Importance du refactoring et du *behavior-driven dev* et *behavior-driven test* ## [CyberResilienceAct](https://www.youtube.com/watch?v=inND3Q4NQq8&list=PLTbQvx84FrARars1vXos7mlPdvYJmsEoK&index=89) Texte de loi européen sur la sécurité des solutions numériques produites sur le sol européen * Objectifs : marque CE + traçabilité * Complémentaire avec NIS2 => réseaux et systèmes d'informations * CRA => software et software supply chain Logiciels définis selon 3 catégories : Default (90%), Critical "Class I", Critical "Class II"   ## [Faire simple](https://www.youtube.com/watch?v=VPV9tMHaaFE&list=PLTbQvx84FrARars1vXos7mlPdvYJmsEoK&index=129) * simplicité au centre * aller par itérations * ne pas abandonner, persévérer * mesurer, évaluer * design du système simple, complexité au niveau du module OK * qu'est-ce qu'on peut enlever (definition of done ?) ## Hands-on Data oriented programming (Java) Ana-Maria Mihalceanu (@ammbra1508), José Paumard [Lab sur Github](https://github.com/JosePaumard/2024_DevoxxFR-Amber-lab) ## Hands on LangChain4J Maire-Alice Blete, Lize Raes @LizeRaes, Vincent Peres * [Lab sur Github](https://github.com/LizeRaes/lc4j-lab-intro-assignments) * [Solution du lab](https://github.com/LizeRaes/lc4j-lab-intro-solution) 1 token ~ 3 caractères  ## Hands on OpenTelemetry [Lab sur Github](https://github.com/JenSeReal/otel-getting-started)   ## Remarques / questions