Skip to content

En JavaScript, il y a un paquet pour tout... et souvent pour rien. #40

@Barbapapazes

Description

@Barbapapazes

En JavaScript, il y a un paquet pour tout... et souvent pour rien.

À propos du talk

Le petit module is-number totalise chaque semaine plus de 70 millions de téléchargements, tandis que des géants comme react plafonnent à seulement 25 millions. Surprenant, non ?

Mais ce raz-de-marée de dépendances dépassées n’est pas une fatalité. Un groupe de développeurs déterminés, connu sous le nom de e18e (Ecosystem Performance), s'est donné pour mission de rénover l’écosystème JavaScript : un paquet à la fois. Leur objectif ? Nettoyer, accélérer et optimiser l'écosystème JavaScript tout en aidant la communauté à réduire les dépendances inutiles.

Le plus incroyable, c’est que toi aussi, tu peux contribuer à ce changement ! Que ce soit au sein de tes bibliothèques ou directement dans tes applications web, tu peux intégrer ces bonnes pratiques sans effort. Pour t’y aider, l’équipe e18e et la communauté ont conçu une panoplie d’outils performants et accessibles :

  • Règles ESLint pour améliorer et maintenir un code propre et performant.
  • Plugins Vite pour optimiser ton code
  • Outils pour CI/CD pour conserver les bonnes pratiques sur la durée

Viens découvrir comment améliorer tes pipelines, réduire la taille de tes builds, simplifier la maintenance de tes projets, et même limiter la surface d’attaque de ton application. Rejoins-nous pour explorer comment rendre JavaScript plus propre, plus rapide et plus sûr !

Contenu

Bonjour 👋,

Cette intervention plonge au cœur du concept d’Ecosystem Performance (e18e.dev) et met en lumière les coûts souvent négligés de l'ajout de dépendances à nos projets.

Il est si simple de taper npm install <anything> et de passer à autre chose… Mais chaque dépendance a son lot de coûts cachés : taille d’installation, ralentissement des pipelines CI/CD, maintenance fastidieuse lors des mises à jour, et parfois des risques de sécurité pour l’application.

Malheureusement, nous négligeons souvent d’auditer ou d’inspecter les dépendances que nous ajoutons. Ce qui peut sembler être un gain de temps sur le moment peut en réalité générer des coûts bien plus importants à long terme. Heureusement, un nouveau mouvement émerge pour rendre l’écosystème JavaScript plus propre, plus rapide et plus durable. Porté par la communauté, ce mouvement s’appuie sur des guides, des outils et des paquets alternatifs pour nous aider à repenser notre utilisation des dépendances.

L’objectif de cette intervention est double :

  1. Montrer comment, en seulement 15 minutes, il est possible d’améliorer la qualité de son projet (qu’il s’agisse d’un paquet ou d’une application) et de maintenir cette qualité sur le long terme grâce aux outils proposés par la communauté.
  2. Sensibiliser aux impacts de l’ajout de dépendances : pour que, la prochaine fois qu’une nouvelle dépendance sera envisagée, elle soit choisie et validée en toute connaissance de cause, avec une approche réfléchie et durable.

Pour soutenir cette intervention, quelques slides seront préparées pour présenter le mouvement, mais le cœur de la présentation sera basé sur du live coding.

En amont, j’aurai préparé un projet truffé de tout ce qu’il ne faut pas faire : installation de vieux paquets, utilisation de barrel files, code mort ou dépassé, etc. Pendant la présentation, je démontrerai comment identifier ces problèmes, comment y remédier efficacement, et comment mettre en place des solutions durables pour éviter qu’ils ne se reproduisent.

Voici un aperçu des points que je couvrirai :

  • Utilisation d’outils comme npmgraph ou pkgsize pour analyser les dépendances, comprendre leur structure et identifier leurs éventuels effets secondaires indésirables.
  • Explications de règles ESLint pour détecter et prévenir certains problèmes dès la phase de développement.
  • Présentation d’écosystèmes comme UnJS et Tinylibs pour remplacer des paquets obsolètes ou trop lourds par des alternatives modernes et optimisées.

https://talks.soubiran.dev/2025-04-18/devoxxfr/1

Durée :

  • 5 minutes (Lightning talk)
  • 15 minutes
  • 20 minutes
  • 30 minutes
  • Précisez :

Niveau :

  • Débutant
  • Intermédiaire
  • Avancé

À propos de vous

  • Nom et prénom : Soubiran Estéban
  • Twitter : https://x.com/soubiran_
  • Souhaitez-vous présenter ce sujet lors d'un prochain meet-up ? Oui

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions