Rezension zu O'Reillys »Produktiv Programmieren«
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 auchzusammen 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 etwa
sdie Historie