Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von...
Transcript of Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von...
![Page 1: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/1.jpg)
Die Kunst der
kleinen SchritteDavid Völkel XP Days Germany 09.11.2018
![Page 2: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/2.jpg)
David Völkel XP Days Germany 09.11.2018
@davidvoelkelcodecentric
Software Craft Meetup Munich
#TDD
![Page 3: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/3.jpg)
Disclaimer!
![Page 4: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/4.jpg)
"It's the small steps part that distinguishes the TDD amateurs from the TDD experts ...
Experts are able to take smaller Steps.“*
*James Shore
![Page 5: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/5.jpg)
Leap*
* Leap Pattern aus Kent Becks "Responsive Design" https://www.infoq.com/presentations/responsive-design
Image by Thor
![Page 6: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/6.jpg)
Hohes Risiko
Initial State Target State Step 1 State 1 Step 2 State 2 State n-1 Step n Steps …
Leap
![Page 7: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/7.jpg)
Initial State Target State Step 1 State 1 Step 2 State 2 State n-1 Step n Steps …
Fehler?
Wer
teac
hse
0,00
0,25
0,50
0,75
1,00
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43
Erfolgswahrscheinlichkeit pro Schritt 0,95
Erfo
lgsw
ahrs
chei
nlic
hkei
t
Anzahl Mikroschritte
![Page 8: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/8.jpg)
Initial State Target State Step 1 State 1 Step 2 State 2 State n-1 Step n Steps …
Kosten bei Fehler
zeitaufwändige Suche nach Ursache{
![Page 9: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/9.jpg)
Stepping Stone*
* Stepping Stone Pattern aus Kent Becks "Responsive Design" https://www.infoq.com/presentations/responsive-design
Image by Seattle Municipal Archives
![Page 10: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/10.jpg)
Stepping Stone*
Initial State Target State Step 1 State 1 Step 2 State 2 State n-1 Step n Steps …
Undo is your friend Fehler schnell finden
Aber auch Tests häufig ausführen!
![Page 11: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/11.jpg)
"Test 3 Problem"String methodToImplement(String argument) { if (conditionOn(argument)) { return "Test 3 fake result"; } if (otherConditionOn(argument)) { return "Test 2 fake result"; } return "Test 1 fake result"; }
![Page 12: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/12.jpg)
Refactoring?
![Page 13: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/13.jpg)
Refactoring Von außen beobachtbares
Verhalten
bleibt gleich
![Page 14: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/14.jpg)
Refactoring
Transformation*
Von außen beobachtbares
Verhalten
bleibt gleich
wird erweitert
* aus Transformation Priority Premise , Uncle Bob
![Page 15: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/15.jpg)
Arten von Changes
RED GREEN
REFACTOR
Transformation
Refactoring
Triangulation
![Page 16: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/16.jpg)
TDDRED GREEN
REFACTORGreen Bar Patterns*
* aus "Test -Drivene Development by Example“, Kent Beck
![Page 17: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/17.jpg)
TDDRED GREEN
REFACTORGreen Bar Patterns
![Page 18: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/18.jpg)
Triangulation
Fake it
Obvious Implementation
Fake Response
Fake Response Test 2 Test 2 Generisch gemacht
„Refactoring" macht generisch
Alles implementieren Test 1 Test 1
Test 1
Test 1
Test 1
Test 1
![Page 19: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/19.jpg)
Triangulation
Fake it
Obvious Implementation
„Refactoring" macht generisch Fake Response
Fake Response Test 2 Test 2 Generisch gemacht
Alles implementieren Test 1 Test 1
Test 1
Test 1
Test 1
Test 1
Aufwand
![Page 20: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/20.jpg)
Triangulation
Fake it
Obvious Implementation
„Refactoring" macht generisch Fake Response
Fake Response Test 2 Test 2 Generisch gemacht
Alles implementieren Test 1 Test 1
Test 1
Test 1
Test 1
Test 1
Aufwand vs
Risiko
![Page 21: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/21.jpg)
Green Bar PatternsSweetspot
Triangulation
Fake it
Obvious Implementation
Logik
Struktur
Trivial
![Page 22: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/22.jpg)
RED GREEN
„Klassisches Refactoring“
REFACTOR
Cleanup Remove Duplication
Express Intent
Ziel Wartbarkeit
![Page 23: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/23.jpg)
RED GREEN
REFACTOR
Preparatory Refactoring*
"An example of preparatory refactoring",Martin Fowler
![Page 24: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/24.jpg)
"Green Phase"
Implementation Test grün
„Grün Phase“ beim Triangulieren
![Page 25: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/25.jpg)
"Green Phase"
TransformationPreparatory Refactoring
Ziel: Rot verkürzen
Test grün
Test grün
Implementation
![Page 26: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/26.jpg)
"Green Phase"
Preparatory Refactoring
Test auskommentieren
Test
Test grün
Test grün
Implementation
TransformationTest
![Page 27: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/27.jpg)
Transformation Priority Premise*
Kontext
Versprechen
Auswahl nächster Testcase
Kleinere Schritte Weniger „Steckenbleiben“
* "The Transformation Priority Premise", Uncle Bob
![Page 28: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/28.jpg)
Prio 1 Trafo Prio 2 Trafo
…
Prio n Trafo
Simpel
Komplex
Transformation Priority Premise
Transformation in nächstem Test
![Page 29: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/29.jpg)
Transformationen1.({}–>nil) 2.(nil->constant) 3.(constant->constant+) WTF? 4.(constant->scalar) 5.(statement->statements) 6.(unconditional->if) 7.(scalar->array) 8.(array->container) 9.(statement->recursion) 10.(if->while) 11.(expression->function) 12.(variable->assignment)
* "The Transformation Priority Premise", Uncle Bob
*
![Page 30: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/30.jpg)
Hypothese1.({}–>nil) 2.(nil->constant) 3.(constant->constant+) 4.(constant->scalar) 5.(statement->statements) 6.(unconditional->if) 7.(scalar->array) 8.(array->container) 9.(statement->recursion) 10.(if->while) 11.(expression->function) 12.(variable->assignment)
0.Refactorings
![Page 31: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/31.jpg)
WahrscheinlichkeitEr
folg
swah
rsch
einl
ichk
eit
Anzahl Mikroschritte
0
0,25
0,5
0,75
1
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43
0,990,950,90,8
1.({}–>nil) 2.(nil->constant) 3.(constant->constant+) 4.(constant->scalar) 5.(statement->statements) 6.(unconditional->if) 7.(scalar->array) 8.(array->container) 9.(statement->recursion) 10.(if->while) 11.(expression->function) 12.(variable->assignment)
0.RefactoringsErfolgswahrscheinlichkeit
pro Schritt
![Page 32: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/32.jpg)
Vorbereitende Refactorings Trivialtestcases
Fake it "Refactoring"
Triangulation
Obvious Implementation Mutual State
Green Bar & TPP?1.({}–>nil) 2.(nil->constant) 3.(constant->constant+) 4.(constant->scalar) 5.(statement->statements) 6.(unconditional->if) 7.(scalar->array) 8.(array->container) 9.(statement->recursion) 10.(if->while) 11.(expression->function) 12.(variable->assignment)
![Page 33: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/33.jpg)
magnifier by Artem Yurov from the Noun Project
![Page 34: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/34.jpg)
Kategorien-SpielGreen Bar Patterns Obvious Implementation Fake it Triangulation
Transformationen
![Page 35: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/35.jpg)
Fake it Outside-In
„Test 3“ Fake 3 result
Logik
Struktur & DekompositionFake it
Triangulation
*Fake it Outside-In
*
![Page 36: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/36.jpg)
Fake it Outside-In
Fake it "Refactoring“„Test 3“
TrafoFake 3 result
Preparatory Refactoring
Logik
Struktur & DekompositionFake it
Triangulation
![Page 37: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/37.jpg)
Fake it Outside-In
Fake it "Refactoring“„Test 3“
TrafoFake 3 result
Preparatory Refactoring
Logik
Struktur & DekompositionFake it
TriangulationGgf. nachtriangulieren
![Page 38: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/38.jpg)
Dekomposition durch
Refactoring
![Page 39: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/39.jpg)
Aufgabe Dekomposition
1.„Test 3“ („Normalfall“, nicht „Trivialfall“) 2.Fake Ergebnis 3.dekomponiere durch Refactoring 4.Fake it generisch machen 5.trianguliere „null-safe“
expect(renderName('David', ‚Voelkel')) .toBe('Firstname: David\nLastname: Voelkel');
expect(renderName(null, null)) .toBe('Firstname: -\nLastname: -');
![Page 40: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/40.jpg)
Rückwärts rechnen
„Virtuelle Fake Daten“
![Page 41: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/41.jpg)
1.„Test 3“ 2.Fake Ergebnis 3.dekomponiere durch Refactoring 4.rechne Stück für Stück zurück mit virtuellen Fake Daten in jedem Schritt
5.join() zum konkatenieren
assertThat(renderMethods(asList("a", "b", "b"))) .isEqualTo(„a(), b(), c()");
Aufgabe rückwärts rechnen
![Page 42: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/42.jpg)
Triangulation mit Fakedaten„Virtuelle Fake Daten“
![Page 43: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/43.jpg)
Aufgabe
Constraints Trianguliere mit TPP Verwende vorbereitendes Refactoring Implementierung mit Collection Pipeline* (oder For Loop)
expect(concatenate(['a', 'b', 'c'])).toBe('abc');
In JS: array.join() In Java: stream.collect(Collectors.joining())
* "Collection Pipeline", Martin Fowler
![Page 44: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/44.jpg)
Aufgabe
Constraints Trianguliere sauber mit TPP Verwende vorbereitendes Refactoring Implementierung mit Rekursion
expect(splitByComma(['a,b,c'])) .toBe(['a', 'b', 'c']);
ohne "split()" aus Lib sonstige wie „indexOf()“ … erlaubt
![Page 45: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/45.jpg)
Stärken?Triangulation Fake it
![Page 46: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/46.jpg)
Stärken?Fake it
Struktur Templating Mapping Dekomposition Berechnungen Collections/Iterationen
Triangulation
Logik Conditionals Rekursionen Algorithmen
![Page 47: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/47.jpg)
Neuer Test nötig?
Sicherheit Scope zu groß
Aufwand
Einsparen Trivialtestfälle Verwendung von Libs implizit in Testdaten Triangulation mit Daten
Daumenregel: neuer Ausführungszweig?
![Page 48: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/48.jpg)
Zu große SchritteRisiken Steckenbleiben beim TDD Lange Fehlersuche
Gegenmittel Hochpriore Changes zuerst => „Zeit im Rot“ minimieren
![Page 49: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/49.jpg)
Kleine SchritteTriangulation Vorbereitende Refactorings
Fake it Rückwärts rechnen / Problem Dekomposition Iterationen
![Page 50: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/50.jpg)
RetroWas hat Dich überascht?
Was glaubst Du ist praxistauglich?
![Page 51: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/51.jpg)
1.„Test 3“ 2.Fake Ergebnis 3.Alles was wir heute gelernt haben!
assertThat(renderMethods(asList("C"))) .isEqualTo(asList(“__A__“, “_B_B_“, “C___C“));
Fallback Aufgabe
![Page 52: Die Kunst der kleinen Schritte...* aus Transformation Priority Premise , Uncle Bob . Arten von Changes RED GREEN REFACTOR Transformation Refactoring Triangulation. TDD RED GREEN REFACTOR](https://reader033.fdocuments.net/reader033/viewer/2022042402/5f12616c9c236726650f25c0/html5/thumbnails/52.jpg)
LicenseCreative Commons Attribution-ShareAlike 3.0