Dans cet article, l’auteur raconte comment il a transformé son workflow de développement en confrontant systématiquement deux IA — Claude Code pour générer et planifier le code, et Codex pour faire une code review objective — ce qui améliore nettement la qualité du code produit : il utilise un fichier CLAUDE.md pour configurer les attentes d’emblée, exige des plans avant l’écriture, et fait reboucler les remarques de Codex vers Claude Code jusqu’à alignement, tout en s’appuyant sur des tests, du linting et un jugement humain pour garder le contrôle.
Addy Osmani explique pourquoi il est préférable d'éviter d'utiliser le fichier AGENTS.md généré automatiquement par la commande /init dans les projets de développement. Selon des études récentes, ces fichiers peuvent ralentir les agents, augmenter les coûts et réduire l'exactitude. Les fichiers AGENTS.md écrits par des humains, contenant des informations non découvrables par les agents, sont plus bénéfiques. De plus, une hiérarchie de fichiers AGENTS.md, placés à des niveaux pertinents dans le projet, est plus efficace qu'un seul fichier centralisé. L'auteur souligne l'importance de ne garder dans ces fichiers que les informations essentielles et non redondantes.
Ce guide pratique propose 7 stratégies pour cultiver la constance dans son développement personnel, un atout clé pour transformer ses intentions en résultats concrets. Parmi les conseils : commencer par des étapes minuscules, associer les nouvelles habitudes à des routines existantes, optimiser son environnement, et se concentrer sur l'identité plutôt que sur les objectifs. L'article explore aussi un système d'entraînement en 4 phases et les erreurs courantes à éviter. Une ressource précieuse pour ceux qui cherchent à ancrer des habitudes durables.
L’article analyse de manière nuancée les avantages et les inconvénients des loaders SVG par rapport aux loaders au format raster pour les interfaces web, en mettant l’accent sur la performance et l’esthétique : les SVG offrent une meilleure évolutivité, des fichiers souvent plus légers et peuvent être stylés ou animés via CSS/DOM, ce qui améliore l’adaptabilité à différentes résolutions, tandis que les images raster peuvent être plus simples pour des visuels complexes mais entraînent des compromis en taille et en clarté, ce qui influence le choix selon les besoins de design et de performance.
Ce billet de blog explique comment utiliser les sprites pour animer des éléments web, une technique empruntée aux jeux vidéo. Les sprites consistent à créer une seule image contenant chaque frame d'une animation, puis à afficher chaque frame successivement pour créer l'illusion d'animation. L'auteur détaille la mise en œuvre de cette technique avec CSS, en utilisant les propriétés object-fit et object-position pour contrôler l'affichage des différentes frames. Il partage également des cas d'utilisation et les compromis à considérer pour déterminer quand utiliser ou ne pas utiliser les sprites.
L'article explique comment standardiser la déclaration des droits avec une interface, implémenter cette interface sur les entités concernées, et créer un voter unique pour gérer les autorisations. Une solution efficace pour éviter la répétition de code et centraliser la logique d'accès, particulièrement utile dans les projets SaaS. L'article aborde également les améliorations possibles et les limitations de cette approche.
L’article explique comment éviter de coder en dur la logique métier dans un projet Symfony en utilisant le composant Symfony Expression Language pour rendre ces règles dynamiques et modifiables sans déploiement de code, en les stockant par exemple dans une base de données ; il décrit l’intérêt de cette approche face à des if/else classiques, présente la création d’une table de règles (action_policies) et un service qui évalue ces expressions dans un contexte donné (ex. utilisateur), tout en permettant d’ajouter des fonctions personnalisées pour étendre la logique.
Ce partage explique comment implémenter un système de signature d'URL pour la pagination dans Symfony 7. L'auteur, Pranan Subba, montre comment utiliser le service UriSigner pour signer les liens de pagination, empêchant ainsi toute manipulation des URLs. Le code fourni illustre comment vérifier l'intégrité des URLs et générer des liens signés pour la navigation. Une solution simple et efficace pour sécuriser les liens de pagination dans une application Symfony.
Cet article explore la gestion des changements d'état dans API Platform, en se concentrant sur l'utilisation de previous_data pour suivre les modifications. L'auteur illustre comment cette fonctionnalité permet de détecter efficacement les changements spécifiques, comme le passage d'un statut "brouillon" à "publié" pour une annonce, et de déclencher des actions comme l'envoi d'une notification. Contrairement à l'approche traditionnelle avec Doctrine UnitOfWork, previous_data offre une solution plus propre, moins verbeuse et plus facile à tester, sans coût de performance supplémentaire, car elle utilise une copie de l'objet déjà récupéré.
Dans cet article, l’auteur explique comment utiliser correctement le rate limiting dans des API Symfony en passant d’une simple limite unique à l’utilisation du Configurable Compound Rate Limiter de Symfony 7.3, qui permet de combiner plusieurs contraintes (par exemple une limite courte pour des pics d’activité et une limite longue pour éviter une charge soutenue) de manière déclarative dans la configuration plutôt que dans le code, avec pour bénéfices des en-têtes cohérents, une orchestration interne centralisée et une meilleure maintenabilité ; il détaille aussi comment externaliser l’application des limites via un event listener et des attributs pour garder les contrôleurs propres tout en soulignant les points d’attention (backend de stockage, surveillance des 429, etc.).
Cet article explique comment améliorer la gestion des permissions dans une application Symfony en utilisant les Voters, plutôt que des conditions if/else dans les contrôleurs. Les Voters permettent de centraliser et simplifier la logique de sécurité, en déléguant les vérifications d'accès à des classes spécialisées. L'auteur illustre cela avec un exemple concret de gestion des droits d'édition et de visualisation des posts dans un blog. Il montre comment créer et utiliser un Voter pour nettoyer et sécuriser le code des contrôleurs.
Cet article compare l'utilisation de DQL (Doctrine Query Language) et de SQL natif dans l'écosystème Symfony, en se basant sur des exemples concrets avec Symfony 7.4 et PHP 8.4+. Il explore les performances, la maintenabilité et l'expérience de développement des deux approches. L'auteur définit d'abord un modèle de domaine simple avec une entité Product, puis illustre l'utilisation de DQL à travers un exemple de requête dans un repository. Les avantages de DQL, comme la manipulation d'objets et la portabilité entre bases de données, sont mis en avant. L'article promet également une analyse des performances et de l'hydratation des résultats.
Ce guide explique étape par étape comment intégrer le système de paiement Dodo dans une application Symfony 7. Il couvre la création d'un compte Dodo, la configuration des produits, l'installation du SDK PHP, la gestion des variables d'environnement, la création des routes et services de paiement, ainsi que la gestion des retours après paiement. Le tutoriel est conçu pour être accessible aux débutants et met l'accent sur la simplicité et la clarté.
L'auteur de ce blog, utilisant Hugo pour son site statique, partage son parcours pour améliorer la sécurité de son blog en configurant les en-têtes HTTP grâce à l'outil Mozilla HTTP Observatory. Initialement noté F, il parvient à obtenir la note A+ en implémentant plusieurs en-têtes de sécurité tels que Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options, Referrer-Policy et X-Frame-Options. Il détaille les étapes, les défis rencontrés, notamment avec la configuration de nginx, et les solutions apportées pour sécuriser efficacement son site.
L'auteur partage son expérience d'optimisation des performances web de son blog en convertissant massivement les images au format AVIF et en pré-compressant les documents HTML. Inspiré par un talk de Touraine Tech 2026, il a réduit la taille des images de 76% en moyenne, passant de 274 Mo à 66 Mo, sans perte de qualité visible. Il a également optimisé la génération et le service des pages HTML via des scripts et des configurations nginx. Un partage détaillé des résultats et des méthodes utilisées.
L'article explore le phénomène du "vibe coding", où les développeurs utilisent des assistants IA pour générer du code en décrivant simplement leurs besoins en langage naturel. Bien que cette pratique permette de créer rapidement des prototypes et des MVPs, elle présente des limites importantes. Après quelques mois, les projets peuvent devenir ingérables, avec des bugs qui s'accumulent et une compréhension globale du code qui se perd. L'article met en garde contre les dangers de cette méthode, soulignant l'importance des spécifications claires et de la compréhension approfondie du code.
Ce catalogue en ligne de refactorings, créé par Martin Fowler, accompagne son livre "Refactoring 2nd Edition". Il répertorie diverses techniques de refactoring, classées par tags, pour améliorer la structure et la lisibilité du code. Parmi les refactorings listés, on trouve des actions comme "Extract Method", "Inline Variable", "Replace Conditional with Polymorphism", et bien d'autres, chacune visant à optimiser et clarifier le code. Une ressource précieuse pour les développeurs cherchant à améliorer leurs compétences en refactoring.
modern.css propose des extraits de code CSS modernes pour remplacer les anciennes astuces. La page compare les anciennes méthodes avec les nouvelles techniques natives, offrant des solutions plus propres et plus efficaces. Par exemple, centrer un élément avec display: grid et place-items: center remplace les hacks avec position: absolute et transform. Les snippets couvrent divers aspects du CSS, tels que les sélecteurs, la mise en page, les animations, les couleurs et la typographie, avec des indications de compatibilité des navigateurs.
Ce dépôt GitHub, maintenu par sts10, est une liste curatée d'utilitaires en ligne de commande écrits en Rust. Il inclut des outils variés comme des remplaçants de commandes Unix (ex: bat pour cat, zoxide pour cd), des gestionnaires de fichiers (ex: broot, felix), des outils de monitoring (ex: bottom, bandwhich), et bien plus. Le dépôt précise que les descriptions sont souvent copiées directement depuis les dépôts des projets et que certains peuvent être abandonnés. Il est donc conseillé d'investiguer avant d'installer ou d'utiliser ces outils.
Voicebox est un studio de synthèse vocale open-source et local-first, offrant des fonctionnalités similaires à un DAW pour une synthèse vocale professionnelle. Il permet de cloner des voix, générer de la parole et construire des applications vocales, le tout en local sur votre machine. Contrairement aux services cloud, Voicebox garantit la confidentialité des données, propose des outils professionnels, une flexibilité des modèles (actuellement Qwen3-TTS, avec d'autres modèles en développement), une API pour intégration, et des performances natives grâce à Tauri (Rust). Disponible pour macOS et Windows, il offre des fonctionnalités comme le clonage vocal instantané, une haute fidélité, et une gestion des profils vocaux.