Notre retour (backend) sur Devoxx 2024

Damien Lucas - May 23 - - Dev Community

Devoxx 2024 nous a offert une pléthore de conférences sur Java et le backend en général cette année. Faire un choix parmi tous ces talks n'a pas été facile, mais voici celles qui ont retenu notre préférence.

Model Mitosis : ne plus se tromper entre les microservices et le monolithe

Les habitués des présentations de Julien Topçu ne seront pas déçus par ce nouveau talk. Accompagné de son collègue Josian Chevalier, les deux intervenants se glissent dans la peau d'un duo développeur/architecte, le tout dans l'univers du Mandalorian.

À travers un exemple concret d'implémentation de fonctionnalités, les deux compères nous expliquent comment refactorer un monolithe de manière itérative tout en s'inspirant de la mitose cellulaire en biologie.

Le va-et-vient incessant du développeur qui a les mains dans le cambouis et la vision très macro de l'architecte peut nous rappeler des situations déjà vécues. Le tout saupoudré d'humour et d'idées originales (comme les refacto de Chat3PO), cette présentation est de loin la plus divertissante et enrichissante de cette édition devoxx 2024.

Replay sur Youtube.

Nous sommes tous rassemblés - We are all to gather

Après un très court rappelle sur l'api java.util.Stream Rémi Forax nous présente le nouveau venu (java 22 preview) : les gatherers. Très concrètement, ceux-ci permettent d'implémenter n'importe quelle opération intermédiaire sur un stream. On pourra donc évidemment réimplémenter toutes les opérations existantes, comme map, filter ou takeWhile, mais aussi laisser libre cours à notre imagination.

Que ce soit pour un débutant, ou un développeur Java confirmé, cette conférence est un must en terme de pédagogie et nous permet de comprendre, l'intérêt et l'utilisation de cette nouvelle API, ainsi que de rappeler quelques petits secrets cachés de l'existant.

Replay sur Youtube.

Bootiful Spring Boot 3.3

Josh Long commence sa conférence en faisant un bref rappel de Spring à travers un site inspiré de l'univers de Mario : Histoire de Spring.

Ensuite, Josh se rend sur Spring Initializr, ajoute plusieurs dépendances (GraalVM, Spring Web, Spring Data Jdbc, etc.) et se lance dans une démonstration en direct.

Après avoir brièvement présenté les dernières nouveautés de Java (records, sealed types, smart switch expressions et pattern matching), il nous entraîne dans l'implémentation d'un générateur d'histoires basé sur Spring OpenAI.

Il enchaîne avec une démonstration des Virtual Threads implémentés dans Spring (il suffit simplement d'ajouter la propriété spring.threads.virtual.enabled=true pour en bénéficier).

Il termine sa démonstration en direct par une compilation native du projet qu'il vient de développer sous nos yeux.

Vous avez peut-être déjà vu cette présentation qu'il donne depuis l'arrivée de Spring Boot 3, mais elle a le mérite d'être mise à jour avec les nouveautés de Spring et Java. Une présentation très rafraîchissante avec beaucoup d'humour ! On passe un bon moment.

Replay sur Youtube.

Sous le capot d'une application JVM - Java Flight Recorder / Java Mission Control

Guillaume Darmont commence sa présentation en expliquant ce que sont les outils Java Flight Recorder (JFR) et Java Mission Control (JMC). On peut les comparer respectivement à l'enregistrement d'une boîte noire d'un avion et au logiciel permettant d'exploiter toutes les données de cette boîte noire.

Ensuite, il présente l'application démo qu'il a conçue pour l'occasion : une application permettant de calculer le hash d'un ensemble de fichiers.

De manière itérative, il nous montre comment manipuler JFR et JMC pour trouver et corriger les problèmes de performance d'une application Java.

En prime, il nous explique comment il a découvert un problème de performance présent dans le JDK depuis de nombreuses années en préparant sa présentation. La prochaine version de la JDK intégrera donc son correctif.

Replay sur Youtube.

Mot de la fin

Retrouvez notre série d'articles sur Devoxx :

  1. Intro
  2. Frontend
  3. Data/IA
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .