Devoxx France est la plus grande conférence indépendante autour du développement et de la programmation, en Europe. Cette année encore, Sedona a participé aux 3 jours de conférences qui se sont tenus du 16 au 18 avril. Cette année l’IA était à l’honneur, l’IA est de plus en plus présente que ce soit sur les besoins de nos clients ou bien en assistance de nos développements, il est donc normal que ce sujet ait été le plus discuté cette année.
Nous avons choisi quelques talks que nous souhaitons vous partager pour ce jour 1, on vous raconte ?
Mercredi 16 Avril 2025
L’IA, la tech et les idées reçues – Luc Julia
L’intelligence artificielle (IA) est le sujet du moment, surtout l’IA générative, qui suscite de nombreux débats. Luc Julia nous invite à prendre du recul pour mieux appréhender le sujet qu’est IA. L’intelligence artificielle générale (AGI), capable de remplacer l’humain, est un mythe.
L’IA actuelle est spécialisée et ne raisonne pas comme un humain. Elle doit plutôt être vue comme une boîte à outils, où chaque outil est conçu pour une tâche précise, souvent plus efficace que l’humain dans ce domaine. L’IA générative, qu’on connait depuis quelques années est une évolution du machine learning qui produit du contenu à partir de grandes quantités de données. Facile d’accès grâce à des interfaces simples, elle s’est rapidement démocratisée.
Toutefois, elle ne crée pas réellement : elle génère du contenu en réponse aux instructions des utilisateurs.
La démocratisation des outils utilisant de l’IA générative pose cependant quelques contreparties notamment leur fort impact environnemental, en raison de leur grande consommation d’énergie et d’eau, aussi bien lors de leur développement que de leur utilisation ou bien la question de la propriété intellectuelle, des litiges sont en cours contre des entreprises comme OpenAI pour utilisation non autorisée de contenus protégés.
L’IA générative représente une avancée technologique majeure. Bien qu’elle offre des outils puissants, il est crucial de comprendre ses limites et son impact sur la société et l’environnement. L’avenir de l’IA réside dans son utilisation responsable et spécialisée, tout en gardant à l’esprit les enjeux éthiques et environnementaux.
L’API Gatherer – José Paumard
Dans cette présentation on aborde les Gatherer, une nouvelle API qui s’intègre à l’API Stream de Java.
On verra son fonctionnement, ses caractéristiques et son utilité pour les développeurs Java.
Les Gatherer sont une API indépendante ajoutée à l’API Stream.
Les Streams traitent des éléments d’une source via des opérations intermédiaires, mais nécessitent une opération terminale pour lancer le traitement.
L’API des Gatherer permet de créer ces opérations intermédiaires de manière personnalisée grâce à une interface fonctionnelle dédiée.
- Les Collectors sont utilisés pour des opérations terminales, tandis que les Gatherer se concentrent sur les opérations intermédiaires.
- Les Gatherer permettent de simuler des opérations.
L’API Gatherer comprend :
- Gather, une méthode intermédiaire prenant un Gathereur en paramètre ;
- Gather Factory, une classe pour créer des Gathereurs ;
- Intégrateur, une interface permettant d’intégrer des éléments dans le flux de traitement.
Les Gatherer gèrent un état mutable pour suivre les éléments traités, initialisé par un supplier et combinable pour les traitements parallèles.
Pour optimiser les performances, les intégrateurs peuvent être déclarés « greedy » et les opérations peuvent s’interrompre selon l’état du downstream.
Les Gatherer représentent une avancée significative dans la manipulation des données en Java, offrant aux développeurs la possibilité de créer des opérations intermédiaires personnalisées.
Hibernate et performance : reprenez la main – Lansana DIOMANDE
La conférence traite de l’optimisation des performances d’Hibernate dans un scénario avec une API de gestion de films et d’acteurs.
Face à des lenteurs lors d’imports massifs,
les causes sont analysées : surcharge de requêtes, mauvaise gestion mémoire et méconnaissance du fonctionnement interne d’Hibernate (contexte persistant, transactions, entités).
A travers plusieurs points clés on a pu petit à petit, améliorer les performances de l’application, voici quelques points :
- Batching avec une taille adaptée (10-50) pour limiter le nombre de requêtes.
- Utilisation de séquences pour éviter des requêtes inutiles lors de la génération d’identifiants.
- Sessions stateless, qui suppriment le contexte persistant et réduisent l’empreinte mémoire, mais nécessitent une gestion plus rigoureuse.
- Usage de join fetch.
- Requêtes en mode read-only.
- IN padding pour stabiliser les plans d’exécution.
On a abordé dans cette conférence les diverses pistes à explorer dans le cas de lenteur et ainsi améliorer les performances de son application.
Oauth2 et OpenID sous le capot – Daniel Garnier-Moiroux
La présentation aborde les bases et les bonnes pratiques de sécurité autour des protocoles OAuth 2.0 et OpenID Connect (OIDC), devenus essentiels dans le développement d’applications modernes.
OAuth 2.0 : autorisation sécurisée
OAuth est un protocole qui permet à une application d’accéder à des ressources utilisateur (comme des photos ou des contacts) sans jamais demander son mot de passe.
L’utilisateur s’authentifie auprès d’un serveur d’autorisation (ex. Google), qui délivre un jeton d’accès utilisé par le client pour accéder aux données.
OpenID Connect : authentification basée sur OAuth
OIDC est une extension d’OAuth, ajoutant une couche d’identification.
Elle fournit un ID Token contenant des informations sur l’utilisateur (nom, email, identifiant), permettant des systèmes comme le Single Sign-On (SSO).
Le processus typique inclut une redirection vers le serveur d’identité, l’authentification de l’utilisateur, l’obtention d’un jeton, et l’accès sécurisé aux ressources.
Quelques bonnes pratiques:
- Utiliser des bibliothèques reconnues (Spring Security, etc.).
- Vérifier les signatures des jetons.
- Limiter les scopes et gérer l’expiration des jetons.
Conclusion
OAuth et OIDC offrent un cadre solide pour sécuriser les accès et l’identité dans les applications.
Leur bonne compréhension est cruciale pour allier sécurité, performance et expérience utilisateur.
Jour 2 dans le prochain article !
Article rédigé par Edouard Lamotte, Mathieu Broutin, Amine Amarir, Kaiqiang Xu et Omar Belahcen