Joe Walnes, Ara Abrahamian, Mike Cannon-Brookes, Pat Lightbody:

Java Open Source Programming

With XDoclet, JUnit, WebWork, Hibernate

Spannendes und wertvolles Buch – leider stellenweise nicht ganz aktuell!

Von Tobias Lütticke

Komplexität von Projekten mit freien Werkzeugen beherrschbar machen

Java Open Source Programming setzt bei einer Fragestellung an, mit der sich sicher schon viele J2EE-Entwickler beschäftigt haben: Warum ist das alles so aufwendig und dauert so lange? Während man sich mit der Vielschichtigkeit des Technologiekomplexes J2EE wohl abfinden muss, gibt es jedoch keinen Grund, sich das Leben unnötig schwer zu machen. Für Erleichterung sorgen eine Vielzahl an freien Projekten in Form von Bibliotheken, Werkzeugen und Frameworks, so dass das Rad nicht mehr neu erfunden werden muss. Die Autoren sind alle wesentliche Mitarbeiter namhafter Open Source Projekte, etwa von XDoclet. Dieser Hintergrund ermöglicht es ihnen, die Praxiserfahrung in Empfehlungen umzusetzen und den Leser davon direkt profitieren zu lassen.

Wissenswertes für Entwickler und Entscheider

Das Buch besteht aus drei großen Teilen: Der allgemeinen Einführung, dem Aufbau eines Open Source Werkzeugkastens mit Vorstellung der einzelnen Komponenten und zum Abschluss der Anwendungsentwicklung. Während der erste Teil nur ins Thema einführt, teilen sich die beiden anderen zu gleichen Teilen den Rest der insgesamt gut 450 Seiten. Mit diesem Inhalt richtet sich „Java Open Source Programming“ sowohl an Java-Entwickler mit etwas Erfahrung, als auch an Projektverantwortliche. Die Entwickler haben in ihrer tagtäglichen Arbeit mit den Herausforderungen zu kämpfen, die hier thematisiert werden. Die Arbeit kann für den programmierenden Leser so produktiver sowie ärmer an Fehlern werden und nicht zuletzt auch mehr Spaß machen: Für etliche stumpfsinnige und fehlerträchtige Aufgaben gibt es Hilfsmittel, um sie angenehmer zu gestalten. Der Projektleiter wiederum – aber nicht nur er – ist an Effizienz, einer robusten und tragfähigen Projektinfrastruktur, sowie einem qualitativ hochwertigen Software-Produkt interessiert. Zum Erreichen all dieser Ziele können die im Buch vorgestellten Mittel beitragen. Auch wenn sie nicht auf alle Probleme passen oder für jeden anwendbar sind, so eignen sie sich doch für eine erstaunliche Vielzahl an (Java-)Software-Projekten, da sie auf grundlegende Notwendigkeiten abzielen. Wer sich beim Lesen der Einführung dabei ertappt, mit dem Kopf zu nicken oder mehr als einmal „Ja, das stimmt“ zu denken, der sollte weiterlesen.

Open Source Werkzeugkasten aus JUnit, Hibernate, WebWork, Lucene und anderen

In Teil zwei des Buches – dem Open Source Werkzeugkasten – beschäftigen sich die ersten beiden Kapitel mit dem Thema Unit-Tests und ihrem Zusammenspiel mit Mock Objects. Das folgende Kapitel stellt das Persistenz-Framework Hibernate vor, ein beliebtes und weit verbreitetes Werkzeug, um die Lücke zwischen relationaler Datenbank objektorientierter Darstellung zu füllen (O/R Mapper). Es schließen sich Kapitel zu WebWork, SiteMesh, Lucene und XDoclet an. WebWork ist ein Framework zur Entwicklung von Web-Anwendungen nach dem Model-View-Controller Prinzip. SiteMesh dient dazu, Seiten (JSP oder HTML) leicht ein einheitliches Look-and-Feel zu verleihen und auch fremde Komponenten in das eigene Design eingliedern zu können. Mit Hilfe von Lucene läßt sich eine Volltextsuche in Anwendungen integrieren, um so zum Beispiel eine Google-ähnliche Schnittstelle zu erhalten. XDoclet wiederum generiert Klassen und andere Komponenten wie Deployment Deskriptoren anhand von Java-Doc ähnlichen Tags im Quellcode. Die beiden letzten Kapitel decken verschiedene Programme aus den Bereichen Kommunikation im Team und Zeitersparnis ab. Letzteres beinhaltet sowohl die Aspekte Performance (Laufzeitverhalten) als auch Effizienz in der Entwicklung.

