Accueil

Accélérer Django avec la compression HTTP

Les réponses texte d’une application Django (HTML, JSON, CSS, JavaScript) se compressent très bien : sur une page de test qui affiche un tableau de 100 articles, la réponse passe de 25 321 octets à environ 1 200 octets avec gzip. Dans ce tutoriel, nous allons activer la compression dans Django, vérifier qu’elle fonctionne, puis voir quand la con...

Plus

Comment ajouter du cache à une application Spring Boot

Quand une méthode coûte cher (un appel à une API lente, une grosse requête SQL) et qu’elle renvoie souvent le même résultat pour les mêmes paramètres, la mettre en cache évite de refaire le travail à chaque appel. Spring propose pour ça une abstraction de cache à base d’annotations, que Spring Boot configure tout seul avec Caffeine, Redis et d’a...

Plus

Comment ajouter du cache à une application Django

Une page qui refait les mêmes requêtes SQL à chaque affichage fait travailler le serveur pour rien. Le framework de cache de Django permet de garder le résultat à plusieurs niveaux : la page entière, un morceau de template ou une simple valeur calculée. Dans ce tutoriel, nous allons configurer un backend de cache, utiliser chacun de ces niveaux,...

Plus

Pattern matching en Java moderne

Tester le type d’un objet, le caster, puis lire ses champs : en Java, cette suite d’opérations a longtemps demandé beaucoup de code. Avec le pattern matching, complété en Java 21, tout ça se fait directement dans un instanceof ou dans un switch, y compris avec les records et les classes scellées.

Plus

Kubernetes : Programmer des tâches avec CronJob

Pour exécuter une tâche récurrente dans un cluster Kubernetes (une sauvegarde, un rapport, une purge), on utilise un CronJob : l’équivalent d’une ligne de crontab, qui crée un Job à chaque échéance. Voyons comment en écrire un, régler ses principales options (chevauchements, rattrapage, fuseau horaire, historique) et le déboguer quand il ne se l...

Plus

Linux : Programmer une tâche avec cron

Pour lancer une commande ou un script tous les jours, toutes les 5 minutes ou au démarrage d’un serveur, l’outil standard sous Linux est cron. Dans ce tutoriel, nous allons voir comment écrire une crontab, dans quel environnement tournent les tâches (c’est là que se cachent la plupart des pièges) et comment trouver pourquoi une tâche ne se lance...

Plus

Python : Comment faire des group by

Regrouper des données par clé, le “group by” de SQL, revient tout le temps : compter des occurrences, additionner des montants par catégorie, calculer une moyenne par groupe. Nous allons voir les différentes façons de le faire en Python, de la bibliothèque standard jusqu’à pandas, sur un même jeu de données.

Plus

Les maps (Map) en Java

Cinquième partie de notre série sur les collections Java, consacrée aux maps. Une Map associe des clés à des valeurs, comme un annuaire associe un nom à un numéro de téléphone. Nous allons voir comment la remplir et la parcourir, les méthodes arrivées avec Java 8 (merge, computeIfAbsent…) qui évitent bien des if, et comment choisir entre HashMap...

Plus

Les files (Queue) et Deques en Java

Quatrième partie de notre série sur les collections Java : les files. Une Queue stocke des éléments jusqu’à ce qu’on les traite, dans leur ordre d’arrivée ou par priorité. Son extension Deque permet d’en ajouter et d’en retirer aux deux bouts. Nous allons voir leurs méthodes, les implémentations à utiliser au quotidien (ArrayDeque, PriorityQueue...

Plus

Les ensembles (Set) en Java

Troisième partie de notre série sur les collections Java, consacrée aux ensembles. Un Set garantit qu’un même élément n’y figure jamais deux fois : nous allons voir sur quoi repose cette garantie, comment choisir entre HashSet, LinkedHashSet, TreeSet et EnumSet, et comment calculer une union, une intersection ou une différence.

Plus