In Zeiten von JavaEE 8 und JavaSE 12 mag der eine oder andere witzeln, dass ich wohl mit dem Buch etwas spät dran bin. Tatsächlich wurde mir aber „Workshop Java EE 7: Ein praktischer Einstieg in die Java Enterprise Edition mit dem Web Profile“ von Marcus Schießer und Martin Schmollinger empfohlen um JavaEE zu verstehen bzw Wissenslücken zu stopfen. Ich habe mir JavaEE nach dem Motto learning by doing vermittelt und wende es seit Jahren an. Aber in großen Abständen passiert es doch mal wieder, dass man etwas aufschnappt und sich wundert: „das hätte ich auch anders machen können“. Nochmal back to the roots zu gehen und solche Wissenslücken zu stopfen erschien mir letztes Jahr sehr passend. Den für mich weniger relevanten Teil führte ich mir Anfang diesen Jahres zu Gemüte – aus dem Drang nach einem „Abschluss“. Da mir das Thema nicht sehr aktuell vorkommt, habe ich mich sehr lange davor gedrückt eine Besprechung zu schreiben. Neulich unterhielt ich mich aber mit Kollegen und stellte fest, dass sehr sehr viele das Buch irgendwann mal gelesen haben. Ist es ein quasi-Standardwerk? Vielleicht ist es gar nicht so uninteressant: War es nun DAS Buch um Wissenslücken zu JavaEE zu stopfen?
Was ist schon eine Versionsnummer …?
Naja, so ganz irrelevant ist es nicht. 🙂 Wer schon mal die Transition von AngularJS zu Angular 2 und Nachfolgern mitmachen musste, kann ein Lied davon singen. Tatsächlich spielt es hier aber keine wahnsinnig große Rolle. Es geht ja auch nicht um die Standard Edition, die inzwischen bei 12 angelangt ist, wobei die meisten Firmen noch auf dem kommerziellen Release 8 unterwegs sind (denke ich jedenfalls). Kernaspekt des Buches ist der Rundumschlag „von oben nach unten“. D.h. es leitet den Leser dabei an eine Anwendung einmal quer durch alle Schichten zu bauen – von „oben“ (Anwendungs-/Präsentationsschicht aka „User Interface“) bis „unten“ (physische Speicherung: „Datenbank“). Das habe ich in der form tatsächlich selten bei Büchern gesehen. Die meisten, die ich im Laufe der Zeit gelesen habe vermitteln Wissen über eine Technologie, aber machen eher selten den Weg quer durch das OSI-Modell. Und mehr noch: es werden sogar Unit-Tests geschrieben. Das heißt es tut wesentlich mehr als einem etwas über JavaEE 7 zu erzählen. Zum Build wird Maven verwendet, clientseitig HTML5 und JavaServer Faces, mit JPA wird persistiert, die Datenübertragung wird mittels REST und SOAP gemacht und für die Business Logik wird eben JavaEE 7 verwendet. Als IDE stellt es Eclipse vor und als Applikationsserver WildFly bzw GlassFish. Joar – solide. Dadurch, dass ich mit den meisten der Tools (mal abgesehen von Maven) schon länger mal beruflich gearbeitet habe, konnte ich mich also wirklich auf das Stopfen von Wissenslücken konzentrieren. Wer sich wundert, was man vermissen muss, wenn man sich schon an JavaEE 8 gewöhnt hat – zum Beispiel Lambdas fehlen hier noch. Das Gesamtpaket ist ansonsten auch so schon recht sportlich.
Der Rundumschlag
Das Buch beginnt mit etwas Theorie (aber noch in einem ertragbaren Ausmaß) und der Installation all dessen, was man braucht. Ein paar Alterserscheinungen lassen sich hier nicht verbergen. Mit der Windows PowerShell funktioniert das maven generate nicht, das angegebene maven profile gibt es in der Form auch nicht mehr. Und der Pfad zur standalone.bat stimmt auch nicht (liegt im Ordner /bin). Aber da wurstelt man sich schon irgendwie durch. Docker-Fans lächeln jetzt natürlich müde – schon klar. 😉 Danach wird es angenehmer – JavaEE ist Thema und das „große Ganze“ wird erklärt. Zuerst konzentriert man sich auch darauf. Die Anwendung wird geschrieben und erstmal auf ein mit minimalem Aufwand funktionierendes Gerüst reduziert. Applikationssever, Maven, JavaEE, JavaServer Faces. Unit-Testing und der ganze Persistenz-Unterbau kommen erst später, die UI wird auch gegen Ende erst aufgepeppt. Statt Persistenz in Datenbank wird erstmal mit simplen Mock-Klassen gearbeitet, die die Werte halten. Und was programmieren wir? Etwas für den guten Zweck – eine App, um Spendenkonten und Spenden zu verwalten. Schöne Idee. Die Erklärung lässt nichts vermissen. Es gibt mehrere Abstraktionsformen der jeweiligen Aufgaben des Kapitels. Einerseits eine textuelle Erklärung der implementierenden Funktion, eine textuelle Erklärung der Programmierschritte und sogar den Code selbst. Und wer gar nicht mitkommt oder Kapitel überspringen will, findet den Code auch auf Github. Textuell ist alles gut verständlich, ein Kapitel widmet sich gar der Fachlichkeit, also dem was als Ergebnis erwartet wird (Mut zum Überspringen schadet aber nicht).
JavaEE, Beans, CDI, Wissenslücken?
Nun ist natürlich die Frage: hat das Buch meine Wissenslücken gestopft? Nein. Ich schätze, dass es sich deutlich mehr an Einsteiger richtet, was in dem Vorwort auch so mehr oder weniger direkt steht. Meine Wissenslücken sind wahrscheinlich eine Illusion, daraus geboren, dass man gerne mal vergisst, dass nicht jeder alles wissen kann. Gerade in der Programmierung ist doch letzten Endes stackoverflow oft genug auf der Kurzwahltaste. Mit zwei speziellen Kapiteln, eines zu CDI und eines zu Enterprise Java Beans, vermittelt das Buch eine Vorstellung davon, was Beans sind, wie Java intern funktioniert und wie Dependency Injection gelingt. Aber sehr in die Tiefe geht es nicht. Um Seite 291 heißt es gar in etwa, dass die Unterschiede zwischen CDI- und EJB-Beans auf ein „der Einfachheit halber unterscheiden wir sie nur an der Annotation“. Das fand ich schon recht schade – ein kleiner Exkurs, den Anfänger einfach überspringen könnten, wäre hier meiner Meinung nach angebracht. Kurzum: ich konnte in dem Buch nicht finden, was ich suche. Was ich aber dann gemerkt habe: ich jage offenbar sowieso Einhörner.
Fazit
Dafür, dass auf dem Buch groß JavaEE steht, hätte ich mir zu den Themen Beans und CDI noch ein bisschen mehr Tiefgang gewünscht. Das Wort Workshop auf dem Cover ist aber sein Geld wert. Wer mal eine Anwendung von oben nach unten konsequent durch entwickeln will, wird hier fündig – es wird nichts ausgelassen. Nicht mal die Testung. Das ist schon ziemlich cool. Woran man sich als Web-Frontendler gewöhnen muss ist Java Server Faces. Aus heutiger Sucht gibt es hier heute inzwischen deutlich spannendere Web-Frontends.
Dadurch, dass ich mich recht lange durch das Buch gequält habe und meine Fragen nicht beantwortet wurden, bekomme ich doch inzwischen so meine Zweifel an dem Konzept des IT-Buches. Eine Zeit lang gehörte es ja quasi zum guten Ton ein dickes Java-Buch im Regal stehen zu haben und ein paar andere Buchrücken mit fancy Begriffen. Aber ist das noch so? Wer schlägt wirklich noch da drin nach? Sind IT-Bücher nicht inzwischen mehr Staubfänger, weil man sich eh schnell per Web durchkämpft? Gar auch mal einen Begriff copy pasten kann? Oder Web-Tutorials einen schneller aufschlauen? Oder ist dieser Ansatz der Anfang unserer eigenen Kreativlosigkeit und mindert unsere Fähigkeit zur Lösungsfindung? Kauft ihr noch IT-Bücher?
Netzgeflüster ist eine Kategorie meines Blogs in der ich mich immer zwischen dem 10. und 15. eines jedes Monats Themen aus IT, Forschung, Netzwelt und Internet widme genauso wie Spaß rund um die Arbeit mit Bits und Bytes. 🙂
Schreibe einen Kommentar