Freitag, 2. Dezember 2011

Literatur für Senior Java Entwickler

Memoirs of Literature (1712)
Bei und während meiner Java Trainings empfehle ich (wie vermutlich jeder Trainer) eine Menge Literatur für Java Entwickler. Im Gegensatz zu anderen Literaturempfehlungen für Java Entwickler enthalten diese aber kaum Literatur über Java selbst. Dies liegt daran, dass ich überzeugt davon bin, dass die Programmiersprache und Klassenbibliothek - so komplex und groß sie auch sein mögen - wichtig, aber nicht ausreichend sind um Java zu beherrschen.

Die Programmiersprache Java ist zwar relativ einfach zu lernen (in wenigen Tagen), jedoch im Detail oft schwer zu beherrschen. Vielen Senior Java Entwicklern und Architekten täte es gut folgende Literatur zu lesen und auch zu verstehen...
  • Joshua Bloch: "Effective Java"
    DAS Standardwerk zu Java Grundlagen für Experten - auch Leute mit vielen Jahren Erfahrung finden viel Neues in dem Buch. 
  • Angelika Langer: "Java Core Programmierung"
    Wers noch tiefer haben möchte, dem sind alle Artikel / Bücher / Vorträge von Angelika Langer empfohlen - mMn die Expertin auf dem Gebiet des Multithreadings, aber auch der Garbage Collection 
Objektorientiertes Design wird häufig auch von Senior Java Entwicklern und Architekten als etwas angesehen, wo sie selbst nichts mehr lernen müssten. Falsch gedacht - ich kenne kaum jemanden, der die Grundprinzipien der Objektorientierung wirklich beherrscht - hier die mMn wichtigsten Punkte:
  • Wikipedia: "Prinzipien objektorientierten Designs"
    Meine eigene, vielfach redigierte Liste der Prinzipien Objektorientierten Designs. Viele kennen sie, kaum jemand wendet sie auch wirklich an. 
  • Gamma, Helm, Johnson, Vlissides: "Design Patterns"
    Darf natürlich in keiner Literaturliste zu objektorientiertem Design fehlen. Beim Anwenden der Patterns wäre ich allerdings vorsichtig. Die meisten Patterns werden auch von Senior Entwicklern nicht verstanden, falsch ein- und auch umgesetzt und machen Software dadurch oft komplexer als ohne Patterns. Am besten mehrmals und nach ein paar Jahren nochmal lesen - und dann natürlich auch noch die Core J2EE Patterns Blueprint - Patterns zu JEE.
  • Joshua Kerievsky: "Refactoring to Patterns"
    Verbindet Patterns mit Refactoring, denn in den meisten Fällen erkennt man, welche Patterns man verwenden hätte sollen, wenn man etwas bereits umgesetzt hat.
  • Martin Fowler: "Analysis Patterns"
    Die Erweiterung der Design Patterns in Richtung Fachlichkeit - dort wo Patterns mindestens genauso wichtig wären wie beim technischen Design. Leider in einer Prä-UML Notation geschrieben und deshalb schwer lesbar...
  • Eric Evans: "Domain-Driven Design"
    Ein Muss für alle Entwickler, die Applikationen mit Businesslogik implementieren und nicht nur Daten eins-zu-eins zwischen GUI und Datenbank hin- und herschaufeln (wie die meisten Applikationen). Nicht leicht zu lesen aber mMn dennoch Gold wert.
Guten, lesbaren Code zu schreiben, der auch von anderen Entwicklern gelesen und gewartet werden kann ist eine Gabe, welche nur wenige Entwickler beherrschen. Die folgenden Bücher sollte daher jeder Senior Java Entwickler gelesen haben um auf diesem Gebiet sein Bestes geben zu können:
  • Martin Fowler: "Refactoring"
    Leicht zu lesen und auch zu verstehen gibt uns dieses Buch einfache Möglichkeiten in die Hand unseren Code wartbarer zu gestalten. Leider fehlt uns dann oft der Mut selbst zu entscheiden, uns die Zeit zu nehmen das Design während der Entwicklung laufend zu verbessern - stattdessen pfuschen wir noch ein weiteres Feature hinzu und geben dem Projektleiter die Schuld.
  • Scott Ambler & Pramond Sadalage: "Refactoring Databases"
    Die meisten Entwickler denken dass gutes Design bei der Datenbank aufhört und DBAs sträuben sich ohnedies gegen jedwede Strukturänderung von Datenbanken. Dieses Buch belehrt uns eines besseren.
  • Thomas Hunt: "The Pragmatic Programmer", Steve McConnel: "Code Complete"Robert C. Martin: "Clean Code"
    Drei Werke die uns allesamt mit vielen Tipps & Tricks erklären, wie wir bessere Ergebnisse erreichen und gleichzeitig produktiver Arbeiten können. Achtung: Diese Bücher zu lesen und zu verstehen reicht nicht - man muss schon danach handeln damit es funktioniert.


web analytics