Zum Inhalt springen

Abhängigkeit (Dependency)

oder auch Dependency

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 19.10.2026

Eine Abhängigkeit ist fremder Code, ohne den dein Projekt nicht läuft. Jede Bibliothek, die du einbindest, wird zu einer, und sie bringt meist eigene mit.

Abhängigkeit

Fremder Code, auf den ein Projekt angewiesen ist, damit es läuft.
Beispiel: „Das Projekt hat vierzig Abhängigkeiten, von denen wir sieben selbst ausgesucht haben.“

Auch: Dependency.

Abgrenzung zur direkten und zur mittelbaren Abhängigkeit: Direkt ist, was du selbst eingebunden hast. Mittelbar ist, was deine Bibliotheken ihrerseits mitbringen. Die zweite Gruppe ist fast immer die größere.

Warum aus einer vierzig werden

Jede Bibliothek, die du einbindest, bringt ihre eigenen mit, und die wiederum ihre. Aus sieben Einträgen, die jemand bewusst ausgewählt hat, wird so ein Baum mit mehreren hundert Paketen, von denen niemand im Projekt je gehört hat.

So ist das System gebaut. Es heißt aber, dass die Frage „welchen fremden Code führen wir aus“ sich nur noch aus der Werkzeugkiste beantworten lässt und längst nicht mehr aus dem Gedächtnis.

Ein Baum aus drei Ebenen: oben das eigene Projekt, darunter drei direkt eingebundene Pakete, darunter deren eigene Abhängigkeiten, von denen zwei von mehreren Paketen gemeinsam benutzt werden
Sichtbar ausgewählt wird die mittlere Ebene. Die Menge entsteht darunter.

Was die Versionsnummer verspricht

Die meisten Pakete folgen der Semantischen Versionierung mit drei Stellen. Die letzte steigt bei Fehlerbehebungen, die mittlere bei neuen Funktionen, die verträglich bleiben. Die erste steigt laut Regelwerk immer dann, „wenn API-inkompatible Änderungen in die öffentliche API eingeführt werden“.

Eine Versionsnummer ist damit ein Versprechen über Verträglichkeit und kein Datum. Eine Ausnahme nennt das Regelwerk selbst: Bei einer führenden Null „können Änderungen in jeder denkbaren Form und zu jeder Zeit auftreten“. Wer ein Paket in Version 0.x einbindet, bindet etwas Unfertiges ein.

Was daraus für ein Projekt folgt

Abhängigkeiten veralten, auch wenn niemand etwas anfasst. Eine Website, die drei Jahre unberührt läuft, hat drei Jahre Sicherheitsaktualisierungen nicht bekommen. Deshalb gehört die Pflege in den laufenden Betrieb und nicht in den nächsten Relaunch.

Der zweite Punkt betrifft die Auswahl. Jedes Paket, das du dir sparst, musst du später nicht aktualisieren. In unseren über 2.500 Website-Projekten sind die langlebigsten die mit den wenigsten Einträgen in der Paketliste.

Siehe auch:

Bibliothek (Library)

Fertiger Code von anderen, den du in dein Projekt holst, statt die Sache selbst zu schreiben.

#Programmiersprachen

JavaScript

Die Programmiersprache, die in jedem Browser mitläuft und einer Seite Verhalten gibt.

#Programmiersprachen

Kommandozeile (CLI)

Die textbasierte Bedienung eines Rechners über eingetippte Befehle.

#Künstliche Intelligenz (KI) #Programmiersprachen

Programmiersprache

Eine künstliche Sprache mit festen Regeln, in der aufgeschrieben wird, was ein Rechner tun soll.

#Programmiersprachen