Quotidien Shaarli
December 19, 2025
AGENTS.md est un format ouvert et simple pour guider les agents de codage, utilisé par plus de 60 000 projets open source. Il sert de complément au README.md en fournissant des instructions spécifiques pour les agents, comme les étapes de construction, les tests et les conventions, tout en gardant le README concis et axé sur les contributeurs humains. Le fichier AGENTS.md est compatible avec divers agents de codage et outils, et peut être adopté librement par quiconque trouve cela utile.
Nicolas Jourdan explique comment combiner trois patterns de conception (Specification, Rule et Chain of Responsibility) pour gérer efficacement les règles métier complexes en PHP. L'article détaille d'abord le pattern Specification, qui transforme les conditions métier en objets réutilisables et testables, évitant ainsi les if imbriqués et le code dupliqué. Il présente ensuite une implémentation moderne de ce pattern avec une interface de base et des classes pour les opérations logiques (AND, OR, NOT). Cette approche permet de construire des conditions métier claires et modulaires, facilitant ainsi la maintenance et l'extensibilité du code.
L'article critique la gestion des formulaires en HTML, soulignant leur conception incomplète et leurs comportements inconsistants. Bien que de nouveaux éléments de formulaire aient été introduits, comme les champs email, téléphone, date et curseur de plage, ceux-ci restent basiques et ne couvrent pas des cas d'utilisation courants comme les comboboxes ou les curseurs de plage pour plusieurs valeurs. La validation intégrée, bien que pratique, manque de flexibilité, nécessitant souvent des solutions JavaScript personnalisées. L'auteur déplore le manque de standardisation pour des éléments combinés et des améliorations de style, pointant du doigt les lacunes persistantes malgré plus de dix ans depuis la recommandation HTML5.
Cet article raconte l'expérience d'un développeur qui, après des années de confort dans son travail, se retrouve confronté à un collègue plus expérimenté qui remet en question ses méthodes et ses choix. Initialement frustré, il finit par accepter cette "claque" comme une opportunité d'apprentissage, ce qui lui permet de progresser et d'acquérir une compétence essentielle : se remettre en question sans le vivre comme un échec. L'auteur souligne l'importance d'accepter les critiques et de partager les connaissances pour évoluer dans ce métier.
L'article explore les différentes phases de l'optimisation du Largest Contentful Paint (LCP), une métrique clé des Core Web Vitals. Il explique que le LCP peut être décomposé en quatre sous-parties : TTFB (Time to First Byte), Resource Load Delay, Resource Load Duration et Element Render Delay. Chaque phase identifie des goulots d'étranglement spécifiques et propose des solutions pour les résoudre. L'article souligne l'importance de comprendre ces phases pour diagnostiquer et améliorer les performances de chargement des pages web, en particulier pour les images, qui représentent la majorité des éléments LCP.
Morgan Murrah explique comment il a optimisé les animations de son site web en utilisant le compositeur (compositor), un processus GPU séparé qui améliore les performances des animations CSS. Il partage son expérience avec deux animations : des nuages en mouvement et un soleil avec des ondes pulsantes. En analysant les performances avec Chrome, il découvre que l'animation des nuages, utilisant la propriété left, génère une activité excessive dans le thread principal. Il apprend à convertir cette animation en une animation composée, utilisant la propriété transform au lieu de left, ce qui réduit significativement l'impact sur les performances. Un article accessible pour comprendre l'importance du compositeur dans les animations web.
Cet article met en lumière l'utilisation excessive de JavaScript pour résoudre des problèmes qui pourraient être mieux gérés par CSS. L'auteur, Chizaram Ken, souligne que les lacunes de connaissances poussent souvent les développeurs à sur-ingénieriser des solutions, ce qui impacte négativement les performances. Par exemple, des fonctionnalités CSS comme content-visibility: auto et les unités de vue modernes (dvh, svh, lvh) offrent des solutions efficaces sans JavaScript, mais les développeurs continuent de privilégier des solutions JavaScript par habitude. L'article explore des problèmes spécifiques comme la virtualisation dans React, les requêtes de conteneur et les animations de défilement, en proposant des alternatives CSS et en discutant des cas où JavaScript reste pertinent. Un appel est lancé pour éviter d'utiliser useEffect et useState pour des problèmes de rendu, en insistant sur l'importance de comprendre les capacités natives du navigateur avant de recourir à des bibliothèques JavaScript.
L'article explore comment des techniques anciennes et des API natives du navigateur surpassent les frameworks modernes en termes de performance. L'auteur présente multicardz, un outil de gestion de données spatiales, qui utilise des bitmaps pour les requêtes backend, réduisant ainsi les temps de traitement. Pour le frontend, il utilise DATAOS (DOM As The Authority On State), une approche où le DOM est la source de vérité pour l'état de l'application, éliminant ainsi la nécessité de synchroniser un état séparé. Le résultat est une application performante avec un bundle JavaScript de seulement 32KB, un score Lighthouse de 100, et des temps de réponse extrêmement rapides.