Mouvement 0deps : Dépendances locales et contrats immuables

Les développeurs de logiciels installent souvent des centaines de bibliothèques externes dans chaque projet. Les frameworks modernes reposent sur des milliers de dépendances transitives. Cela signifie que votre application exécute du code provenant de centaines de contributeurs inconnus.

Cette rapidité crée un risque massif pour votre chaîne d'approvisionnement logicielle.

Le mouvement 0deps pose une question simple : Et si votre application n'exécutait que du code que vous contrôlez réellement ?

Chaque dépendance augmente votre surface d'attaque. Elle peut introduire des failles de sécurité, être abandonnée ou casser votre code lors d'une nouvelle mise à jour. Vous perdez le contrôle sur le code qui s'exécute dans votre environnement de production.

Dans le modèle 0deps, vous intégrez toutes les dépendances directement dans le dépôt de votre projet. Vous ne les téléchargez pas dynamiquement lors de l'installation. Tout ce qui est nécessaire pour construire et exécuter votre application est déjà présent.

Cette approche offre plusieurs avantages :

  • Des builds reproductibles
  • Moins de dépendance aux registres de paquets externes
  • Des audits de sécurité centralisés
  • Une meilleure prévisibilité
  • Un risque réduit pour la chaîne d'approvisionnement

Le principe fondamental n'est pas d'empêcher le code de changer. Les algorithmes et les correctifs de sécurité doivent évoluer. Ce qui reste stable, c'est le contrat public.

Chaque bibliothèque expose une interface soigneusement conçue.

  • authenticate()
  • createSession()
  • verifyPasskey()

Ces fonctions définissent un contrat. Ce contrat ne change jamais. Vous pouvez réécrire le code sous-jacent ou remplacer entièrement la bibliothèque. Le reste de votre application demeure inchangé car il communique uniquement avec le contrat.

Lorsqu'une vulnérabilité apparaît, vous la corrigez en interne. Vous mettez à jour l'implémentation derrière l'interface. L'API publique reste identique. Votre application continue de fonctionner sans modification de code.

Cette structure utilise un adaptateur interne pour isoler le code externe : Application ↓ Interface publique ↓ Adaptateur ↓ Implémentation

Si une bibliothèque externe disparaît, vous n'avez qu'à mettre à jour l'adaptateur. Aucune autre partie de votre application ne sera affectée.

Le mouvement 0deps ne combat pas l'open source. Il change la manière dont vous l'utilisez. Les bibliothèques deviennent des composants intégrés que vous auditez et versionnez vous-même.

Cela permet de créer des logiciels qui durent des décennies. Les implémentations changent, mais vos contrats restent. Cette stabilité rend votre logiciel prévisible et résilient.

Source: https://dev.to/fullagenticstack/mouvement-0deps-dependances-locales-contrats-immuables-et-securite-par-conception-24c2