Java by Comparison
Auf dem Weg vom Junior- zum Senior-Entwickler stehen Programmierer häufig vor der Frage wie besserer Code aussehen kann. Die beispielhaften Vergleiche von Harrer, Lenhard und Dietz helfen bei der Entscheidungsfindung.
![Java by Comparison](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/4/5/1/5/2/2/Espressomaschine_doppelte-a0f960f21e8702d3.jpeg)
- Michael Müller
Simon Harrer, Jörg Lenhard, Linus Dietz
Java by Comparison – Become a Java Craftsman in 70 Examples
Pragmatic Bookshelf 2018
XXIII + 174, € 28,89
ISBN: 978-1-68050-287-9
Wer mit der Softwareentwicklung beginnt, findet häufig Lösungen, die einfach erscheinen und doch alles andere als optimal sind. Mal geraten Methoden zu lang, mal lösen sie viele Probleme auf einmal oder sind kaum an ihrem Namen zu erkennen. Mit der Erfahrung ändert sich dann der Programmierstil. Methoden erledigen eine Aufgabe in Kürze, mit sprechendem Namen. Eine Folge von Statements wird durch einen Aufruf einer Bibliotheksfunktion ersetzt und so weiter. Die Autoren haben in zahlreichen Lehrveranstaltungen immer wieder einen solchen oder ähnlichen Werdegang beobachten können. Es gilt also, diesen Weg abzukürzen.
Mit ihrem Buch wollen Sie den Leser zügig auf die richtige Spur setzen und verwenden dazu die Gegenüberstellung von simplem und verbessertem Code. Und dies im wahrsten Sinne des Wortes: Die meisten Codebeispiele belegen eine Doppelseite, links oben ein Kasten mit dem einfach gestrickten Code, rechts oben die bessere Version. Besser heißt hier nicht unbedingt gut: Häufig ziehen die Autoren den vermeintlich besseren Code in einer der folgenden Gegenüberstellungen als das schlechtere Beispiel heran, das es weiter zu verbessern gilt. So lernt der Leser Schritt für Schritt, wie besserer Code aussehen kann.
Das fängt einfach an. "Unnötige Vergleiche vermeiden" zeigt, dass es unnötig ist, eine boolsche Variable mit true oder false zu vergleichen, schließlich spricht sie für sich selbst. Das erscheint einem erfahrenen Entwickler selbstverständlich und daher viel zu simpel für ein solches Buch. Doch kann der Rezensent aus eigener Praxis und Beobachtung vergleichbares Verhalten bei Junior-Entwicklern bestätigen. Das Buch setzt also genau da an, wo typische Probleme lauern. Die Autoren verharren aber nicht auf diesem simplen Level. Vielmehr steigert sich der Schwierigkeitsgrad im Laufe des Buchs bis hin zum funktionalen Programmierstil. Und zu guter Letzt kommen auch Themen wie statische Codeanalyse, Continuous Integration oder Multithreading zur Sprache. Dabei streifen Harrer, Lenhard und Dietz nebenbei Themen wie Clean Code, Testautomatisierung oder Objektdesign – jedoch stets im Hinblick auf den Vergleich schlechter/besser.
Das Buch bietet eine auf den ersten Blick nicht vermutete Themenbreite, geht dabei aber nicht so in die Tiefe wie spezialisierte Werke. Doch der Leser erhält einen guten Überblick und kann den Weg vom Junior- zum Senior-Entwickler deutlich schneller absolvieren. Für erfahrene Entwickler bietet das Buch immerhin einige Aha-Momente – und vor allen Dingen Verständnis für die Probleme jüngerer Kollegen, deren Weg der Senior begleiten kann.
Ist das Buch bereits als elektronische Version interessant zu lesen, so kommt die Gegenüberstellung erst bei der Print-Version so richtig zur Geltung. Das Lesen macht Spaß. Daher ist es eigentlich schade, dass schon nach gut 160 Seiten das letzte Kapitel endet.
Michael Müller
ist als Bereichsleiter Softwareentwicklung der InEK GmbH verantwortlich für Projekte im Web-, Java- und .NET-Umfeld. Daneben betätigt er sich als freier Autor und verfasst Fachartikel zu diversen Entwicklungsthemen sowie Buchrezensionen.
(map)