Anmeldung Registrierung
Auto Hell Dunkel
Erweiterte Suche
  1. Startseite
  2. Podcasts
  3. IT-Berufe-Podcast Podcast
  4. Buchclub: Java by Comparison – Anwendungsentwickler-Podcast #130
Buchclub: Java by Comparison – Anwendungsentwickler-Podcast #130

Buchclub: Java by Comparison – Anwendungsentwickler-Podcast #130

IT-Berufe-Podcast vor 7 Jahren
Zu Sammlung hinzufügen

Du hast noch keine Sammlungen.

Herunterladen (rechte Maustaste) Teilen Fundstellen Kommentare
0:00
27:04
Ich habe ein neues Lieblingsbuch für die Ausbildung! "Java by
Comparison" wird im Buchclub in der einhundertdreißigsten Episode
des Anwendungsentwickler-Podcasts besprochen. TL;DR Ich nehme Java
by Comparison in die Leseliste für meine IT-Azubis auf: Das Buch
zeigt anhand von 70 Codebeispielen, wie du deinen Code
verständlicher und weniger fehleranfällig schreibst. Die kurzen
Beispiele mit ihren überarbeiteten Fassungen eignen sich bereits im
ersten Ausbildungsjahr, sobald du grundlegende
Programmierkenntnisse hast; viele Regeln lassen sich auch auf C#
oder PHP übertragen. Dein:e Ausbilder:in kann bei Code-Reviews auf
passende Kapitel verweisen, während du dir die Hintergründe selbst
erarbeitest. Kapitelmarken [00:00:00] Buchclub zu Java by
Comparison [00:02:09] Buchidee und Aufbau der Codebeispiele
[00:05:31] Regeln auf andere Programmiersprachen übertragen
[00:06:43] Zielgruppe und FizzBuzz als Einstiegstest [00:08:41]
Geplanter Einsatz in Ausbildung und Code-Reviews [00:11:18]
Grundlagen, Kommentare und lesbarer Code [00:12:47] Namen,
Domänensprache und Fehlerbehandlung [00:13:49] Unit-Tests und
Klassen entwerfen [00:14:42] Streams, Lambdas und
Methodenreferenzen [00:15:08] Builds, Continuous Integration und
weitere Praxisthemen [00:17:13] Fachliche Namen am Beispiel der
Krankenversicherung [00:19:45] Optionals funktional mit ifPresent
verarbeiten [00:23:33] Autoren und Hintergründe zum Buch [00:25:23]
Links, Codebeispiele und ergänzende Beiträge Inhalt Ich habe das
Buch an einem Wochenende komplett verschlungen und es direkt im
Anschluss auf die ToRead-Liste meiner Azubis gesetzt. Ab sofort
werde ich es mit jedem Azubi lesen. Direkt im 1. Ausbildungsjahr,
kurz nach der Bearbeitung der ersten Java-Aufgaben, legen wir los.
Idee des Buchs Die Idee des Buchs ist schnell erklärt: Es werden 70
Code-Beispiele in Java gezeigt, an denen jeweils einzelne
Optimierungen durchgeführt werden. Der "schlechte" Code steht auf
der linken Seite und der "gute" Code steht auf der rechten Seite.
Somit kann man direkt die beiden Beispiele vergleichen und sich auf
den jeweiligen Unterschied konzentrieren. Im Prinzip gibt es also
70 kurze Lektionen zum Thema "Clean Code". Die Beispiele sind
interessant und teilweise auch ein bisschen witzig gewählt, da das
Grundthema eine Reise zum Mars ist. Zielgruppe Die Zielgruppe des
Buches sind Anfänger bis Fortgeschrittene in der Programmierung.
Die Beispiele sind zwar komplett in Java, aber ich würde sagen,
dass man sie genauso gut in anderen Sprachen anwenden kann. Einige
Beispiele, wie z.B. die Verwendung von Optional, sind zwar sehr
spezifisch für Java, aber die grundlegenden Ideen (in diesem Fall
null zu vermeiden) lassen sich ohne Probleme auf andere Sprachen
übertragen. Damit man die Beispiele und Optimierungen auch
versteht, sollte man schon ein wenig Programmierererfahrung
mitbringen. In meinem Fall lasse ich die Azubis das Buch direkt
nach ihrer Einführung in Java lesen. Die grundlegenden Themen wie
Objektorientierung, Vererbung, Interfaces und Teile der
funktionalen Programmierung sind dann schon bekannt und die
weiteren Optimierungen des Buches können verstanden und auch
angewendet werden. Das Buch schlägt vor, das "FizzBuzz"-Problem zu
lösen. Wenn das klappt, gehört man zur Zielgruppe! Hier habe ich
das Problem übrigens selbst schonmal auseinandergenommen: Don't
Repeat Yourself (DRY). Für mich als Ausbilder ist das Buch
ebenfalls sehr interessant, da ich Erklärungen zu Anmerkungen in
meinen Code Reviews nun nicht mehr jedesmal ausformulieren und
erklären muss, sondern im Prinzip einfach auf das kurze Buchkapitel
dazu verweisen kann. Bei meinen Erklärungen schweife ich nämlich
gerne auch mal sehr weit ab und am Ende haben wir dann eine halbe
Stunde über Themen diskutiert, die mit dem eigentlichen Problem gar
nichts mehr zu tun haben. :-) Hier hilft mir das Buch weiter, da
jedes Kapitel sich auf ein einziges Problem fokussiert und es in
zwei Seiten gut nachvollziehbar erklärt. Inhalt des Buches Die
einzelnen Kapitel des Buches bauen ein wenig aufeinander auf. Es
startet mit einfachen Beispielen und wird immer komplexer. Wobei
auch die späteren Beispiele immer noch gut verständlich sind. Es
geht los mit einfachen Möglichkeiten, den eigenen Code aufzuräumen
(z.B. die unten genannten unnötigen Vergleiche). Danach folgen
etwas weitergehende Möglichkeiten wie z.B. Enhanced-For-Schleifen
statt For-Schleifen einzusetzen. Es gibt ein eigenes Kapitel zum
Thema Kommentare und auch zur Benennung von Variablen oder
Methoden. Einiges davon wird auch in Clean Code* schon erklärt,
aber hier werden halt aussagekräftige, kurze Beispiele
mitgeliefert, mit denen auch Einsteiger etwas anfangen können. Es
gibt des Weiteren ein eigenes Kapitel zur Fehlerbehandlung und
insbesondere auch zum Thema Unit-Tests, was ich sehr begrüße. Denn
meiner Erfahrung nach haben gerade beim Thema Tests meine Azubis
und Studierenden die meisten Probleme. Am Ende des Buches gibt es
dann noch ein wenig über das Design von Klassenstrukturen zu lesen
und eine kurze Einführung in die funktionale Programmierung mit
Java, also beispielsweise Streams und Lambda-Ausdrücke. Auch
Methodenreferenzen werden erläutert. Zum Abschluss gibt es dann
einen Ausblick auf das "echte Leben". Hier geht es dann z.B. um
Continuous Integration oder den Einsatz eines Logging-Frameworks,
anstatt alles auf die Konsole zu schreiben. Konkrete Beispiele Um
ein Gefühl für den Inhalt zu vermittelt, beschreibe ich einfach mal
drei Beispiele aus dem Buch. Unnötige Vergleiche Gleich das
allererste ist eines, dass mir in der Praxis bei meinen Azubis und
Studierenden immer wieder unterkommt: der Vergleich mit booleschen
Werten. Es ist völlig unnötig, bei einer Abfrage einen booleschen
Wert mit true oder false zu vergleichen. Stattdessen kann dieser
direkt in der Abfrage verwendet werden. Nicht so gut: if
(istErwachsen == true) { rabatt = 0; } Besser: if (istErwachsen) {
rabatt = 0; } Domänensprache nutzen Ein weiteres schönes Beispiel
ist die Verwendung von Domänen-Terminologie. Wir schreiben Code für
andere Menschen und nicht für den Computer! Daher ist es wichtig,
dass fachlich versierte Leser unseres Codes ihn gut verstehen und
nicht durch missverständliche Begriffe abgelenkt werden. Nicht so
gut: b = (summeR / lookupTabelleKS) * ax; Besser: monatsbeitrag =
(rueckstellungen / kopfschaden) * rentenbarwart; Optionals als
Stream verwenden Das letzte Beispiel ist sehr spezifisch für Java.
Hier geht es um das schon erwähnte Optional. Anstatt die Methode
isPresent() zu verwenden, sollte man den funktionalen Ansatz wählen
und das Objekt so nutzen, wie es gedacht ist. Nicht so gut: if
(optional.isPresent() { doSomething(optional.get()); } Besser:
optional.ifPresent(this::doSomething); Literaturempfehlungen
Logisch, oder? :-) * Links Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts Website zum Buch: Become a Better Java
Developer in 70 Examples Podcast-Interview Simon Harrer: Java by
Comparison. Vorher/Nachher-Vergleiche zu Clean Code in Java Reviews
des Buchs: Java by Comparison bei heise Developer, Java by
Comparison bei InfoQ Zusammenfassung Wie du mit dem Buch lernst
Nachdem ich Java by Comparison komplett gelesen habe, möchte ich es
mit meinen IT-Azubis bereits im ersten Ausbildungsjahr lesen. Das
englischsprachige Buch von Simon Harrer, Jörg Lenhardt und Linus
Dietz ist bei den Pragmatic Programmers erschienen. Die Autoren
haben Java an deutschen Hochschulen gelehrt und ihre Erfahrungen
aus der Lehre eingebracht. Auf jeweils zwei gegenüberliegenden
Seiten findest du ein Codebeispiel und seine überarbeitete Fassung.
Dazu erfährst du, warum die Änderungen helfen und wie du sie
umsetzt. Insgesamt enthält das Buch 70 Beispiele auf ungefähr 165
Seiten. Als fachlicher Rahmen dient eine Reise zum Mars, bei der
unter anderem Raketen und Mars-Rover vorkommen. Mit einfachen
Regeln für Bedingungen beginnt das Buch, bevor es zu
anspruchsvolleren Themen wie funktionaler Programmierung übergeht.
Die Beispiele sind kurz und brauchen wenig zusätzlichen Kontext.
Welche Vorkenntnisse du brauchst Wenn du bereits mit Schleifen und
Bedingungen programmieren kannst, hast du die Grundlagen für den
Einstieg. Damit eignet sich das Buch für IT-Azubis mit ersten
Erfahrungen ebenso wie für fortgeschrittene Entwickler:innen und
Ausbilder:innen. Ich halte es nach ungefähr einem halben Jahr
eigener Programmierpraxis für zugänglich. Als Einstiegstest schlägt
das Buch FizzBuzz vor. Dabei gibst du die Zahlen von 1 bis 100 aus
und ersetzt bestimmte Zahlen: Bei durch 3 teilbaren Zahlen
erscheint Fizz. Bei durch 5 teilbaren Zahlen erscheint Buzz. Ist
eine Zahl durch beide teilbar, erscheint FizzBuzz. Alle übrigen
Zahlen gibst du unverändert aus. Kannst du diese Aufgabe
selbstständig in ungefähr einer Viertelstunde lösen, bringst du die
empfohlenen Vorkenntnisse mit. Obwohl alle Beispiele in Java
geschrieben sind, lassen sich viele Regeln auf ähnliche Sprachen
wie C# oder PHP übertragen. Spätere Kapitel behandeln Java-Konzepte
wie Streams und Optionals. Vergleichbare Ansätze gibt es auch in
anderen Sprachen, etwa LINQ in C#. Welche Themen das Buch behandelt
Beim Lesen arbeitest du dich durch folgende Bereiche: Bedingungen
und grundlegende Sprachmittel: Boolesche Werte direkt abfragen,
positiv formulierte Begriffe wählen und bei if-Konstrukten
konsequent Klammern setzen. Kommentare und lesbarer Code: Durch
sprechende Methodennamen bleibt Code verständlich. Benannte
Konstanten machen die Bedeutung von Zahlen im Code sichtbar. Namen
und Domänensprache: Begriffe aus dem Fachbereich helfen dir,
Variablen und Methoden nachvollziehbar zu benennen. Fehler
behandeln: Ressourcen zuverlässig schließen, etwa mit Javas
try-with-resources, das Dateien automatisch schließt. Unit-Tests:
Tests sinnvoll aufbauen, die Argumente bei assertEquals richtig
anordnen und Rundungsfehler bei Gleitkommazahlen berücksichtigen.
...
Episode melden

„Buchclub: Java by Comparison – Anwendungsentwickler-Podcast #130“

Worum geht es? Danach fragen wir noch nach dem Grund.

Teilen

Mein Archiv

Deine Privatkopie der Folgen, die du nicht verlieren willst.

Podcast-Folgen verschwinden. Feeds werden auf die letzten Episoden gekürzt, Hoster räumen alte Dateien ab, Formate wechseln den Anbieter und lassen ihr Archiv zurück. Mit „Mein Archiv“ sichert podcast.de die Folgen deiner Podcasts für dich — angefangen bei den ältesten, denn die sind zuerst weg.

  • Deine gesicherten Folgen bleiben hörbar, auch wenn das Original offline geht.
  • Auch Folgen, die im heutigen Feed gar nicht mehr stehen — podcast.de kennt sie noch.
  • Herunterladen bleibt möglich, solange die Folge beim Podcaster liegt. Der zählt seine Abrufe wie bisher.
Startet bald

Sei beim Start von Mein Archiv dabei

Mein Archiv ist fast fertig. Trag dich ein, dann bekommst du eine E-Mail, sobald es losgeht – und bist von Anfang an dabei. Wir schreiben dir nur zum Start, keine Werbung, keine Weitergabe deiner Daten.

Du bekommst zuerst eine Bestätigungsmail. Abmelden geht jederzeit. Datenschutz