Dipl.-Ing. Peter Ehrenberg [dipe]

Web- und Datenbankanwendungen

Ein Freund hat mich auf Wicket aufmerksam gemacht. Wicket ist ein Java-basierter Web-Applikations-Framework, deren Autoren (immer noch) den Traum komponentenbasierter Software-Architektur träumen. Aus meiner Sicht ein Alptraum.

Wiederverwendbare Software zu schaffen ist eine der ganz schwierigen Aufgaben. Wiederverwendbare high-level Software-Komponenten zu schaffen ist noch schwieriger [1].

Bei der Wiederverwendung einer high-level Komponente sieht oft zuerst alles gut und einfach aus. Aber dann kommen die Details. Immer umfangreichere Teile der Komponente müssen angepasst, also neu implementiert werden. Manchmal ist gar nicht abschätzbar, ob ein gefragtes Feature mit der Komponente überhaupt realisierbar ist - geschweige denn zu welchem Aufwand. Spätestens aber wenn der Upgrade auf ein neues Release der Komponente ansteht, ist der Spaß vorbei.

Im Sinne der agilen Software-Entwicklung ist das Ergebnis jedenfalls schon tot, bevor es ausgerollt wird. Das Ergebnis ist überkomplex und damit kaum wart- und anpassbar. Es enthält Features bei denen nicht bekannt ist, für was und ob sie überhaupt vom Kunden benötigt werden.

Am Ende war der Aufwand für die Anpassungen größer und schmerzvoller, als hätte man die Funktionalität vom scratch implementiert.

Was ist die Alternative? Aus meiner Sicht macht es Rails genau richtig. Statt auf konfigurierbare und wiederverwendbare Komponenten zu setzen, adressiert Rails die Verbesserung der Infrastruktur. Um so einfacher es ist, eine Anwendung vom scratch zu schreiben, um so weniger bedarf es irgendwelcher high-level Komponenten.

Das Ergebnis ist dann eine einfache Anwendung mit wenig, leicht lesbaren Code, die nur solche Features enthält, die der Kunde benötigt. Agile Software eben.

[1]: SOA doomed?

Powered by Mephisto - Valid: xhtml | css
Stoppt die Vorratsdatenspeicherung! Jetzt klicken &handeln! Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien: