Refactoring: Wie Sie das Design bestehender Software verbessern
Rezension von Sven Woltmann
Mit diesem Klassiker der Softwareentwicklung hat Martin Fowler 1999 das Thema „Refactoring“, das damals schon in der SmallTalk-Community bekannt war, einer breiten Entwicklergemeinde vorgestellt.
Das Buch beschreibt zunächst die grundlegenden Prinzipien des Refactorings und stellt diese an einem einführenden Beispiel anschaulich dar.
Anlass für ein Refactoring ist in der Regel ein „Code Smell“, also Code, der zwar funktioniert, aber schwer zu lesen und zu warten ist. Durch die Benennung und Beschreibung weit verbreiteter Code Smells hat Fowler auch diese der Entwicklergemeinde bekannt gemacht.
Der größte Teil des Buches besteht aus einem Katalog von über 60 Refactorings. Für jedes Refactoring beschreibt der Autor die Motivation (d.h. die Situation, in der es anzuwenden ist), erklärt die Funktionalität Schritt für Schritt und demonstriert sie anschaulich anhand von Code-Beispielen in JavaScript.
Hier werden die Änderungen der zweiten Ausgabe deutlich: Fowler hat das Buch nicht bloß oberflächlich aufpoliert, sondern den gesamten Katalog umfangreich aktualisiert. So hat er Refactorings umbenannt, konsolidiert, hinzugefügt und die Java-Beispiele durch JavaScript-Varianten ersetzt. Wenn sich Unterschiede durch die Verwendung von schwach bzw. stark typisierten Programmiersprachen ergeben, gibt er entsprechende Hinweise.
„Refactoring“ ist keine leichte Kost (bei den fortgeschrittenen Refactorings musste ich immer wieder eine Pause einlegen) – dennoch halte ich es für eine zeitlose Pflichtlektüre für alle Softwareentwickler.
Für Anfänger ist es ein hervorragender Einstieg in das Thema. Und Profis, für die Refactoring seit Jahren zum TDD-Zyklus gehört und die jeden Refactoring-Shortcut ihrer IDE auswendig kennen, werden das ein oder andere neue Refactoring kennenlernen – bzw. feststellen, dass Refactorings, die sie intuitiv durchgeführt haben, auch einen Namen und einen formalen Prozess haben.
🎧 Geeignet als Hörbuch: Nein, und zum Glück ist es auch nicht als solches erhältlich.
Andere Empfehlungen aus den Genres dieses Buches
Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code
Design Patterns: Entwurfsmuster als Elemente wiederverwendbarer objektorientierter Software
Clean Craftsmanship: Best Practices, Standards und Ethik für die Softwareentwicklung
Effektives Arbeiten mit Legacy Code. Refactoring und Testen bestehender Software
Der pragmatische Programmierer: Ihr Weg zur Meisterschaft
Growing Object-Oriented Software, Guided by Tests
Pattern Hatching: Design Patterns Applied
Clean Coder: Verhaltensregeln für professionelle Programmierer
Agile Software Development: Principles, Patterns, and Practices
Clean Architecture – Gute Softwarearchitekturen: Das Praxis-Handbuch für professionelles Softwaredesign. Regeln und Paradigmen für effiziente Softwarestrukturierung.
Domain-Driven Design: Tackling Complexity in the Heart of Software
Implementing Domain-Driven Design
Extreme Programming: Das Manifest
Projekt Unicorn: Der Roman über Entwickler, Digital Disruption und das Überleben im Datenzeitalter
Das Mindset von DevOps. Accelerate: 24 Schlüsselkompetenzen, um leistungsstarke Technologieunternehmen zu entwickeln und zu skalieren