Rezension zu O'Reillys »Produktiv Programmieren«

Cover
Autor(en):
Neal Ford
ISBN:
3-89721-886-0

Der Newsletter von O'Reilly wis vor kurzem auf das Buch Produktiv programmieren von Neal Ford hin. Es handelte sich hierbei um die deutsche Übersetzung von Jörg Staudemeyer. Wie der Titel schon verrät, wendet sich das Werk an Programmierer, die ihre Produktivität erhöhen möchten. Ford erklärt verschiedene Techniken in zwei inhaltlich getrennten Teilen.

Inhalte des Buches

Der erste Teil ist überschrieben mit Mechanismen. Hier werden allgemeine Hinweise zur Optimierung des Arbeitsstils gegeben. Diese sind nicht nur für Programmierer nützlich und hilfreich. Zu den Vorschlägen gehören die Benutzung der Konsole, virtueller Bildschirme, Virtualisierung sowie die Automatisierung von Aufgaben und einiges mehr.

Der zweite Teil Praxis ist dann direkt an Programmierer gerichtet. Hier werden Techniken wie testgetriebenes Design, statische Analyse des Codes sowie weitere Programmiertechniken besprochen. Die Codebeispiele sind meist in Java oder in Ruby formuliert.

Die Mechanismen kommen als lose Sammlung verschiedener Rezepte zur Verbesserung der Produktivität daher. Der Autor legt den Schwerpunkt auf das Betriebssystem Microsoft Windows sowie Mac OS X. Linuxnutzer können hier weniger Hinweise mitnehmen.

Das Kapitel Beschleunigung beginnt mit Betrachtungen zum Start von Programmen. Dabei steht auf Seite 12 und 13 zweimal die Überschrift Launcher. Ich fand dies zunächst verwirrend. Es wäre wünschenswert, wenn für eine der beiden ein alternativen Namen gefunden werden würde. Weiterhin fällt auf, dass für Linux lediglich die Standardvariante des Launchers (Alt+F2) genannt wird. Empfehlenswert wäre hier eine Erwähnung von GNOME Do oder dem Äquivalent von KDE. Sehr interessant fand ich in dem Kapitel die Erwähnung von Quicksilver, einem offensichtlich sehr komfortablen und effektiven Starter für MAc OS X sowie verschiedener Erweiterungen von Eclipse und IntelliJ, die Empfehlungen für zu verwendende Tastaturkombinationen geben. Gerade letzteres sollte bei konsequenter Umsetzung die Arbeitsgeschwindigkeit erhöhen.

Das Kapitel Fokus geht hauptsächlich auf die Erhöhung der Konzentration ein. Der Autor empfiehlt, alle Störfaktoren zu eliminieren. Insbesondere gehören diverse Popups dazu wie auch eine Festlegung von Ruhepausen. Das vierte Kapitel Automatisierung bietet im wesentlichen einige praktische Hinweise wie Automatisierung ausfallen kann. Hier wären mir Hinweise mit mehr Allgemeinheit lieber als die Zähmung der Subversion-Befehlszeile oder die Programmierung eines SQL-Splitters.

Der praktische Teil beginnt mit einem Überblick zu testgetriebenen Design und geht auf weitere Programmiertechniken ein. Der Autor geht insbesondere auf die Methoden der agilen Programmierung ein.

Bewertung

Das Buch ist eine Zusammenstellung einzelner Tipps. Diese hat der Autor durch seine langjährige Tätigkeit gesammelt. Viele dieser Tipss sind sehr wertvoll, um die tägliche Arbeit effizienter zu gestalten. Jedoch sollte ein Programmierer, der sich Gedanken um die Steigerung seiner Produktivität gemacht hat, bereits selbst auf einen wesentlichen Teil dieser Hinweise gekommen sein. Daher befürchte ich, dass das Buch für diesen Personenkreis nicht nützlich ist. Weiterhin werden Programmierer, die hauptsächlich Linux einsetzen, nur vom zweiten Teil des Buches profitieren können.

