Java Puzzlers: Traps, Pitfalls, and Corner Cases


 
Tiefe Auslotung von Javas Randbereichen
• • • •   (bewertet mit 4 von 5 Punkten)

Alle meine Rezensionen ansehen Rezension bezieht sich auf: Java Puzzlers: Traps, Pitfalls, and Corner Cases (Taschenbuch) Auf dem Cover steht "Traps, pitfalls and corner cases", wobei der Schwerpunkt ganz klar auf den Corner-Cases liegt. Eigentlich müßte das Buch "Java Corner Cases" heißen, denn fast alle Puzzles konzentrieren sich auf die Grenzfälle von Java, die meistens nur dann zum Tragen kommen, wenn man sich in seinem Programm dermaßen verkünstelt hat, so daß eine Konstellation eintritt, für die eine von Javas Ausnahmeregeln aus den tiefsten Tiefen der Java-Spezifikation gilt, mit der man im Normalfall eher selten in Berührung kommt. Diese Eckbereiche auszuloten und als Code-Snippets darzustellen ist aus Autorensicht eine beachtliche Leistung, denn dazu muß man schon ein absoluter Experte sein, was bei den beiden Autoren auch definitiv der Fall ist.
Einige dieser Grenzfälle kannte ich bereits aus der Zeit, als ich mich auf den SCJP 1.4 vorbereitet hatte. Damals habe ich mich tagelang damit herumgeschlagen, um die Regeln zu lernen, welche auf die primitiven Datentypen byte, short, float und char sowie auf Bit-Operatoren zutreffen. Spaß hat das überhaupt keinen gemacht, und ich bin dabei mehr als einmal ins Schleudern gekommen, weshalb ich mich nach Abschluß des SCJP 1.4 dafür entschieden habe, diese Artefakte nicht in meinen Programmen zu benützen. Stattdessen verwende ich ausschließlich int, double, String und manchmal auch long, und bin damit auch all die Jahre gut gefahren. Warum soll ich mich mit den Elementen einer Programmiersprache herumärgern, die ein Minenfeld darstellen, und die ich im Grunde genommen gar nicht brauche? Sun hatte damals selbst ein Einsehen und hat deshalb die Objectives für den SCJP 5 + 6 angepaßt, indem die Bit-Operatoren und diverse, ausgefallene Sonderregeln, die fürs Casting von byte, short und float notwendig waren, rausgefallen sind (zumindestens kann ich mich nicht daran erinnern, damit konfrontiert worden zu sein).
Wie dem auch sei, mit den Java-Puzzlers hatte ich ein freudiges Wiedersehen mit diesen alten Bekannten, die mir damals schon schlaflose Nächte vor der Prüfung bereitet hatten. Natürlich sind das nicht die einzigen Schweinereien, die Joshua Bloch und Neil Gafter aus dem Hut zaubern, denn mit Java kann man noch viel mehr schräge Sachen programmieren, die man manchmal lieber nicht alle erfahren hätte. Liest man dieses Buch, entsteht leicht der Eindruck, als ob es ein unglaublich schwieriges Unterfangen sei, mit Java überhaupt irgendwas ans Laufen zu kriegen. Dem ist aber keineswegs so, denn wenn man seine Programme möglichst einfach aufbaut, wird man mit den meisten der Java-Puzzlers nicht konfrontiert werden. Trotzdem ist es für einen langjährigen Java-Entwickler höchst interessant, in die Corner-Cases seiner Lieblingssprache einzutauchen. Einfach ist das aber nicht, denn die Code-Beispiele sind mitunter schwer zu verstehen, und schnell mal in einem Rutsch durchlesen geht hier auf keinen Fall.
Einige der Puzzles empfand ich als lehrreich, manch andere wiederum als eher nutzlos und überkonstruiert. Am meisten lernt man aus den Resümees, die die Autoren aus jedem Puzzle ziehen, und dabei wird immer wieder betont, daß man auf diese Art und Weise AUF GAR KEINEN FALL programmieren sollte. Das Buch enthält sozusagen ein Sammelsurium an Java-Anti-Patterns. Für meine tägliche Praxis habe ich leider nicht ganz soviel Brauchbares erfahren wie erhofft, da ich die meisten hier beschriebenen Praktiken von vorneherein zu vermeiden versuche. Schließlich muß ich meine Software auch Jahre später noch warten und erweitern können, und für Wartungsarbeiten steht einem Entwickler in der Regel immer zu wenig Zeit zur Verfügung. Allein aus diesem Grund habe ich es mir schon seit einigen Jahren angewöhnt, meine Programme möglichst einfach zu schreiben, ohne mich in syntaktischen Spielereien zu verlieren. Die Autoren raten nicht umsonst: Strive for clarity!
Lesenswert ist das Buch aber auf jeden Fall (so wie alle Werke von Joshua Bloch), denn man weiß nach der Lektüre, was man beim Programmieren in Java vermeiden sollte, und daß die ausgefallenste Lösung in den seltensten Fällen die beste Vorgehensweise ist.

Eine Rezension von Ein Kunde
vom 7. Januar 2011
Kundenrezensionen:
3. Hirnverzwirner mit Java
2. Tiefe Auslotung von Javas Randbereichen (die aktuell angezeigte Rezension)
1. Kurzweilige Unterhaltung mit Lerneffekt
Zur Übersicht ...
 
Angebote zu
 ab 1 Euro!

Siehe auch folgende Artikel:
Java Concurrency in PracticeEffective Java: A Programming Language Guide (Ja...
Java Concurrency in Practice
Der Weg zum Java-Profi: Konzepte und Techniken...
The Pragmatic Programmer. From Journeyman to Master
The Clean Coder: A Code of Conduct for Profe...
Clean Code: A Handbook of Agile Software Cra...
Mehr zu  Java,  Sprachen & Tools,  Rätsel & Puzzlespiele
Home ...,    
,    Begleitseite ...
Herausgeber dieser Seite ist DomainLoc.com GmbH - Partner von

Copyright © DomainLoc.com GmbH (Impressum)