Mikado-Methode
Details
- Auch bekannt als
-
Mikado-Graph-Methode
Kernkonzepte:
- Mikado-Ziel
-
Der klare, angestrebte zukünftige Zustand des Codes nach dem Refactoring; die Wurzel des Abhängigkeitsgraphen und das Erfolgskriterium der Änderung
- Voraussetzungsermittlung
-
Blockierende Abhängigkeiten aufdecken, indem die Änderung versucht und notiert wird, was dabei bricht
- Experimente nutzen
-
Bevorzuge schnelle oder zeitlich begrenzte empirische Versuche gegenüber langen Vorab-Analysen
- Immer rückgängig machen
-
WICHTIG: Nach dem Entdecken einer Voraussetzung immer zum letzten bekannten funktionierenden Zustand zurückkehren, bevor diese angegangen wird
- Mikado-Graph
-
Ein gerichteter azyklischer Graph, bei dem Ziele und Voraussetzungen Knoten sind und Pfeile die Abhängigkeiten anzeigen
- Blatt-zuerst-Auflösung
-
Zuerst die Blattknoten (ohne weitere Voraussetzungen) auflösen und von dort zurück zum Wurzelziel arbeiten
- Kleine reversible Schritte
-
Mache fehlgeschlagene Experimente sofort rückgängig; behalte oder committe nur zusammenhängende, gesunde Änderungen
- Aussagekräftige Commits
-
Committe nur, wenn der Code kompiliert, Tests laufen, das Produkt in einem guten Zustand ist und die Änderung für sich genommen sinnvoll ist
- Schlüsselvertreter
-
Ola Ellnestam, Daniel Brolund ("The Mikado Method", 2012)
Wann zu verwenden:
-
Große Refactorings in Legacy- oder komplexen Codebasen angehen
-
Wenn eine direkte Änderung zu viele Dinge bricht, um sie auf einmal zu beheben
-
Koordination von Refactoring-Arbeiten mehrerer Entwickler auf sichere Weise
-
Inkrementelle Verbesserungen vornehmen, ohne das Team zu blockieren
-
Brownfield-Entwicklung mit versteckten Abhängigkeiten
Mikado-Methode-Rezept (kanonische Form)
-
Hier beginnen: Das Mikado-Ziel aufschreiben.
-
Das Ziel oder die Voraussetzung naiv implementieren.
-
Treten Fehler auf?
-
Beispiele: Compilerfehler, fehlschlagende Tests, Laufzeitfehler, kaputte Builds.
-
Wenn Ja, gehe zu Schritt 4.
-
Wenn Nein, gehe zu Schritt 9.
-
-
Unmittelbare Lösungen für die Fehler finden.
-
Die Lösungen als neue Voraussetzungen in den Mikado-Graphen einzeichnen.
-
Alle Änderungen rückgängig machen und zum letzten bekannten guten Zustand zurückkehren.
-
Die nächste zu bearbeitende Voraussetzung auswählen.
-
Gehe zu Schritt 2.
-
Ist die Änderung sinnvoll?
-
Beispiele: verständlich, intern konsistent, sicher beizubehalten, für sich allein nützlich.
-
Wenn Ja, gehe zu Schritt 10.
-
Wenn Nein, gehe zu Schritt 7.
-
-
Die Änderung committen.
-
Ist das Mikado-Ziel erreicht?
-
Wenn Ja, gehe zu Schritt 12.
-
Wenn Nein, gehe zu Schritt 7.
-
-
FERTIG!