Cet article explore comment conduire le changement vers une Clean Architecture au sein d'une équipe de développement. Il aborde les aspects humains et organisationnels, complémentaires aux aspects techniques traités dans un précédent article. L'auteur partage son expérience en tant que lead développeur, soulignant l'importance de l'adhésion de l'équipe, de la pédagogie, et de la création d'un environnement de confiance pour réussir une telle refonte. Il insiste sur l'importance de lever les incompréhensions et d'encourager l'expérimentation pour ancrer progressivement les concepts. Un article précieux pour ceux qui souhaitent transformer une base de code existante en un terrain d'apprentissage collectif autour de la Clean Architecture.
Addy Osmani partage 21 leçons tirées de ses 14 années chez Google, axées sur les compétences humaines et organisationnelles plutôt que sur les technologies. Parmi ces leçons, il souligne l'importance de se concentrer sur les problèmes des utilisateurs, de collaborer plutôt que d'avoir toujours raison, de privilégier l'action et le partage rapide, de privilégier la clarté à la complexité, et de limiter l'innovation aux cas où elle est vraiment nécessaire. Ces conseils visent à aider les ingénieurs à naviguer efficacement dans leur carrière et leurs projets.
Steve Huynh explique dans cet article pourquoi il est crucial de ne pas confondre son emploi avec sa carrière. Il souligne que se concentrer uniquement sur les tâches quotidiennes (85% du temps) sans consacrer du temps à la stratégie (15%) peut freiner la croissance professionnelle. Il recommande de réallouer une partie de son temps pour travailler sur des projets à long terme, comme développer des compétences (Multiplicateurs), créer des opportunités (Optionnalité) ou planifier des paris audacieux (Big Bets). Cette approche permet de transformer son travail quotidien en croissance de carrière sans nécessairement augmenter sa charge de travail.
Cet article explore ce qui distingue réellement un ingénieur senior des autres. Au-delà des compétences techniques et des années d'expérience, la capacité à réduire l'ambiguïté est la clé. Les ingénieurs seniors excellent dans la transformation de problèmes flous en projets concrets, en posant les bonnes questions, en identifiant les priorités et en anticipant les risques. Cette compétence est cruciale pour le succès des projets et justifie souvent leur salaire. Malheureusement, les processus de recrutement actuels, axés sur les technologies et les exercices techniques, ne mesurent pas toujours cette aptitude. L'article encourage les ingénieurs à pratiquer cette compétence en prenant en charge les tickets vagues et en clarifiant les problèmes avant de les résoudre.
Cet article explore les considérations d'accessibilité pour les formules mathématiques sur le web, soulignant l'importance d'une lecture correcte par les lecteurs d'écran. L'article met en avant MathML comme l'une des meilleures options pour représenter les formules, grâce à sa syntaxe dédiée, son bon support par les lecteurs d'écran et son indépendance vis-à-vis de JavaScript. Il compare différentes approches, comme TeX/LaTeX, Unicode math, et les images, en montrant que MathML offre une sémantique claire et une intégration native dans le DOM. L'article aborde également les variations de support des lecteurs d'écran, comme VoiceOver, JAWS et NVDA, et illustre ces concepts avec l'exemple du théorème de Pythagore et une preuve mathématique plus complexe.
L'article explique les particularités de l'utilisation de HTML dans les ePubs, le standard W3C pour les livres électroniques. Contrairement aux sites web, les ePubs utilisent XHTML, une version plus stricte de HTML basée sur XML, ce qui impose des règles syntaxiques rigoureuses et des particularités comme l'utilisation de namespaces. Le CSS reste globalement similaire, mais avec des limitations dues aux capacités réduites des liseuses. L'article explore également les extensions XML possibles, comme MathML, et les défis spécifiques liés à la création de contenus pour ePubs.
Nadia Makarevich, experte en React et performance web, introduit les composants serveur React (RSC) et leur impact sur les performances. Elle explique que les RSC déplacent une partie du travail vers le serveur, réduisant ainsi la quantité de JavaScript à envoyer au client et améliorant le temps de chargement initial. L'article explore les différences entre le rendu côté client et les RSC, en mesurant des métriques comme le LCP et le temps d'affichage des données dynamiques. Makarevich a construit une SPA pour illustrer ces concepts, disponible sur GitHub.
L'article explore la possibilité d'utiliser l'IA pour codifier des bonnes pratiques de performance web, inspirées de l'outil YSlow des années 2000. L'auteur propose de former un modèle d'IA avec des données structurées issues de l'HTTPArchive, en comparant des pages lentes et rapides, pour distiller des règles de performance web adaptées à l'ère actuelle. L'objectif est de revivre l'esprit de YSlow avec une approche moderne et automatisée.
Richard Dern explore l'évolution de l'administration système à travers les décennies, depuis l'ère physique des années 1950 jusqu'à la virtualisation et le cloud des années 2020. Il met en lumière la superposition des outils et des pratiques plutôt qu'une rupture générationnelle. L'article se concentre ensuite sur l'utilisation d'émulateurs de terminal web pour administrer des serveurs personnels, en passant en revue les options logicielles et en partageant ses critères de sélection. Un aperçu historique et technique intéressant pour les passionnés d'informatique.
L’article détaille les essais de l’auteur, les outils testés (Ollama, Jan avec Vulkan/llama.cpp), et les astuces pour configurer un backend compatible afin d’obtenir de bonnes performances sans dépendre de serveurs distants.
L'article explore les améliorations récentes de l'API Speculation Rules, qui permet de précharger ou de pré-rendre des pages web pour accélérer la navigation. Initialement basée sur le survol de la souris (hover) pour les appareils desktop, l'API a été améliorée pour les appareils mobiles en utilisant des heuristiques comme la distance verticale des liens, leur taille et le temps d'arrêt du défilement. L'article souligne également les améliorations de la valeur "eager" et les considérations sur les coûts et les risques de la spéculation. Ces fonctionnalités sont actuellement supportées par les navigateurs basés sur Chromium, avec des travaux en cours pour Safari et Firefox.
Ce billet explore l'origine et la signification de l'adage "favoriser la composition à l'héritage" en programmation orientée objet. Cette phrase, popularisée par le livre "Design Patterns" (Gang of Four), oppose l'héritage (réutilisation en "boîte blanche") à la composition (réutilisation en "boîte noire"). L'auteur analyse les avantages et limites de chaque approche, soulignant que la composition offre plus de flexibilité à l'exécution mais peut nécessiter plus de travail. Il rappelle aussi le contexte historique et linguistique de ce débat, ainsi que l'influence des travaux de Barbara Liskov sur la sémantique des sous-types.
L'autrice partage son expérience avec la cataracte, diagnostiquée à 30 ans. Cette condition a modifié son utilisation du web, notamment en développant une photophobie, la poussant à privilégier les thèmes sombres. Elle souligne l'importance de proposer les deux thèmes pour répondre aux besoins variés des utilisateurs, comme son ami sourdaveugle qui préfère un thème inversé. Elle utilise aussi l'extension Dark Reader, bien que parfaite. Son témoignage illustre l'importance de l'accessibilité pour tous.
Pour remplacer son instance GitLab auto-hébergée (trop gourmande en ressources pour un usage personnel), l’auteur a migré vers Forgejo (fork de Gitea) en utilisant Terraform pour automatiser la transition. Plutôt que d’utiliser des scripts de migration obsolètes, il a exploité les providers Terraform pour GitLab et Gitea/Forgejo : le code liste les projets source, les recrée en mode miroir sur la nouvelle forge, puis bascule le domaine. La CI/CD a été réécrite en workflows Forgejo Actions (similaires à GitHub Actions), simplifiant le processus et réduisant significativement la consommation de ressources (10 Go de RAM et 10 % d’espace disque gagnés). Une approche efficace et maintenable, qui montre comment détourner Terraform pour des besoins ponctuels. Le gain en performance et en simplicité est notable, surtout pour un petit serveur.
React 19.2 améliore l'optimisation de l'INP (Interaction to Next Paint) avec deux nouvelles fonctionnalités clés. La première est le composant
Cet article propose des astuces pour améliorer la qualité des réponses de ChatGPT en utilisant des préfixes structurés. Ces préfixes, comme /ELI5 pour des explications simples, /FORMAT AS pour imposer un format spécifique, ou /CHECKLIST pour des listes à cocher, permettent de guider l'IA vers des réponses plus précises et mieux structurées. D'autres préfixes comme /SWOT ou /CHAIN OF THOUGHT poussent l'IA à approfondir sa réflexion et à détailler son raisonnement. L'article souligne l'importance d'expérimenter pour trouver les formulations les plus efficaces selon le contexte et la complexité de la question.
La page présente un texte de Linus Torvalds, créateur de Linux, qui explique sa fascination pour la programmation. Il décrit ce domaine comme un jeu captivant où l'on peut créer son propre monde, combinant art et ingénierie, et où la seule limite est la capacité de la machine et celle du programmeur. Torvalds compare la programmation à la physique et aux mathématiques, soulignant que c'est un exercice de créativité où l'on peut établir ses propres règles, à condition qu'elles soient cohérentes. Il met en avant la beauté et la satisfaction de créer des systèmes sans défauts, tout en explorant les possibilités offertes par les ordinateurs.
Cet article explique comment interagir avec les Web Components dans vos scripts, en tenant compte de leur encapsulation via le shadow DOM. Les Web Components, de plus en plus populaires, permettent de créer des éléments réutilisables et agnostiques des frameworks. Cependant, leur isolation complique l'accès à leur contenu depuis des scripts externes. L'auteur détaille comment identifier les Web Components, accéder à leur shadow DOM (en mode open) et parcourir leur contenu pour interagir avec des éléments comme les champs de formulaire. Une approche essentielle pour les développeurs travaillant avec des bibliothèques ou frameworks utilisant ces composants.
L'article présente l'élément <dialog> en HTML, une solution moderne pour créer des modales et des boîtes de dialogue non modales. Cet article explique comment utiliser cet élément natif du navigateur pour simplifier le code et réduire les dépendances. Il couvre l'ouverture et la fermeture des dialogues, ainsi que des fonctionnalités avancées comme la fermeture légère (light dismissal) et la gestion des événements de fermeture.
Cet article met en lumière les lacunes des études de cas souvent utilisées pour démontrer l'impact de la performance web sur les revenus. Il souligne que ces études, bien que populaires, sont souvent biaisées, incomplètes ou mal contextualisées, ce qui nuit à la crédibilité de l'industrie. Il prend comme exemples l'étude d'Amazon sur la perte de revenus de 1% pour 100ms de retard (données obsolètes, manque de contexte) et l'étude de Rossignol (variables confondantes). L'auteur encourage à être critique face à ces études et à privilégier des données solides et contextuelles pour convaincre les parties prenantes.