Suche

Modulsysteme, die Entwicklern die Hölle heiß machen: Keynote Nr. 2 auf der W-JAX

Diana Kupfer

Modulsysteme, die nicht auf der Höhe der Zeit sind, können einem die Hölle heiß machen. Wie, das zeigte Yoav Landman in zweiten Keynote auf der W-JAX. Landman ist CTO von der JFrog, der Softwareschmiede hinter dem Repository Manager Artifactory.

Nach einer allgemeinen Klassifizierung von Modulen (in System-, Entwicklungs- Framework- und Anwendungsmodule) trug Landman fünf Lektionen aus seiner Erfahrung mit unterschiedlichen Repositories und Paketverwaltungssystemen vor. Seine Ausführungen waren gespickt mit kurzweiligen Anekdoten, zahlreichen Memen und zuspitzenden Fragen, die manch einen Nerv trafen, etwa: „Warum muss man immer noch Indizes für Maven herunterladen?“ Die Lektion, die er daraus ableitete, lautete: Indiziert werden muss auf der Serverseite, und ein Query-API muss zugänglich gemacht werden.

Landman: „Why do we still have to download indexes for Maven?“

Lektion 2 bezog sich auf die Identität desjenigen, der in einem Repository-System in Erscheinung tritt. Man solle Realnamen verwenden, keine Pseudonyme. „Authenticate by public identity – Give credit to developers“, so Landman.

Lektion 3 ist ein altes Lied: Versionskonflikte vermeiden. In RPM, Ruby oder Groovy etwa sind mehrere Versionen derselben Komponente nicht zulässig. Der Conflict Manager in Maven sorgt für Abhilfe: Ein Konflikt zwischen „v1“ und „v2“ führt dazu, dass v1 wegen des kürzeren Pfads im Classpath landet. Diese Antwort ließ Landman das W-JAX-Publikum durch ein Multiple-Choice-Quizzspiel (s. Bild) erraten. Bei Gradle hingegen sei es schon wesentlich komplizierter, alte Versionen zu entfernen, weswegen Landman dem Buildsystem das Prädikat „not very usable“ verpasste.

Preisfrage: Welche Version wandert in den Klassenpfad?

Bleiben Lektion 4 – „Like Vodka and beer, you should not mix Config & Metadata“ und Lektion 5: „Version dependency isn’t enough“. In einer Kompatibilitäts-Matrix müsse genau angegeben werden, welche Versionen welcher Software miteinander verwendbar sind. Nur so können erfolgreich Abhängigkeiten aufgelöst werden.

Eines ist sicher, so Landmann: Wer in seinen Packaging- und Modulsystemen keine Housekeeping-Disziplin walten lässt und nicht für Übersichtlichkeit und Transparenz sorgt, der wird sich schnell im Dickicht der Abhängigkeiten und Versionsnummern verlieren. Denn Modularität ist ein Trend, der gerade erst an Fahrt gewinnt. Die treibende Kraft dahinter ist, wie so oft, die Cloud.

 

Geschrieben von
Diana Kupfer
Diana Kupfer
Diana Kupfer war Redakteurin bei S&S Media für die Zeitschriften Java Magazin, Eclipse Magazin und das Portal JAXenter. 
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.