|
| 1 | += Mikado-Methode |
| 2 | +:categories: development-workflow |
| 3 | +:roles: software-developer, software-architect, team-lead |
| 4 | +:related: tdd-chicago-school, tdd-london-school |
| 5 | +:proponents: Ola Ellnestam, Daniel Brolund |
| 6 | +:tags: refactoring, legacy code, inkrementelle Änderung, Abhängigkeitsgraph, reversible Schritte |
| 7 | + |
| 8 | +[%collapsible] |
| 9 | +==== |
| 10 | +Auch bekannt als:: Mikado-Graph-Methode |
| 11 | + |
| 12 | +[discrete] |
| 13 | +== *Kernkonzepte*: |
| 14 | + |
| 15 | +Mikado-Ziel:: Der angestrebte Endzustand des Codes nach dem Refactoring; die Wurzel des Abhängigkeitsgraphen |
| 16 | + |
| 17 | +Voraussetzungsermittlung:: Blockierende Abhängigkeiten aufdecken, indem die Änderung versucht und notiert wird, was dabei bricht |
| 18 | + |
| 19 | +Rückgängig machen und wiederholen:: Nach dem Entdecken einer Voraussetzung den Code auf einen funktionierenden Zustand zurücksetzen, bevor diese angegangen wird |
| 20 | + |
| 21 | +Mikado-Graph:: Ein gerichteter azyklischer Graph, bei dem Knoten Voraussetzungen und Kanten die Abhängigkeiten zwischen ihnen darstellen |
| 22 | + |
| 23 | +Blatt-zuerst-Auflösung:: Zuerst die Blattknoten (ohne weitere Voraussetzungen) auflösen und von dort zurück zum Wurzelziel arbeiten |
| 24 | + |
| 25 | +Kleine reversible Schritte:: Jeder Schritt hinterlässt die Codebasis in einem funktionierenden Zustand und vermeidet das Risiko langer kaputt-Branches |
| 26 | + |
| 27 | +Schlüsselvertreter:: Ola Ellnestam, Daniel Brolund ("The Mikado Method", 2012) |
| 28 | + |
| 29 | +[discrete] |
| 30 | +== *Wann zu verwenden*: |
| 31 | + |
| 32 | +* Große Refactorings in Legacy- oder komplexen Codebasen angehen |
| 33 | +* Wenn eine direkte Änderung zu viele Dinge bricht, um sie auf einmal zu beheben |
| 34 | +* Koordination von Refactoring-Arbeiten mehrerer Entwickler auf sichere Weise |
| 35 | +* Inkrementelle Verbesserungen vornehmen, ohne das Team zu blockieren |
| 36 | + |
| 37 | +[discrete] |
| 38 | +== *Verwandte Anchors*: |
| 39 | + |
| 40 | +* <<tdd-chicago-school,TDD, Chicago School>> |
| 41 | +* <<tdd-london-school,TDD, London School>> |
| 42 | +==== |
0 commit comments