emergentes design mit tdd · london school tdd outside-in design from growing object-oriented...
TRANSCRIPT
Emergentes Design mit TDD
Clean Code Days
David Völkel
04.11.2015
@davidvoelkel
TDD & Design
@codecentric
@softwerkskammer
Big Design Up Front
TDD
Fehlschlagender Test
Minimale Implementierung
Refactoring
red
refactor
green
Emergentes Design
Entsteht kontinuierlich
London School TDD
„Mockists“
ATDD
From Growing Object-Oriented Software
by Nat Pryce and Steve Freeman
London School TDD
Outside-In
Design
From Growing Object-Oriented Software
by Nat Pryce and Steve Freeman
UI
Domain Service
Repository DB Adapter
DB
End2End Test
London School TDD
From Growing Object-Oriented Software
by Nat Pryce and Steve Freeman
UI
Domain Service
Repository DB Adapter
DB
End2End Test
Unit Test
London School TDD
Mocking!
From Growing Object-Oriented Software
by Nat Pryce and Steve Freeman
UI
Domain Service
Repository DB Adapter
DB
End2End Test
Unit Test
London School TDD
Mocking!
From Growing Object-Oriented Software
by Nat Pryce and Steve Freeman
UI
Domain Service
Repository DB Adapter
DB
End2End Test
Unit Test
Unit Test
Unit Test
London School TDD
From Growing Object-Oriented Software
by Nat Pryce and Steve Freeman
UI
Domain Service
Repository DB Adapter
DB
End2End Test
Unit Test
Unit Test
Unit Test
Unit Test
Unit Test
Integration
Test
London School TDD
From Growing Object-Oriented Software
by Nat Pryce and Steve Freeman
UI
Domain Service
Repository DB Adapter
DB
End2End Test
Unit Test
Unit Test
Unit Test
Unit Test
Unit Test
Integration
Test
Detroit School TDD
„Classicists“
Mocks nur an Systemgrenzen
(Meist) Inside-Out/Bottom-Up
4 Rules of Simple Design
1. Pass all Tests
2. Clear, Expressive & Consistent
3. No Duplication
4. Minimal Units
Emergentes Design
Entsteht kontinuierlich
Minimal, aber brauchbar
Gefahren
Big Picture?
Akzeptanztests
Refactoring
Disziplin
Designskills nötig
Emergent
Design
London vs. Detroit Design
Outside-In
Absehbarer
Refactoring & Tests Schreiben
Inside-Out
Unbekannter, „emergenter“
Refactoring