Red, ???, Green, PROFIT!

michał chałupczak

michal@chalupczak.info
michal@pykonik.org

@tochomik
http://michal.chalupczak.info

http://michal.chalupczak.info/
talks/algorithms_and_tdd

Plan

  • TDD The Hard Way
  • Transformacje, czyli ???
  • Kata, czyli live demo
  • TPP

TDD

Terribly Dull Duty

TDD tl;dr

  1. napisz test, który nie przechodzi
  2. spraw żeby test przechodził
  3. teraz możesz rozważyć refactoring

Trzy prawa TDD

Nie wolno napisać:

  1. ani linijki kodu produkcyjnego bez failującego testu
  2. więcej kodu testu niż to jest potrzebne, żeby test failował
  3. więcej kodu produkcyjnego niż to jest potrzebne, żeby test przechodził

Kata

Założenia

  1. brak z góry wybranego rozwiązania
  2. testy → bardziej szczegółowe
  3. kod produkcyjny → bardziej ogólny

PROFIT?

Transformation Priority Premise

  1. ∅ → None    no code at all → code that does nothing
  2. None → constant
  3. constant → constant+    a simple constant to a more complex constant
  4. constant → variable    replacing a constant with a variable or an argument
  5. statement → statements    adding more unconditional statements
  6. unconditional → if    splitting the execution path
  7. variable → collection
  8. collection → container
  9. statement → recursion
  10. if → while
  11. expression → function    replacing an expression with a function or algorithm
  12. variable → assignment    replacing the value of a variable

http://blog.8thlight.com/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html

Q&A