Python : Mettre en cache des fonctions avec lru_cache
Quand une fonction coûteuse (calcul lourd, requête réseau, lecture de fichier) est appelée plusieurs fois avec les mêmes arguments, on peut garder son résultat en mémoire au lieu de refaire le travail à chaque appel. En Python, le décorateur @lru_cache du module functools s’en charge en une ligne.
Python : Le pattern matching avec match et case
Python 3.10 (octobre 2021) a introduit l’instruction match, qui ressemble au switch d’autres langages mais va plus loin : en plus de comparer des valeurs, elle sait déstructurer des listes, des dictionnaires ou des objets, et en extraire les champs en une seule ligne.
Python : Comment utiliser les décorateurs
Un décorateur permet d’ajouter un comportement à une fonction (afficher un log, mesurer sa durée, vérifier des droits…) sans toucher à son code. Si vous avez déjà écrit @staticmethod, @property ou @app.route("/") avec Flask, vous en avez utilisé. Nous allons voir comment ils fonctionnent, puis comment écrire les vôtres.
Python : Comment utiliser les variables d'environnement avec python-dotenv
Écrire la configuration d’une application Python (clés d’API, identifiants de
base de données, mode debug…) directement dans le code source pose vite
problème. Les variables d’environnement séparent la configuration du code, et
python-dotenv permet de les définir dans un fichier .env pendant le
développement.
Les enums en Java
Un enum représente un ensemble fixe de valeurs : les saisons, les statuts d’une commande, des niveaux de priorité… En Java, chaque constante d’un enum est un objet, qui peut avoir ses propres champs et méthodes. Dans ce tutoriel, nous allons voir comment déclarer et utiliser un enum, comment lui ajouter des données et du comportement, puis comme...
Python : Comment tester son code avec pytest
Des tests automatisés permettent de vérifier que son code fait ce qu’on attend,
et qu’il continue à le faire après chaque modification. En Python, le framework
de test le plus populaire est pytest, et c’est lui que nous allons utiliser dans
ce tutoriel.
Introduction aux Streams en Java
L’API Stream, arrivée avec Java 8, permet d’enchaîner des traitements sur une collection (filtrer, transformer, trier, agréger) sans écrire la boucle soi-même. Dans ce tutoriel, nous allons voir comment créer un Stream, puis les opérations les plus utilisées et les quelques comportements qui surprennent la première fois.
Les Virtual Threads en Java 21
Dans un serveur Java classique, chaque requête occupe un thread du début à la fin, y compris pendant qu’elle attend la base de données. Ces threads coûtent cher, on les limite donc avec un pool, et c’est souvent ce pool qui fixe le nombre de requêtes traitées en même temps. Les virtual threads, finalisés en Java 21, permettent de continuer à écr...
free : surveiller et comprendre l'utilisation mémoire sous Linux
Quand un serveur rame ou qu’un processus se fait tuer par l’OOM killer, la première chose à regarder est la mémoire. La commande free donne en une seconde l’état de la RAM et du swap, encore faut-il savoir lire ses colonnes : la plupart des fausses alertes viennent d’une mauvaise lecture de la colonne free.
Comment créer ses annotations en Java
On utilise des annotations tous les jours en Java (@Override, @Autowired, @GetMapping…), mais on en écrit rarement. Déclarer la sienne ne prend que quelques lignes : le vrai travail se trouve dans le code qui la lit, soit à l’exécution par réflexion, soit pendant la compilation avec un processeur d’annotations. Nous allons voir les deux.
df/du : surveiller et analyser l'espace disque sous Linux
Quand un disque se remplit, les symptômes sont rarement clairs : une base de données qui refuse d’écrire, des logs qui s’arrêtent, un No space left on device au milieu d’une compilation. df indique quel système de fichiers est plein, puis du permet de trouver ce qui prend la place. Voyons comment utiliser ces deux commandes, et pourquoi elles ne...
Augmenter la limite inotify sur Debian et Ubuntu
Les IDE, les serveurs de développement avec rechargement automatique ou un simple tail -f utilisent inotify pour savoir quand un fichier change. Sur un gros projet, ou avec beaucoup de conteneurs, on finit par atteindre les limites fixées par le noyau et par tomber sur des erreurs comme ENOSPC: System limit for number of file watchers reached ou...
62 articles, 6 pages.