0deps-Bewegung: Lokale Abhängigkeiten und unveränderliche Verträge

Softwareentwickler installieren in jedem Projekt oft hunderte externe Bibliotheken. Moderne Frameworks verlassen sich auf Tausende von transitiven Abhängigkeiten. Das bedeutet, dass Ihre Anwendung Code von hunderten unbekannten Mitwirkenden ausführt.

Diese Geschwindigkeit birgt ein massives Risiko für Ihre Software-Lieferkette.

Die 0deps-Bewegung stellt eine einfache Frage: Was wäre, wenn Ihre Anwendung nur Code ausführen würde, den Sie tatsächlich kontrollieren?

Jede Abhängigkeit vergrößert Ihre Angriffsfläche. Sie kann Sicherheitslücken einführen, aufgegeben werden oder Ihren Code durch ein neues Update zerstören. Sie verlieren die Kontrolle über den Code, der in Ihrer Produktionsumgebung läuft.

Im 0deps-Modell bringen Sie alle Abhängigkeiten direkt in Ihr Projekt-Repository. Sie laden sie nicht dynamisch während der Installation herunter. Alles, was zum Bauen und Ausführen Ihrer App benötigt wird, ist bereits vorhanden.

Dieser Ansatz bietet mehrere Vorteile:

  • Reproduzierbare Builds
  • Geringere Abhängigkeit von externen Paket-Registries
  • Zentralisierte Sicherheitsaudits
  • Bessere Vorhersehbarkeit
  • Geringeres Risiko in der Lieferkette

Das Kernprinzip besteht nicht darin, Codeänderungen zu verhindern. Algorithmen und Sicherheitsfixes müssen sich weiterentwickeln. Was stabil bleibt, ist der öffentliche Vertrag (Public Contract).

Jede Bibliothek stellt eine sorgfältig entworfene Schnittstelle bereit.

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

Diese Funktionen definieren einen Vertrag. Dieser Vertrag ändert sich nie. Sie können den zugrunde liegenden Code umschreiben oder die Bibliothek vollständig ersetzen. Der Rest Ihrer Anwendung bleibt gleich, da er nur mit dem Vertrag kommuniziert.

Wenn eine Schwachstelle auftritt, beheben Sie diese intern. Sie aktualisieren die Implementierung hinter der Schnittstelle. Die öffentliche API bleibt identisch. Ihre Anwendung funktioniert weiterhin ohne Codeänderungen.

Diese Struktur verwendet einen internen Adapter, um externen Code zu isolieren: Anwendung ↓ Öffentliche Schnittstelle ↓ Adapter ↓ Implementierung

Wenn eine externe Bibliothek verschwindet, müssen Sie nur den Adapter aktualisieren. Kein anderer Teil Ihrer App geht kaputt.

Die 0deps-Bewegung bekämpft Open Source nicht. Sie verändert die Art und Weise, wie Sie es nutzen. Bibliotheken werden zu integrierten Komponenten, die Sie selbst auditieren und versionieren.

Dies schafft Software, die Jahrzehnte überdauert. Implementierungen ändern sich, aber Ihre Verträge bleiben bestehen. Diese Stabilität macht Ihre Software vorhersehbar und widerstandsfähig.

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