Buchtipps

Mit Flow Design zu Clean Code

Stefan Lieser

Mein Buch behandelt zwar nicht unmittelbar das Thema Legacy Code. Jedoch muss ich als Entwickler vor einem Refactoring eine Zielvorstellung entwickeln, wohin die Reise gehen soll. In diesem buch wird ausführlich dargestellt, wie man mit Hilfe von Entwürfen zu Clean Code gelangt.

https://flow-design.info/buch

Mit Flow Design zu Clean Code

The Mikado Method

Ola Ellnestam, Daniel Brolund

The Mikado Method (Taschenbuch)
von Ellnestam, Ola (Autor), Brolund, Daniel (Autor)

Preis: 44,06 €
10 gebraucht & neu ab 44,06 €

Die Mikado Methode ist für mich der Schlüssel zu komplexen Refactorings. Diese zeichnen sich dadurch aus, dass ich sie nicht mehr vollständig mit einem Refactoring Werkzeug durchführen kann. Ich muss selbst Hand anlegen und den Code im Editor umstrukturieren. Das birgt das Risiko, etwas kaputt zu machen. Es zeigt sich ein Dilemma: um die komplexen Refactorings durchzuführen, muss ich Tests ergänzen. Um Tests ergänzen zu können, muss ich komplexe Refactorings durchführen.

Das Buch stellt eine Methode dar, die nicht auf Analyse sondern auf Experimenten beruht. Diese Experimente werden direkt auf der Codebasis ausgeführt. Das Ziel: Erkenntnisse gewinnen. Die Erkenntnisse werden als sogenannter Mikado Graph notiert. Anschließend werden die Änderungen mit Hilfe der Versionskontrolle wieder rückgängig gemacht. Damit befindet sich die Codebasis immer in einem stabilen und bekannten Zustand. Mit dem erstellten Mikado Graph können die Änderungen dann Schritt für Schritt durchgeführt werden. So ist kein Branching erforderlich, sondern die Refactoring Schritte werden jeweils auf dem Trunk ausgeführt.

Wer mit Legacy Code zu tun hat, sollte das Buch unbedingt gelesen haben.

Die eBook Version gibt es direkt beim Verlag.

Working Effectively With Legacy Code

Michael Feathers

Working Effectively with Legacy Code (Robert C. Martin) (Taschenbuch)
von Feathers, Michael C. (Autor)

Preis: 39,99 €
35 gebraucht & neu ab 33,43 €

Deutsche Übersetzung: Effektives Arbeiten mit Legacy Code.

Effektives Arbeiten mit Legacy Code. Refactoring und Testen bestehender Software (Taschenbuch)
von Feathers, Michael C. (Autor)

Preis: 39,95 €
24 gebraucht & neu ab 29,97 €

Ein Klassiker zum Thema Legacy Code. Das Buch von Michael Feathers enthält viele Beispiel zum Umgang mit Legacy Code, insbesondere zur Frage, wie dieser Code mit automatisierten Tests versehen werden kann, ohne die Funktionalität dadurch zu gefährden. Die Beispiele liegen in diversen Programmiersprachen vor.

Dieser Klassiker sollte ebenfalls im Regal jedes Entwickler stehen bzw. im Speicher des eBook-Readers der Wahl liegen. Die Kindle Version gibt es direkt bei Amazon.

Refactoring: Improving the Design of Existing Code

Martin Fowler

Refactoring: Improving the Design of Existing Code (Object Technology Series): Improving the Design of Existing Code. With contributions by Kent Beck, John Brant, et al. Foreword by Erich Gamma (Gebundene Ausgabe)
von Fowler, Martin (Autor), Beck, Kent (Redakteur), Brant, John (Redakteur), Opdyke, William (Redakteur)

Preis: 54,56 €
13 gebraucht & neu ab 10,59 €

Das Buch von Martin Fowler ist so etwas wie der Refactoring Katalog. Es enthält alle wichtigen Refactorings und beschreibt, wie diese durchzuführen sind. Ferner wird dargestellt, wann die einzelnen Refactorings durchzuführen sind.

Das Buch beschriebt die eher technische Seite des Refactorings. Wer auf der Suche ist nach einer Beschreibung der möglichen Refactorings, wird hier fündig. Nach meiner Ansicht sollte jeder Entwickler den grundlegenden Katalog von Refactorings kennen. Dazu kann das Buch wunderbar verwendet werden.

Refactoring to Patterns

Joshua Kerievsky

Refactoring to Patterns (Gebundene Ausgabe)
von Joshua Kerievsky (Autor)

Preis: 131,56 €
9 gebraucht & neu ab 62,92 €

In diesem Buch schlägt der Autor die Brücke zwischen Patterns und Refactorings. Der Autor stellt dar, wie man Code mit Hilfe von Refactorings von einem Entwurfsmuster zum anderen transformieren kann. Ähnlich wie Fowlers Refactoring Buch empfehle ich jedem Entwickler, sich mit dem Material auseinanderzusetzen. Es schafft die technische Basis, auf der komplexe Refactorings mit der Mikado Methode durchgeführt werden können.