lsof démystifié : révélation des fichiers ouverts d’un processus

2025-06-06

Cet extrait de code utilise la commande `lsof -p $(echo $$)` pour lister tous les fichiers ouverts du processus zsh actuel. La sortie affiche des détails tels que l’ID du processus, l’utilisateur, le type de descripteur de fichier, le périphérique, la taille et le chemin, offrant une image claire des interactions du processus avec le système de fichiers. Ceci est inestimable pour comprendre le comportement du processus et déboguer les fuites de descripteurs de fichiers.

Lire plus
Développement descripteurs de fichiers

Authentification basée sur les cookies dans Axum : des extracteurs au middleware

2025-06-05

Cet article explore deux approches pour implémenter l'authentification utilisateur basée sur les cookies dans le framework Rust Axum. Initialement, l'auteur montre l'utilisation d'un extracteur personnalisé, `CookieJwt`, pour récupérer les jetons JWT des requêtes, affichant conditionnellement un bouton « Profil » ou « Connexion » en fonction de la validité du JWT. Cependant, cette approche s'avère moins propre et moins évolutive pour les scénarios d'authentification complexes. L'article refactorise ensuite la solution en utilisant le middleware Axum, offrant une approche plus propre, plus réutilisable et plus flexible pour gérer la logique d'authentification. Ce middleware valide efficacement les JWT, gère les jetons d'actualisation et gère différents types de requêtes, résultant en un système d'authentification utilisateur plus robuste et adaptable. L'auteur détail l'implémentation du middleware, soulignant ses avantages par rapport à l'approche basée sur les extracteurs.

Lire plus
Développement

Pourquoi vous devriez abandonner les constructeurs de requêtes et adopter le SQL brut

2025-01-25

Cet article préconise d'écrire les requêtes de base de données directement en SQL au lieu de s'appuyer sur des constructeurs de requêtes. À travers plusieurs exemples, l'auteur montre comment les fonctionnalités de SQL (comme `IS NULL`, `COALESCE`, `ARRAY_REMOVE`, `STRING_TO_ARRAY`) gèrent élégamment les paramètres optionnels, les tableaux, la pagination et les mises à jour par lots, réduisant ainsi la logique complexe en Rust. Cette approche simplifie le code, améliore la lisibilité et la testabilité, et permet des tests et un débogage plus faciles de la base de données. L'auteur soutient que le SQL brut est souvent plus propre et plus efficace que les modèles de constructeur complexes.

Lire plus