Lea Verou aborde dans cet article les problèmes de gestion des dépendances sur le web, soulignant que contrairement à d'autres écosystèmes comme NodeJS ou Python, le web a externalisé cette fonctionnalité fondamentale à des outils tiers comme les bundlers (Webpack, rollup, etc.). Elle explique que la gestion des dépendances devrait être une fonctionnalité native de la plateforme, simple et intuitive, plutôt qu'une tâche complexe nécessitant des outils avancés. Verou discute des solutions potentielles, comme les import maps, et plaide pour une amélioration de l'architecture web afin de rendre les dépendances aussi faciles à gérer que dans d'autres environnements de développement.
L'article explore les risques liés à l'utilisation de contenus tiers (third parties) sur les sites web, notamment les points de défaillance uniques (SPOFs). Il explique comment ces dépendances externes peuvent ralentir un site bien optimisé et causer des interruptions de service, même pour les sites n'utilisant pas directement le fournisseur défaillant. L'auteur illustre ses propos avec des exemples concrets comme les boutons "J'aime" de Facebook en 2012, la fermeture de RawGit en 2018, et les récentes pannes de grands CDN. Il propose également des solutions pour tester et atténuer ces risques, en s'appuyant sur des données de l'HTTP Archive et du RUM Archive.
Anton Zaides remet en question cinq dogmes courants en ingénierie logicielle dans un article intitulé "5 engineering dogmas it's time to retire". Il aborde des pratiques comme "ne pas réinventer la roue" en utilisant des packages existants, l'obligation de revue de code pour chaque changement, les sprints de 2-4 semaines, l'utilisation systématique de feature flags et la croyance que le code nécessitant des commentaires est trop complexe. Zaides explore les avantages et inconvénients de ces pratiques, en soulignant les risques de dépendances externes, les lenteurs des revues de code obligatoires et les alternatives comme le pair programming. Il encourage une réflexion critique sur ces normes établies.
dependency-cruiser est un outil open source qui permet de valider et visualiser les dépendances dans les projets JavaScript, TypeScript, CoffeeScript ou LiveScript. Il analyse les dépendances selon des règles personnalisables, détecte les violations (comme les dépendances circulaires ou manquantes), et génère des rapports sous forme de texte, graphiques (dot, mermaid, SVG), HTML ou CSV. Idéal pour intégrer dans un pipeline CI/CD, il s’installe via npm/yarn/pnpm et se configure facilement avec npx depcruise --init. Il offre aussi des visualisations claires pour mieux comprendre l’architecture de son code.
Suite de la série sur systemd - l'auteur explore la gestion des dépendances
Un concurrent de dependabot ?
Construire une PWA avec le minimum de dépendances