-
Développement avec l'IA, retour d'expérience
J’ai beaucoup hésité avant de me lancer…
D’une part, le sujet est vraiment partout, et il me semble plus ancré que les hypes précédentes, comme le metaverse ou les cryptomonnaies. C’est difficile de l’ignorer quand on est développeur. D’autre part, le sujet soulève tellement de questions environnementales et sociétales. C’est irresponsable de s’y engager dans son état actuel.
Vous aurez compris que je parle d’IA générative, plus précisément de l’utilisation d'IA générative dans le développement Java. Je vais vous expliquer comment j’ai abordé le sujet et ce que j’en retire pour le moment. Et comme ça bouge très vite, notez bien la date de publication du billet : c’est fin juin 2025. Il n’est pas impossible que je change d’avis pendant l’été !
-
Afficher un historique avec Hibernate Envers
Sur un projet en cours, on stocke l’historique complet des modifications sur les entités. Le projet utilise les frameworks classiques: Spring Boot 3 et JPA / Hibernate 6. Nous avons ajouté Hibernate Envers pour stocker les changements dans des tables d’audit.
@Entity @Audited(withModifiedFlag = true) public class Product extends AbstractEntity<UUID> { ... }
La façon d’enregistrer ces modifications est bien documentée, je n’y reviendrai pas. Pour ce projet, nous avons voulu ajouter une façon générique d’afficher l’historique des changements pour chaque instance d’entité.
-
Retour d'expérience, migration à Spring Boot 3
Ces dernières semaines, j’ai dû faire une migration de Spring Boot 2 à Spring Boot 3. Comme dans Spring Boot il y a toute une suite de frameworks et librairies, avec en particulier Spring Framework, Spring Security, Hibernate, ça fait pas mal de galères potientielles.
J’ai lu quelques articles et billets sur le sujet, en particulier le guide de migration du projet Spring. J’en ai conclu que ça n’allait pas être très compliqué, avec surtout un gros rechercher/remplacer de
javax.*
pourjakarta.*
. Evidemment ça ne s’est pas passé aussi simplement que prévu, c’est ce que je vais raconter ici. -
Tests d'intégration, comment vérifier que le ménage a été fait ?
Encore un billet sur les tests, et plus précisément sur les tests d’intégration en Java. Dans ma mission actuelle, il y a beaucoup de tests d’intégration, trop à mon goût. Et ce sont généralement des tests avec une intégration complète : le test envoie une requête HTTP à laquelle le backend testé renvoie une réponse construite avec des données issue d’une base de données de test.
Pour les faire fonctionner de façon reproductible, aussi bien en local qu’en intégration continue, ça demande quelques contorsions. J’ai donc cherché des idées pour les améliorer.
Aujourd’hui, je vais vous expliquer ce qu’on a fait pour résoudre le problème du ménage dans les données.
-
Comment vérifier l'envoi d'e-mails en test d'intégration ?
En avril, je traitais le sujet de la date dans les tests. Je continue sur ma lancée avec les tests, mais cette fois-ci il s’agit de tests d’intégration et de l’envoi d’e-mails.
Lorsqu’une application envoie des e-mails, ses tests d’intégration doivent d’une part avoir accès à un serveur SMTP, mais ils doivent aussi pouvoir valider que les messages envoyés sont conformes aux attentes. Nous allons aborder ces deux aspects.