Plan
- TDD The Hard Way
- Transformacje, czyli ???
- Kata, czyli live demo
- TPP
TDD tl;dr
- napisz test, który nie przechodzi
- spraw żeby test przechodził
- teraz możesz rozważyć refactoring
Trzy prawa TDD
Nie wolno napisać:
- ani linijki kodu produkcyjnego bez failującego testu
- więcej kodu testu niż to jest potrzebne, żeby test failował
- więcej kodu produkcyjnego niż to jest potrzebne, żeby test przechodził
Założenia
- brak z góry wybranego rozwiązania
- testy → bardziej szczegółowe
- kod produkcyjny → bardziej ogólny
Transformation Priority Premise
- ∅ → None no code at all → code that does nothing
- None → constant
- constant → constant+ a simple constant to a more complex constant
- constant → variable replacing a constant with a variable or an argument
- statement → statements adding more unconditional statements
- unconditional → if splitting the execution path
- variable → collection
- collection → container
- statement → recursion
- if → while
- expression → function replacing an expression with a function or algorithm
- variable → assignment replacing the value of a variable
http://blog.8thlight.com/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html