Web-Anwendungen in der Praxis: Methoden und Tools

Der dritte Teil des Buches besteht aus neun Kapiteln, von grundlegenden Entscheidungen zur Projektinfrastruktur über Automatisierung von Tests, Lebenszyklus und Abhängigkeiten von Komponenten bis hin zur Integration von Maßnahmen zur Sicherheit. Während die ersten Kapitel noch allgemeiner Natur sind, werden sie im folgenden spezieller und beziehen sich auf die im ersten Teil des Buches vorgestellten Werkzeuge. Die einzelnen Abschnitte führen schrittweise durch den Entwurf und die Implementierung eines Web-Anwendungsgerüsts. Dabei setzen sie die Kernprojekte wie WebWork, Lucene und Hibernate ein. Der Aufbau der Webanwendung geschieht mit einer Vielzahl an Code-Beispielen, anhand derer die Nutzung der Werkzeuge und Frameworks demonstriert wird. Diese Abschnitte profitieren vom Know-How der Autoren und vermitteln einiges an bewährter Vorgehensweise und Best-Practices zum Thema Anwendungsentwurf.

Mehr als nur die Präsentation von Standardprojekten

Ein wichtiger Aspekt des dritten Teils von Java Open Source Programming wird leider im Titel des Buches verschwiegen. Der Fokus scheint auf den Open Source Projekten allein zu liegen, dabei beschäftigen sich aber etliche Abschnitte des Buches nicht mit den großen und bekannten Open Source Projekten. Schade das eventuell ein falscher Eindruck entsteht, der allgemeine Teil braucht sich nämlich keinesfalls zu verstecken und ist interessant zu lesen. Aus den Ausführungen zum Anwendungsentwurf kann sicher jeder etwas mitnehmen und wenn es nur die Bestätigung ist, nichts falsch gemacht zu haben.

Leider nicht immer die aktuellsten Versionen betrachtet

Den insgesamt guten Eindruck trübt die Tatsache, dass die Projekte in den beschriebenen Versionen nicht mehr ganz taufrisch sind. Während das bei einigen keine größere Rolle spielt, so hat sich etwa bei Hibernate und Xddoclet einiges getan. Man kann dies vernachlässigen, da es in erster Linie um das Kennenlernen der Projekte und ihrer Fähigkeiten geht. Es soll kein allzu tiefer Einstieg in die Projektdetails gegeben werden, sondern vielmehr ein Einblick in die Möglichkeiten, Anwendungsgebiete und die Strukturen. Ziel ist es, entscheiden zu können, ob die Werkzeuge in eigenen Projekten sinnvoll einsetzbar sind und wie ihr Leistungsumfang ist. Bei den konkreten Anwendungsbeispielen wird es dann allerdings ärgerlich, wenn die Ausführungen im Buch nicht mehr mit der Realität übereinstimmen. Seltsam mutet an, dass noch der Einsatz von CVS zur Versionsverwaltung propagiert wird. CVS ist sicher nicht mehr Stand der Technik, auch zum Erscheinungstermin des Buches nicht. Es wurde längst vom ebenfalls weit verbreiteten und bewährten Subversion abgelöst.

Selektive Auswahl der Werkzeuge

