Bücherregal lädt …
The Senior Software Engineer
243 Seiten

Ein weiteres Buch von Dave Copeland, diesmal ein Framework für Senior Softwareentwickler. Ich fand es wieder sehr gut und realistisch. Copeland ist nicht so hand-wavey, wie andere Leute schnell werden, sondern sagt auch mal „Und wenn du deine Vorgesetzten mit diesem Argument auch nicht überzeugen kannst, dann stell dich auf eine lange Diskussion ein, oder poliere schon mal deinen Lebenslauf.“

Viele im Buch angesprochenen Sachen habe ich mir in meiner Laufbahn bereits angeeignet, aber einige auch noch nicht. Es war in jedem Fall gut, alles so gesammelt zu lesen.

SOLID is Not Solid: Five Object-Oriented Principles To Create a Codebase Everyone Will Hate
70 Seiten

Ein kurzes, lustiges Buch über die sogenannten „SOLID Principles“ und Softwareentwicklung. Viele gute Stellen, hier ein paar Beispiele:

I also promise that if this book sells well, the follow up, “XP: The Way to Motivate Little Children To Close JIRA Tickets At A Big Horrible Technology Company Run By People Who Do Not Understand Technology”, will be dedicated to Kent Beck.

Und:

Maybe we could call this a “responsibility”, but I like to use words in the right way, since words have, you know, meaning and stuff.

Und:

If Uncle Bob had used the canonical domain of professional wrestling, he would’ve seen that such a leap of abstraction would be difficult without more than one use case.

Confident Ruby
276 Seiten

In diesem Buch geht Avdi Grimm sehr detailliert darauf ein, wie man selbstsicheren Code schreibt. Im Buch geht es (wie der Name andeutet) vor allem um Ruby, aber auch allgemein sind sehr viele gute Refactoring-Tipps enthalten, die Code cooler machen. Ich fand es lesenswert und schaue bestimmt ab und zu noch mal rein!

Modern Software Engineering
256 Seiten

Ich hatte noch nie von David Farley gehört, bis er neulich in irgendeinem Podcast zu Gast war, den ich gehört habe. Dort hat er erwähnt, dass er dieses Buch veröffentlicht hat, und ich habe es direkt bestellt.

Insgesamt fand ich es ziemlich gut und überzeugend! Besonders die erste Hälfte hat mich sehr zu nachdenken angeregt. Die zweite Hälfte wiederholt viele der Themen noch mal und beleuchtet sie aus einer etwas anderen Richtung – das war dann etwas weniger spannend zu lesen.

Trotzdem würde ich sagen, dass es sich hier um eine gute Zusammenfassung von Farleys Philosophie handelt, und dass ich hoffentlich noch lange über einige der hier besprochenen Aspekte nachdenken werde.

, & 99 Bottles of OOP – A Practical Guide to Object-Oriented Design
284 Seiten

Richtig gut! Seit letztem Sommer bin ich ja endlich Rubyentwickler, darum ist jedes Buch, in dem es um Object-Oriented Design geht, direkt eine gute Investition. (Dieses Buch hier gibt es praktischerweise auch in JavaScript- und PHP-Editionen, darum ist vielleicht für jeden was dabei! Ich habe aber lediglich die Ruby/Milch-Variante gelesen.)

Im ganzen Buch geht es um das gleiche Codebeispiel: Das Lied „99 Bottles of Beer/Milk“. Anfangs ist der Code noch extrem simpel gehalten (das Buch nennt es „Shameless Green“, das werde ich mir auf jeden Fall merken), aber durch „Neue Anforderungen“ müssen immer mehr Features hinzugefügt werden. Damit die Komplexität nicht explodiert, wird man darum auf eine Reise durch Refactorings genommen, die den Code immer modularer werden lassen. Jeder Schritt ist ausführlich und nachvollziehbar erklärt, auf jedes Detail wird eingegangen und Alternativen werden abgewogen.

Da juckt es einen direkt in den Fingern – Ich kann es kaum erwarten, meine nächste Klasse zu schreiben!

Practical Object-Oriented Design in Ruby
272 Seiten

Dieses Buch hätte ich lieber schon vor ein paar Jahren lesen sollen. Ich fand richtig gut, wie Sandi Metz sehr feine Unterschiede zwischen verschiedenen Designs herausgearbeitet hat. Sie hat nicht einfach „richtige“ Designs vorgesetzt, sondern ein Beispiel vorgestellt, die Probleme erklärt und dann Schritt für Schritt verbessert, um die Aspekte von Object Oriented Design zu erklären.

Immer wieder gingen mir kleine Lichter auf, durch die ich mich an vergangene Projekte erinnert habe, bei denen genau das besprochene Designproblem aufgetreten war. Ich wünschte, ich hätte damals schon dieses Buch in meinem Werkzeugkoffer gehabt, das hätte bestimmt geholfen!

Working Effectively with Legacy Code
456 Seiten

Eines schönen Tages dachte ich mir: „Moment mal! Ich muss manchmal mit Legacy Systemen arbeiten! Vielleicht sollte ich mich mal etwas fortbilden, wie ich das möglichst effektiv tun kann!“ Darum bestellte ich dieses Buch. Leider kann ich es nicht empfehlen. Direkt auf einer der ersten Seiten definiert Feathers „Legacy Code“ als „Code, der keine Tests hat,“ und im ganzen Rest des Buches geht es nur darum, wie man Klassen so auftrennen kann, dass man Teile von ihnen Testen kann. Ich finde, das ist eine zu starke Vereinfachung und überhaupt nicht, was ich mir erwartet hatte. Die Codebeispiele sind alle in Java und C++ (das könnte ich vielleicht noch verzeihen), aber sie sind auch viel zu ausführlich und zu langweilig – eigentlich geht es immer um Accounting oder Reservierungen oder Payrolls. Die verschiedenen beschriebenen Methoden sind einander zu ähnlich, als dass ich jetzt (Minuten, nachdem ich das Buch beendet habe) noch mehr als drei nennen könnte. Insgesamt habe ich nicht das Gefühl, besonders viel aus diesem Buch in meinen Alltag mitnehmen zu können. Sehr schade!

Abgesehen von dem Inhalt, den Feathers absichtlich geschrieben hatte, war meine (relativ neue, definitiv nicht erste) Ausgabe dieses Buchs voller Rechtschreibfehler im Prosa und im Code, mitten im Satz aufhörender und anfangender Seiten und teilweise haarsträubenden Layoutfehlern. Für ein so teures Buch finde ich das fast schon unverschämt.

Blood, Sweat, and Pixels
304 Seiten

Das Buch war einigermaßen interessant, aber auch sehr frustrierend. Es geht meistens darum, wie Manager von großen Computerspielherstellern (mehrere dutzend bis wenige hundert Mitarbeiter) fragwürdige Entscheidungen treffen und dann alle normalen Angestellten hundert Stunden pro Woche arbeiten müssen. Aber ohne das so richtig zu thematisieren. Das Kritischste, was gegen das allgegenwärtige „Crunchen“ gesagt wird, ist ungefähr „Ist es wirklich nötig, den Geburtstag seines Kindes zu verpassen? Alle sagen ‚Ja!‘“. Da hätte ich mir schon eine kritischere Auseinandersetzung mit dem Thema gewünscht.