Shop now Shop now Shop now Shop now Shop now Hier klicken Jetzt informieren PR CR0917 Cloud Drive Photos Learn More Mehr dazu Mehr dazu Hier Klicken Jetzt bestellen AmazonMusicUnlimitedFamily BundesligaLive longSSs17

Kundenrezension

am 15. März 2011
Um sich einen Überblick über Groovy zu verschaffen ist dieses Buch perfekt, denn es vermittelt die allermeisten Grundlagen, um sofort mit der Script-Sprache starten zu können - aber auch nicht mehr! Dieses Buch geht nicht in die Tiefe, sondern in die Breite, d.h. es werden viele Themen angerissen, damit man einen schnellen Überblick erhält, was mit Groovy alles machbar ist.
Einen wirklich sehr unterhaltsamen Einblick erhält man in Kapitel 3 - "Groovy for the Java Eyes". Einige Konzepte finde ich äußerst interessant, mit anderen dagegen bin ich weniger einverstanden, z.B. halte ich es nicht für sinnvoll, auf das Keyword return zu verzichten, da dies im Code für mehr Klarheit sorgt. Auch der Einsatz von def ist mitsamt der ganzen dynamischen Typisierung für Java-Entwickler zunächst etwas ungewohnt, entfaltet mit der Zeit aber durchaus seine Vorteile.
Danach folgen Closures, die ein faszinierendes Konzept darstellen, welches manchmal auch mit Vorsicht zu genießen ist. Speziell in diesem Kapitel habe ich ein Closures-Beispiel mit ein wenig Skepsis betrachtet. Dieses erinnerte mich nämlich an die vielen konstruierten Lehrbuchbeispiele aus den Design-Patterns-Büchern, die in der Theorie oftmals sehr beeindruckend aussehen, in die Praxis dann aber nicht ganz so einfach umsetzbar sind.
In diesen Beispielen (sowohl in den Design-Patterns-Büchern als auch bei den Closures) wird eine generische Klasse zur Laufzeit mit dynamischem Code versehen, wodurch die generische Klasse den Anschein erweckt, als hätte sie ihren Typ geändert. In den Lehrbuchbeispielen sieht das immer total cool aus, und als Entwickler denkt man sich: Das verwende ich in meinem nächsten Programm ebenfalls! Aber in der Praxis habe ich dann meistens das Problem, daß es bei mehreren Anwendungsfällen einfach nicht mehr ausreicht, der generischen Klasse an nur einer Stelle dynamischen Code zu "injizieren". Beim ersten Anwendungsfall klappt das noch super, beim zweiten Use-Case würde man schon an zwei Stellen was ändern, und beim dritten Fall müßte man dann schließlich noch neue Instanzvariablen benötigen und die eine oder andere Hilfsmethode einfügen, und schon sitzt man mittendrin im Schlamassel, denn ab jetzt wird es immer schwieriger, die Generizität der Klasse aufrechtzuerhalten, und man fängt an, die Klassenstruktur hoffnungslos zu verbiegen, bis man irgendwann selber nicht mehr durchblickt. Wartbar ist das Ganze dann kaum noch.
Darum gehe ich lieber dazu über, die generische Methode nicht generisch zu machen, sondern einfach so oft zu implementieren, wie ich Anwendungsfälle habe. Das ist zwar kein schönes Design, ich habe Code-Redundanzen und verstoße auch noch gegen das DRY-Prinzip (wenn das nur mal nicht mein Chef spitz kriegt), aber ich habe zumindestens einen wartbaren und leicht änderbaren Code, dessen Methoden sich definitiv nicht in die Quere kommen. Ändere ich einen der Anwendungsfälle ab, dann muß ich mir kein Kopfzerbrechen darüber machen, daß ich die anderen Anwendungsfälle dadurch in den Wind schieße. Das ist wirklich kein schönes Design, aber es läuft stabil und robust im Praxiseinsatz (sogar, wenn ich im Urlaub bin). Nichtsdestotrotz finde ich Closures genial, aber man muß sie mit Bedacht einsetzen. In dem Buch findet man noch den Ratschlag, Closures nicht länger als ein paar Zeilen zu machen. Das klingt sinnvoll. Daß Closures ziemlich am Anfang behandelt werden ist beabsichtigt, denn im weiteren Verlauf des Buches wird fast in jedem Kapitel mit Closures gearbeitet.
Es folgen angenehm zu lesende und leicht verständliche Abschnitte zur String-Verarbeitung unter Groovy, dem richtigen Umgang mit Collections, den Groovy-spezifischen Erweiterungen zu java.lang.Object, wie man XML-Dateien erzeugt bzw. parsed sowie der Arbeit mit Datenbanken. All dies ist absolut essentielles und unverzichtbares Wissen für jeden Groovy-Novizen.
Im dritten Teil des Buches geht es dagegen um ein sehr fortgeschrittenes Thema, denn es wird gezeigt, wie man zur Laufzeit den Quellcode seines Groovy-Scriptes ändern kann. Java-Reflection kann dagegen einpacken! Groovys Meta-Object Protokoll ist ziemlich mächtig, aber für Anfänger zunächst mal eher weniger geeignet. Der Schluß des Buches verliert sich leider in einer äußerst oberflächlichen Betrachtung von Groovy-Buildern und Domain-Specific Languages (DSLs). Das hat mir nicht mehr viel gebracht.
Wie schon am Beginn meiner Rezension erwähnt, ist dies eine Einführung in Groovy, mehr aber auch nicht. Für den Einsteiger ist das Buch erste Sahne, aber wer tiefer einsteigen will, muß entweder die offizielle Groovy-Doku downloaden oder das Buch von Dierk König kaufen. Ich für meinen Teil entscheide mich für das König-Buch und warte nur noch auf die Second Edition. Alles in allem ist "Programming Groovy" eine leichte Lektüre, die viel Spaß beim Lesen macht und die Lust am Programmieren weckt.
0Kommentar| 3 Personen fanden diese Informationen hilfreich. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden| Permalink
Was ist das?

Was sind Produktlinks?

Im Text Ihrer Bewertung können Sie mit einem Link direkt zu einem beliebigen auf Amazon.com angebotenen Produkt leiten. Befolgen Sie diese Schritte, um einen Produktlink einzufügen:
1. Das Produkt, zu dem der Link führen soll, auf Amazon.com suchen
2. Internetadresse des Produkts kopieren
3. Klicken Produktlink einfügen
4. Die Internetadresse in das Kästchen einfügen
5. Klicken Auswählen
6. Wenn Sie den angezeigten Artikel auswählen, erscheint ein Text wie dieser: [[ASIN:014312854XHamlet (The Pelican Shakespeare)]]
7. Sobald Ihre Bewertung auf Amazon.com erscheint, wird dieser Text in einen solchen Hyperlink umgewandelt:Hamlet (The Pelican Shakespeare)

Ihre Bewertung ist auf 10 Produktlinks beschränkt, und der Linktext darf maximal 256 Zeichen betragen.