Gérer les codes retours de son API Spring de façon centralisée avec @ControllerAdvice ou @RestControllerAdvice

Introduction Si vous travaillez sur une API Spring au quotidien, vous pouvez trouver rébarbatif le fait de renseigner tous les codes HTTP correspondants aux différents cas d’erreur. On peut les gérer cette façon: Si on veut plusieurs codes retours en fonction des différentes exceptions possibles alors on peut se retrouver avec beaucoup de catch dans nos contrôleur.  La promesse de […]

Écosystème Microsoft : .NET 6 / WinUI 3 / .NET MAUI

Historique Pour cet article je vais faire un mini REX sur l’écosystème de Microsoft pour les développeurs. J’ai commencé à travailler avec les technologies Microsoft vers 2016. Pour situer, Windows 10 devait avoir à peu près un an et Satya Nadella était à la tête de l’entreprise depuis 2 ans environ. Ces deux points sont, à mon sens, importants et ont […]

Changer la bannière de démarrage “Spring” dans votre projet Spring Boot

Introduction Vous l’avez sûrement remarqué, lorsque vous lancez votre application Spring Boot, vous avez une bannière de ce type qui s’affiche: Il peut être intéressant de la changer, ne serait-ce que pour voir plus facilement dans les logs quelle application démarre. On peut aussi vouloir afficher certaines informations utiles comme la version de l’application qui se lance. On va voir […]

Les Stream: map – filter – reduce par l’exemple

 Introduction Les fonctions map, filter, reduce sont des opérations très utiles sur les Streams qui permettent de transformer simplement leurs éléments. L’objectif de cet article est de vous montrer comment fonctionnent ces 3 opérations fondamentales. On ne rentrera pas dans les détails mais on utilisera des exemples concrets pour que vous puissiez comprendre leur principe et les appliquer dans des […]

Configurer Cucumber avec Spring Boot 3 et Junit 5 – Un exemple concret

Introduction Cucumber est un outil indispensable dans mon quotidien. En effet, il permet très facilement de créer des tests systèmes (cf. https://latavernedutesteur.fr/2017/11/03/les-niveaux-de-test/).  Le seul problème de Cucumber  (à mon sens) est qu’il n’est pas évident à configurer.  Après l’avoir mis en place sur plusieurs projets, je vous propose de prendre un raccourci et voir pas-à-pas comment l’installer simplement sur votre […]

Des tests unitaires paramétrés avec Junit Jupiter Params

Introduction Lorsqu’on écrit nos tests unitaires, on peut avoir l’impression que certains cas de tests sont quasiment identiques dans leur structure. Ils sont rébarbatifs à lire/écrire. C’est là que la notion de dataProvider est utile: on va réutiliser le même test mais avec des paramètres d’entrée différents 😉 Si on prend le cas du Kata Tennis (https://codingdojo.org/kata/Tennis/) , on a […]

Accords mets & whisky

Un peu d’apéro dans cette tech ! 🙂 C’est l’été et j’avais envie de vous faire partager une découverte (en tout cas pour moi). J’apprécie le whisky et notamment ceux qui sont tourbés (fumés). Un soir, lors d’un repas en famille je partage un verre de whisky et je mange du melon. Un accord pour moi improbable mais qui s’est fait […]

Retour d’expérience : le TDD après un an d’utilisation au quotidien

Introduction Dans cet article, je vais vous livrer un avis très personnel sur ce que m’a apporté le TDD et les difficultés que j’ai pu rencontrer. Si vous ne savez pas ce qu’est le Test Driven Development, je vous conseille cette vidéo qui est très bien faite : https://www.youtube.com/watch?v=wMY5FE59rkI Comment j’en suis venu au TDD ? J’ai eu beaucoup de […]

Utiliser une base H2 avec SpringBoot

Introduction H2 est une base de données rapide et légère qui peut être persistée (dans un fichier) ou non. Je la trouve utile pour au moins 2 cas d’utilisation : – Lorsque je veux réaliser un PoC, ça me permet d’avoir une base de données configurée en 2 minutes. – Lorsque je veux faire des tests d’intégration qui communiquent avec […]

Installer Zsh, OhMyZsh! et Powerlvl10k sur Debian/Ubuntu

Pourquoi utiliser Zsh ? Zsh est un shell, c’est à dire qu’à l’image de bash ou de sh, c’est un interpréteur de commande. Ce shell reprend les fonctionnalités de bash donc si comme moi, bash était votre shell habituel, vous ne serez pas dépaysés !  La grande force de zsh à mon sens, c’est la possibilité de customisation avec des […]