Die Auswahl der vorgestellten Projekte und Werkzeuge ist für den Leser mehr oder weniger willkürlich: Sie orientiert sich am Wissen der Autoren. Letztere stellen die Projekte vor, in denen sie mitarbeiten und die sie deswegen gut kennen. Für einen systematischen Open Source Einsatz in Projekten ist sicherlich ein weitergefassterer Blickwinkel nötig, der auch Hilfsmittel wie etwa Maven in die Betrachtung mit einbezieht. Insbesondere im Kapitel, dass sich mit der Infrastruktur für Software-Entwicklungsprojekte beschäftigt, sollte Maven als Ersatz von Ant und de facto Standard Erwähnung finden, mindestens aber als weitergehende Möglichkeit. Neue Projekte heutzutage mit Ant alleine zu starten ist sicher die falsche Entscheidung. Das Buch will nicht repräsentativ sein, sondern nur einige Beispiele aus dem Open Source Bereich vorstellen, mit deren Einsatz sich in Projekten schon einiges erreichen lässt. Der Leser hat es also mit einer Verschmelzung verschiedener Projekte zu tun. Das ist in Ordnung, aber dann ist der Titel etwas irreführend. Warum Jira zum Issue & Task Management vorgestellt wird, bleibt fraglich. Einer der Autoren ist zwar Chef der Herstellerfirma und es handelt sich ohne Zweifel um ein etabliertes und gutes Werkzeug, es ist aber nicht Open Source und nicht frei verwendbar. Erwähnung finden an dieser Stelle andere auch existierende gute Systeme wie zum Beispiel Scarab nicht.

Struktur setzt Erfahrung und Basiswissen voraus

Vom Aufbau her hätte man auch das Kapitel über die Infrastruktur und die Entwicklungsgrundlagen vor die Vorstellung konkreter Projekte setzen können. Der gewählte Ansatz setzt beim Leser einiges an Erfahrung voraus, wenn dieser nicht das Buch von hinten nach vorne lesen soll. Die Anforderungen an ein Software-Entwicklungsprojekt, sowohl was die technischen, als auch die methodischen Aspekte angeht, stellen die Autoren erst im zweiten Teil des Buches vor. Die Lösung zuerst zu beschreiben und anschließend auf die Probleme und Herausforderungen einzugehen ist etwas ungewöhnlich. Die klare Gliederung ermöglicht es aber auch, einzelne Teile oder Bereiche für sich zu lesen. Das punktuelle Nachschlagen oder Vertiefen von Wissen bestimmter Bereiche ist immer noch ohne weiteres möglich. Die Kapitel sind in sich geschlossen, was beim Nachlesen hilft. Außerdem sind alle Erklärungen mit Beispielen illustriert.

(Rezensiert am: 2005-12-01)

Joe Walnes, Ara Abrahamian, Mike Cannon-Brookes, Pat Lightbody: Java Open Source Programming. With XDoclet, JUnit, WebWork, Hibernate, Wiley, 2004, ISBN-13: 9780471463627, 39.50 €


BuchTest Services



Bookmark and Share


powered by eurobuch.com

Politik | Länder & Kulturen | Job & Karriere | Mensch & Leben | Philosophie |



© Copyright Buchtest.com Impressum Kontakt Buchtest.com Buchkritiken und Buchrezensionen Online

Buchkritiken | Rezensionen | Besprechungen | Autoren-Interviews

World Wide Web BuchTest

Startseite | Redaktion | Blog | Links | Kontakt
Hier könnte Ihre Werbung stehen.

BuchTest.de ist ein anspruchsvolles Online-Medium mit mehreren Tausend Lesern monatlich. Unsere Zielgruppe sind gebildete Menschen im besten Alter.

BuchTest.de erscheint in der Regel bei allen besprochenen Büchern unter den ersten drei bis fünf Suchergebnissen bei Google. Der hohe PageRank und der umfangreiche Traffic von BuchTest bringt Ihrer Webseite den richtigen Push.

Kontaktieren Sie uns jetzt für günstige Werbung: info@buchtest.de