Bei der Lektüre des Buches fiel mir immer wieder auf, dass Textteile relativ schlecht von der englischen in die deutsche Sprache übertragen wurden. Vieles liest sich wie eine 1:1-Übersetzung ohne auf spezielle deutschsprachige Eigenheiten einzugehen. Das macht das Lesen teils schwierig. Für eine eventuelle weitere Auflage würde ich mir eine Überarbeitung wünschen. Leser, die das Buch gern kaufen möchten und der englischen Sprache mächtig sind, sind aus meiner Sicht mit der Originalversion besser aufgehoben.

Errata

Folgende Fehler bzw. Möglichkeiten der Verbesserung fand ich:

Der komplette Text ist im Flattersatz gesetzt. Ich finde, dass dies viel Unruhe bringt und würde mir für nächste Auflagen den üblichen Blocksatz wünschen.

Allgemein sollte der Satzbau überarbeitet werden. Im Buch finden sich sehr viele Schachtelsätze bzw. komplizierte Satzkonstruktionen. Dazu gehören beispielsweise:

..., denn hier trennt nur wenig den Benutzer vom erwarteten Resultat. (Seite 25)

Wie häufig beim Mac braucht es auch hier eher jemanden, ... (Seite 26)

..., das von Grund auf zu lernen aber eine ziemliche Herausforderung darstellt. (Seite 31)

Diese stören den Lesefluss nachhaltig. Weiterhin wird stark zwischen englischen und deutschen Worten gesprungen. Beispielsweise wird einmal das Wort Stack selbstverständlich als deutsches Wort genutzt und verwendet. An späterer Stelle wird dieses Wort dann ins Deutsche übersetzt und in deutscher Variante genutzt. Ich würde mir wünschen, wenn ein einheitlicher Stil gefunden wird. Dabei sollte der Übersetzer nicht ohne Not englische Begriffe im deutschen Text verwenden, sondern hierfür ein äquivalentes deutschsprachiges Wort finden.

Ab Seite 29 wird immer wieder das Verb internalisieren benutzt. Aus meiner Sicht bietet sich hier eher verinnerlichen an.

Links zu Programmen stehen mal im Text und werden mal als Fußnote ausgewiesen. Das sollte vereinheitlicht werden. Besser ist es, alle Links in der Fußnote unterzubringen.

Vorwort
Das Wort Befehlszeilenwerkzeuge sollte besser umformuliert oder in zwei Worte gewandelt werden.
Die Abkürzung IDE ist sicher zumeist in Programmiererkreises bekannt. Ich halte es dennoch für empfehlenswert, es einmal zur Einführung auszuschreiben.
Seite 2
Besser schreiben: ..., einer international tätigen
Seite 23 erster Abschnitt
(mit der sich wirklich nichts anderes messenmachen lässt)
Seite 29 (und weitere)
Es wird das Wort internalisieren verwendet stattdessen sollte besser verinnerlichen oder ähnliches genutzt werden.
Seite 31 zweiter Abschnitt
Die Datei heißt ~/.profile.
Im dritten Abschnitt steht: und anschließend mit / in den Suchmodus .... Statt des Zeichens ist es besser, wie später im Text, zu schreiben: und anschließend mit dem Schrägstrich (/) in den Suchmodus ....
Auf der Seite und einigen weiteren ist die Rede von der bash-Shell. Der Zusatz Shell sollte entfernt werden. Denn die beiden letzten Buchstaben in bash stehen bereits für Shell.
Das Wort Assembly sollte eingedeutscht werden.
Seite 39
Statt Pair-Programming betreibt könnte man auch zusammen programmiert oder ähnliches schreiben.
Seite 41 erster Abschnitt
Zuletzt bearbeitete/offene Dateien
Seite 53 dritter Abschnitt
in Wirklichkeit nur eine Zeit, ...
Seite 54 dritter Abschnitt
Favorit ist dabei dasdie kostenlose Google Desktop-Suche
Im Text ist die Rede von Kalkulationsblättern. Hierfür sollte eine äquivalente Formulierung gefunden werden.
Seite 77 dritter Abschnitt
Assistenten organisierten Webanwendung
Seite 80
Meines Wissens funktioniert die Pipe (|) auch in der cmd.exe unter Windows.
Seite 90
Für einfache, sich wiederholende
Seite 104 dritter Abschnitt
(Einiges, wie etwas die Historie

Jens

»Produktiv Programmieren« bei amazon.de bestellen