Talks
To Gather, or not to Gather, that is the question.
Depuis l'arrivée de l'api java.util.Stream en Java 8, on entend une complainte monter de la communauté :
Ô rage ! Ô désespoir ! Ô vieillesse ennemie ! Les opérations finales sont ouvertes, mais pas les opérations intermédaires... N'ai-je donc tant vécu que pour cette infamie ? 😱
Amis, réjouissez vous, car votre complainte a été entendue ! Nous voici donc tous réunis pour nous jeter corps et âmes dans cet ajout : les 🔥 java.util.stream.Gatherer 🔥.
Comment fonctionnent-ils ? Est-il simple d'en implémenter ? Et d'ailleurs pourquoi je voudrais même le faire ?
N'avez-vous jamais eu envie d'avoir un index dans vos streams, de les zipper ou de les fusionner ? C'est ce que je vous propose de mettre en oeuvre avec quelques Gatherers, du plus simple au plus complexe (tout est relatif).
Et cadeau bonux, vous repartirez avec le dépôt git contenant les sources explorées !
Donné dans les conférences suivantes :
-
Touraine Tech 2025
OpenRewrite: Refactoring as code
Vous êtes dans la team Doc as code, Infrastructure as code, Ci as code ? La réponse à ces questions vous semble évidente.
Les bienfaits de l'approche "as code" ne sont plus à démontrer et pourtant il reste un domaine laissé pour compte.
Oui parce que si je vous pose ces questions pour vos refactorings et vos migrations, ça sera plutôt :
Vous êtes plutôt team chercher/remplacer ? regexp ? IDE click droit rename method ?
Eh oui, les cordonniers sont toujours les plus mal chaussés, et nous continuons a écrire des guides de migrations longs comme un dimanche de pluie. Fatigué de mener des migrations JUnit4 -> JUnit 5? Spring-boot 2 -> Spring-boot 3?
Est-ce qu’il ne serait pas temps d’entrer dans la team refactoring as code?
OpenRewrite est la boîte à outils parfaite pour écrire, versionner et partager vos refactoring. L'Ansible du refactoring.
Ne repartez pas sans une nouvelle as corde à votre arc, ne faite plus jamais vos migrations à la main.
Donné dans les conférences suivantes :
-
SnowCamp 2025
-
Touraine Tech 2025
Quarkus : Greener, Better, Faster, stronger!
Quarkus n'est maintenant plus un nouveau venu dans l'écosystème java, et de plus en plus de projets l'adoptent comme base de travail, mais peu de développeurs comprennent vraiment à quel point la magie se cache dans ses extensions.
C'est en développant l'extension [Quarkus Min.io]( https://github.com/quarkiverse/quarkus-minio) que j'ai découvert une partie de leurs capacités, et comment elles sont en fait au coeur des promesses du framework. Leur développement est simple et permet de rendre un grand nombre de services à nos utilisateurs. Mais surtout elles permettent de ne rendre que les services dont l'utilisateur à besoin nous permettant d'économiser mémoire, cpu et de raccourcir les temps de démarrage.
Et si vous veniez en développer une avec moi et que nous mettions en oeuvre quelques uns de ces tours de magie ?
Vous pourriez peut être aussi aimer ça et repartir avec quelques idées !
Donné dans les conférences suivantes :
-
SnowCamp 2024
-
Touraine Tech 2024
-
RivieraDev 2024
-
Bordeaux JUG La captation
-
Devfest Toulouse 2024
Les super pouvoirs du package java.util.function
Le package java.util.function
fêtera ses 10 ans en 2024 et force est de constater que malgré son omniprésence dans nos développements, son utilisation reste probablement sous-estimé et mal comprise.
Avez-vous déjà utilisé ces classes comme paramètre de vos méthodes ? Avez-vous déjà utilisé leur capacité de composition ? Ne vous êtes vous jamais dit que cet héritage douteux entre deux classes, ne vous plait pas, mais que faute de mieux, il reste là ?
Sans pour autant abuser des concepts de programmation fonctionnelle, nous aimerions vous présenter pendant ce talk à travers de cas concrets, une utilisation plus avancée du package java.util.function.
Fonctions anonymes, d'ordre supérieur ou encore la composition de fonctions, toutes ces notions n'auront désormais plus de secret pour vous et trouveront une place de choix dans votre boîte à outils de refactoring.
Vous repartirez avec un dépôt git avant/après en prime ! Avec le merveilleux Damien Lucas
Donné dans les conférences suivantes :
-
SnowCamp 2024
-
Touraine Tech 2024
-
RivieraDev 2024
-
Bordeaux JUG La captation
-
Devfest Toulouse 2024
Alice au pays d'Opentelemetry
S'ennuyant fermement alors que sa grande soeur lisait un livre sans image ni dialogue, Alice aperçut soudain passer auprès d'elle Opentelemetry criant qu'il allait unir traces, metrics et logs. En entrant derrière lui dans son terrier, elle fit une chute presque interminable qui l'emmèna dans un monde aux antipodes du sien. Elle y rencontra une galerie de personnages retors et se trouva confrontée au paradoxe, à l'absurde et au bizarre…
C'est une image très conforme à l'impression que j'ai eu en voulant mettre en place Opentelemetry sur un projet. J'étais revenu très enthousiaste d'une conférence qui me laissait présager que tout était merveilleux, mais ce ne fût pas si simple.
Je vous propose donc de suivre le cas réel de la mise en place d'Opentelemtry sur une application en service développée avec Quarkus et déployée dans un cluster K8S.
Donné dans les conférences suivantes :
-
BDX/IO 2023 La captation
-
DevoxxFR 2024 La captation
-
Devfest Lille 2023 La captation
Vous allez finir par les aimer les `Optionals`???
Les optional
ont débarqué en java 1.8 il y a 8 ans. Quand ils sont apparus je me souviens m'être dit :
"Génial ! Avant on faisait if (object != null), maintenant on fait if (optional.isPresent()) Quelle avancée 🙄 !"
Depuis j'ai eu l'occasion de les cotoyer, d'apprendre à les aimer et à les utiliser à bon escient.
Sur les projets auxquels je participe je m'aperçois qu'ils sont encore souvent mal utilisés, ou pas utiliseés quand il le faudrait.
Ensemble redécouvrons leur élégance, apprenons à maîtriser leur API et pourquoi ils sont bien mieux qu'un simple null check !
Donné dans les conférences suivantes :
-
Touraine Tech 2023 La captation