Literaturempfehlungen für Software-Entwickler

Aus aktuellem Anlass möchte ich ein paar Literaturempfehlungen für Software-Entwickler geben:

Clean Code: A Handbook of Agile Software Craftsmanship

(Robert C. Martin, Prentice Hall, 2008, ISBN-13: 978-0132350884)

Kritische Betrachtung etablierter Programmierparadigmen und Vorschläge, wie man zu besser strukturierten und vor allem lesbaren Programmen kommt. Viele Schlüsse erscheinen ungeübten Programmierern als radikal (z.B. „Kommentare lügen“). Sofern man sich darauf wirklich einlässt, kann man aber genau damit die eigene Code-Qualität massiv verbessern.

Die Warnung in der Einleitung „there will be code“ ist ernst gemeint, es ist kein abstraktes Theoriebuch, sondern macht sich die Hände schmutzig.

Disclaimer: liebgewonnene Vorurteile über den Haufen zu werfen ist harte Arbeit.

The Pragmatic Programmer. From Journeyman to Master

(Andrew Hunt, David Thomas, Ward Cunningham, Addison Wesley, 1999, ISBN-13: 978-0201616224)

Eine gute Mischung aus Verhaltenskodex für professionelle Software-Entwickler und Best Practices beim Software Design.

Working Effectively with Legacy Code

(Michael C. Feathers, Prentice Hall, 2013, ISBN-13: 978-0131177055)

Dieses Buch ist ein Rettungsring für alle, die an geerbtem Code zu verzweifeln drohen. Eigentlich sollte in großen freundlichen Lettern „don’t panic“ auf dem Einband stehen.

Das Hauptziel des Buches ist es, verschiedene Wege aufzuzeigen um aus Software, die test- und wartungsfeindlich programmiert wurde, Schritt für Schritt in lesbare, modulare und gut durchgetestete Software zu verwandeln.

The Mythical Man-Month. Essays on Software Engineering

(Frederic P. Brooks, Addison-Wesley Longman, Neuauflage 1995, ISBN-13: 978-0201835953)

Wenn auch schon etwas in die Jahre gekommen, ist es immer noch eine lesenswerte Standardlektüre zum Software-Projektmanagement. Die Kernthemen haben nichts von ihrer Bedeutung verloren. Besonders zu empfehlen sind die Aufsätze über die Fehlannahme, dass die Abarbeitungsgeschwindigkeit von Software-Projekten mit der Anzahl der Team-Mitglieder skalieren würde und der „second system effect“.

Clean Architecture: A Craftsman’s Guide to Software Structure and Design

(Robert C. Martin, Prentice Hall, 2017, ISBN-13: 978-0134494166)

Was ist das elementare Merkmal jeder guten Software-Architektur? Wer jetzt aus dem Bauch heraus geantwortet hat, „dass sie langfristig stabil bleibt“, sollte das Buch auf jeden Fall lesen.

Robert C. Martin legt in diesem kurzen und kurzweiligen Buch Ziele und Lösungen für Software Design dar. Abgerundet wird das Buch durch sehr unterhaltsam geschriebene autobiographische Beispiele, die den Wert der erläuterten Prinzipien anhand realer Projekte und Probleme belegt.

Design Patterns: Elements Of Reusable Object Oriented Software

(Erich Gamma, et al., Neuauflage 2015, ISBN-13: 978-9332555402)

Auch nach vielen Jahren noch das Standardwerk zum Thema Entwurfsmuster (design patterns). Viele Entwickler kennen nur ein paar Kandidaten (z.B. das berühmt-berüchtigte „singleton“), es gibt aber noch mehr, die es zu lernen lohnt. Die Tatsache, dass das Buch älter ist schadet nicht, da sich die Konzepte in beliebige OO-Sprachen übersetzten lassen.

Effective …

Eine (nicht zusammenhängende) Gattung von Büchern, die Interna, Stolpersteine und Bestpractices für fortgeschrittene Programmierung in verschiedenen Sprachen behandelt. Die meisten werden regelmäßig überarbeitet – es lohnt sich daher nach der aktuellen Fassung zu suchen.

  • Effective C++ Serie (Scott Meyers, Addison-Wesley) – zu viele Bücher um sie einzeln aufzulisten
  • Effective Java (Joshua Bloch, Addison-Wesley, 2017, ISBN-13: 978-0134685991)
  • Effective JavaScript (David Herman, Addison-Wesley, 2012, ISBN-13: 978-0321812186)

Die C++-Serie hat mal jemand als die „verschiedenen schwarzen Gürtel in C++“ bezeichnet. Wie ich finde sehr treffend.

Kommentar schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.