14.05.2018

Rezension: Java by Comparison - Simon Harrer, Jörg Lenhard, Linus Dietz

Java by Comparison, 1. Auflage
Become a Java Craftman in 70 Examples
Simon Harrer, Jörg Lenhard, Linus Dietz
Verlag: The Pragmatic Programmers
Veröffentlicht: 20. April 2018
Seiten: 174
ISBN: 978-1680502879

Man fragt sich natürlich erstmal warum es ein weiteres Buch gibt, welches einem Java beibringen möchte. Allerdings wird das spätestens nach dem Vorwort und der Einführung klar. Die drei Autoren haben 5 Jahre lang einen Einführungskurs in die Programmierung mit Java an der Uni veranstaltet und unzählige Codebeispiele/Lösungen von Studenten gesehen haben und dadurch einen extrem guten Überblick bekommen, wie man etwas nicht macht.
In dem Buch haben die drei Autoren nun 70 Beispiele/Muster/Regeln beschrieben, die immer wieder in den abgegebenen Lösungen vorkamen, aber unschön sind.
In dem Buch sind die Beispiele so organisiert, dass auf einer Doppelseite genau ein Beispiel erklärt wird. Als erstes wird auf der linken Buchseite Code gezeigt, der nicht in Ordung ist und beschrieben was das Problem ist. Anschliessend wird auf der rechten Buchseite eine gute Lösung gezeigt und ausführlich beschrieben, was daran besser ist und auf was man achten muss, um eine solche Lösung zu finden.
Viele Tipps und Hinweise findet man natürlich auch in anderen Büchern, wie Clean Code von Robert C.Martin oder Refactoring von Martin Fowler, aber mir hat an dem Buch die kompakte Darstellung gefallen und dass jedes Beispiel mit einen einprägsamen Merksatz versehen ist und es dadurch einfach ist, sich die Hinweise zu merken und selbst beim Programmieren anzuwenden. Und natürlich lernt man nebenbei auch die Syntax von Java 8 kennen, wobei die Hinweise aber auch für andere Programmiersprachen gelten.
Beim Lesen wird man wird man daran erinnert, dass die Java-API sehr mächtig ist und man das Rad nicht neu erfinden sollte oder sofort Libraries einbinden muss, sondern die vorhandenen Funktionalitäten benutzen sollte.
Selbst, wenn man schon sehr lange in Java programmiert, lernt man noch neues und vergessenes wird einem wieder vor Augen geführt.
Nach und bei der Lektüre des Buches ist man ständig in der Versuchung Quellcode, den man vor Kurzem geschrieben hat zu überprüfen und ggf. zu korrigieren.
Im Einzelnen wird beispielsweise auf folgende Themen eingegangen: Vereinfachung von logischen Auadrücken, richtige Benutzung von Kommentaren, Benamung von von Variablen und Methoden, Exception-Handling, Strukturierung von Unit-Tests, Aufbau von Objekten und Methoden. Im 8. Kapitel geht es dann um die Besonderheiten von Java 8 und es werden auch Konzepte der funktionalen Programmierung einbezogen.
Dieses Kapitel enthält eine Reihe von Beispielen und Hinweisen zur Benutzung der Streaming API und Lambdas, die dafür sorgen, dass man die gröbsten Fehler vermeiden kann.
Wer die Streaming API das erste mal benutzt wird wahrscheinlich in der Lage sein ein Programm zu erstellen, welche funktioniert, aber er wird die API sicherlich nicht richtig benutzen, weil viele Funktionen, die die IDE vorschlägt, sehr verlockend sind, aber auf lange Sicht Probleme verursachen oder einfach langsam sind.
Im 9. und letzen Kapitel gibt es abschließend noch einige Hinweise was in der Praxis zu beachten ist und welche Tools zur Codeanalyse existieren.

Aus meiner Sicht ist das Buch auf alle Fälle eine Leseempfehlung.

Wer sehen möchte, wie die Rezepte genau aufgebaut sind und sich auch für Probekapitel interessiert, dem sein die Webseite zum Buch Java by Comparison empfohlen.