Dependency Management
Eine kurze Einführung
Definitionen
Es geht nicht ohne
2 / 122
Dependency
Eine Dependency ist eine externe Komponente für das eigene Projekt, bspw ein Modul/Plugin oder eine Javascript-Bibliothek wie Gutenberg mit einem spezifischen Ziel.
Package
Dependencies sind in Packages definiert. Packages haben einen Namespace, Namen, einen Typ, eine Version, relevante Dateien für die Funktion des Packages und ggf. Dependencies zu anderen Packages.
Package Registry
Eine Package Registry ist ein Verzeichnis für Packages und speichert Metainformationen zu Packages in der Registry.
Dependency Manager
Software welche die Integration von Packages verwaltet
- composer für PHP
- npm / Yarn für Javascript
- bundler (Ruby)
- uvm (Maven, Gradle...)
- Yum / Apt (Fedora, Debian)
WARUM
Dependency Management
Kein Projekt ohne externe Pakete
Manuell externe Komponenten managen (1/2)
- theoretisch machbar, aber zeitaufwändig und wird deshalb oft vernachlässigt
- theoretisch machbar, aber zeitaufwändig und wird deshalb oft vernachlässigt
- Wordpress hat ein Autoupdater
Warum das nur halb so gut ist später...
-
das Projekt ist schon länger in Entwicklung und es gibt kein Budget für Beseitigung von Techdebt
-
es nutzt wenige externe Komponenten
-
die externen Komponenten werden nicht nachträglich angepasst
-
es arbeitet nur eine Person an dem Projekt
Manuell externe Komponenten managen (2/2)
AUSREDEN
“Wir haben das schon immer so gemacht und das klappt wunderbar.”
“Das Projekt habe ich so übernommen, es ist jetzt zu aufwändig, das zu ändern”
"Ich nutze auch keine Versionskontrolle für das Projekt, also ist es egal."
“Das ist mir alles zu kompliziert, ich bin Designer”
Warum sollte ich Dependency Management nutzen?
Mit Hilfe von Dependency Management werden die exakten Versionen der externen Komponenten festgehalten.
Wartungssicherheit und Stabilität
Verbesserte Dev-
Experience
DEMOTIME
Dependency Management Basics
By Cyberschorsch
Dependency Management Basics
- 89