Refactoring ist eine Methode, bereits geschriebene Software im Entwurf zu verbessern, ohne ihr Verhalten zu ändern. Das Buch beschreibt die Prinzipien des Refactorings anschaulich anhand eines einführenden Beispiels. Danach wird in Form eines Katalogs auf ca. 70 getestete Refactorings eingegangen. Der Code ist in Java geschrieben, die zugrunde liegenden Prinzipien sind auf alle objektorientierten Sprachen übertragbar. Deutsche Übersetzung von Prof. Dr. Bernd Kahlbrandt.
Mit der Verbreitung von objektorientierter Softwareentwicklung wurden Entwickler mit einem neuen Problem konfrontiert: Entwickler mit wenig Erfahrung im Design von Software schrieben wenig effiziente, schwer wart- und erweiterbare Anwendungen. In zunehmendem Maße entdeckten Softwaresystemprofis, wie schwer es ist, mit diesen geerbten, "nicht optimalen" Anwendungen zu arbeiten. Jahrelang hatten sehr erfahrene, objektorientierte Programmierer eine wachsende Sammlung von Techniken erprobt, um die strukturelle Integrität und Performance solcher Softwareprogramme zu verbessern. Diese so genannten Refactorings (Refaktorisierungen) blieben bisher Experten vorbehalten, da niemand den Versuch unternommen hatte, dieses Wissen in eine Form zu bringen, die alle Entwickler verwenden können. Jetzt ändert sich diese Situation: Martin Fowler entmystifiziert die Techniken der Meister und zeigt, wie Programmierer durch den Einsatz von Refaktorisierungen signifikante Verbesserungen verwirklichen können. Mit dem richtigen Training kann ein fähiger Systementwickler einen schlechten Entwurf in robusten Code mit gutem Design umarbeiten. Der Leser lernt, wo Gelegenheiten zum Refaktorisieren in der Regel zu finden sind und wie er vorgehen muss, um einen schlechten Entwurf in einen guten umzuarbeiten. Jeder Refaktorisierungsschritt ist einfach - scheinbar zu einfach, um sich zu lohnen. Zum Refaktorisieren kann es gehören, ein Feld von einer Klasse in eine andere zu verschieben, Code aus einer Methode herauszuziehen und daraus eine eigene Methode zu machen oder Code entlang einer Hierarchie zu verschieben. Während die einzelnen Schritte elementar erscheinen mögen, kann der kumulative Effekt dieser kleinen Änderungen einen Entwurf dramatisch verbessern. Refaktorisieren ist ein bewährtes Mittel gegen Softwarezerfall. Über die Diskussion der verschiedenen Refaktorisierungstechniken hinaus bietet das Buch einen Katalog von mehr als siebzig bewährten Refaktorisierungen mit hilfreichen Hinweisen für die praktische Anwendung. Die erläuternden Beispiele sind in Java geschrieben, aber die Ideen sind auf jede objektorientierte Srache übertragbar.
Mit der Verbreitung von objektorientierter Softwareentwicklung wurden Entwickler mit einem neuen Problem konfrontiert: Entwickler mit wenig Erfahrung im Design von Software schrieben wenig effiziente, schwer wart- und erweiterbare Anwendungen. In zunehmendem Maße entdeckten Softwaresystemprofis, wie schwer es ist, mit diesen geerbten, "nicht optimalen" Anwendungen zu arbeiten. Jahrelang hatten sehr erfahrene, objektorientierte Programmierer eine wachsende Sammlung von Techniken erprobt, um die strukturelle Integrität und Performance solcher Softwareprogramme zu verbessern. Diese so genannten Refactorings (Refaktorisierungen) blieben bisher Experten vorbehalten, da niemand den Versuch unternommen hatte, dieses Wissen in eine Form zu bringen, die alle Entwickler verwenden können. Jetzt ändert sich diese Situation: Martin Fowler entmystifiziert die Techniken der Meister und zeigt, wie Programmierer durch den Einsatz von Refaktorisierungen signifikante Verbesserungen verwirklichen können. Mit dem richtigen Training kann ein fähiger Systementwickler einen schlechten Entwurf in robusten Code mit gutem Design umarbeiten. Der Leser lernt, wo Gelegenheiten zum Refaktorisieren in der Regel zu finden sind und wie er vorgehen muss, um einen schlechten Entwurf in einen guten umzuarbeiten. Jeder Refaktorisierungsschritt ist einfach - scheinbar zu einfach, um sich zu lohnen. Zum Refaktorisieren kann es gehören, ein Feld von einer Klasse in eine andere zu verschieben, Code aus einer Methode herauszuziehen und daraus eine eigene Methode zu machen oder Code entlang einer Hierarchie zu verschieben. Während die einzelnen Schritte elementar erscheinen mögen, kann der kumulative Effekt dieser kleinen Änderungen einen Entwurf dramatisch verbessern. Refaktorisieren ist ein bewährtes Mittel gegen Softwarezerfall. Über die Diskussion der verschiedenen Refaktorisierungstechniken hinaus bietet das Buch einen Katalog von mehr als siebzig bewährten Refaktorisierungen mit hilfreichen Hinweisen für die praktische Anwendung. Die erläuternden Beispiele sind in Java geschrieben, aber die Ideen sind auf jede objektorientierte Srache übertragbar.
Die vorgestellten Techniken des Refaktorisierens sind ein Muss, um die Wartbarkeit, Erweiterbarkeit und Robustheit von komplexen Projekten auch in Zukunft zu garantieren. Dieses Buch sollte jeder professionelle Programmierer gelesen haben: Es wird zweifellos Einfluss auf die kommenden Codezeilen haben.-- (dotnet.magazin, Dezember 2005)