Your SlideShare is downloading. ×
0
Code KataGiordano Scalzo
Who is a programmer?
A step towards management...
...or point of no return!
NO!
Classical Ages of Computer Programming
Dark Ages of Computer Programming
Renaissance of Computer Programming
A real profession
The Way of the carpenter is to becomeproficient in the use of his tools,first to lay his plans with a true measure andthen p...
SW Craftsman Tools: Languages
SW Craftsman Tools: TddTest-driven development (TDD) is asoftware development technique that relieson the repetition of a ...
Tddfirst the developer writes a failing automatedtest case that defines a desired improvementor new function              ...
Tddthen produces code to pass that test                            http://en.wikipedia.org/wiki/Test-driven_development
Tddand finally refactors the new code toacceptable standard                            http://en.wikipedia.org/wiki/Test-d...
Tdd cycle
Tdd cycle
Tdd cycle
Tdd cycle
Tdd cycle
Tdd cycle
Tdd cycle
Tdd cycle
Tdd cycle
Tdd cycle
Tdd cycleGot it!
Tdd cycleEasy, isn’t it?
Tdd cycleNo, at all! :-(
SW Craftsman Tools: Split stories     Business problem
SW Craftsman Tools: Split stories        Presentation       Business logic        Persistence
SW Craftsman Tools: Split stories     Ft1    Ft2         Ftn        Presentation       Business logic        Persistence
SW Craftsman Tools: Editors
When improve   them?
Work != Practice
Code kata
Code kataKata (    or    literally: "form") is a Japaneseword describing detailed choreographedpatterns of movements pract...
Code kataPractice on small exercise
Code kata30 minutes to an hour long
Code kata styles‘Prag’ Dave ThomasSimple ProblemsMany correct solutionsDifferent each timeLearn by experimentation
Code kata styles‘Uncle’ Bob MartinCopy a MasterFollow forms preciselyLearn by RepetitionAim for perfect performance
Performance!
Kata 9: Back to Checkout http://codekata.pragprog.com/2007/01/kata_nine_back_.html    Item   Unit      Special           P...
total with no special offersit "is zero when nothing is scanned"it "is 50 when A is scanned"it "is 80 when AB is scanned"i...
total when A is on special offer   it "is 130 when AAA is scanned"   it "is 180 when AAAA is scanned"   it "is 260 when AA...
total when A and B are both inspecial offer  it "is 175 when AAABB is scanned"
Resources
http://codekata.pragprog.com
http://codingkata.org
http://www.katacasts.org
http://www.coderloop.com
http://www.vimgolf.com
Randori
Code Retreat
It’s your turn!
giordano.scalzo@cleancode.it@giordanoscalzowww.slideshare.net/giordanogithub.com/gscalzo
Upcoming SlideShare
Loading in...5
×

Code kata

4,004

Published on

A code kata is an exercise in programming which helps hone your skills through practice and repetition.
Why, when and how do code katas.

Transcript of "Code kata"

  1. 1. Code KataGiordano Scalzo
  2. 2. Who is a programmer?
  3. 3. A step towards management...
  4. 4. ...or point of no return!
  5. 5. NO!
  6. 6. Classical Ages of Computer Programming
  7. 7. Dark Ages of Computer Programming
  8. 8. Renaissance of Computer Programming
  9. 9. A real profession
  10. 10. The Way of the carpenter is to becomeproficient in the use of his tools,first to lay his plans with a true measure andthen perform his work according to plan. -Go Rin No Sho
  11. 11. SW Craftsman Tools: Languages
  12. 12. SW Craftsman Tools: TddTest-driven development (TDD) is asoftware development technique that relieson the repetition of a very short developmentcycle http://en.wikipedia.org/wiki/Test-driven_development
  13. 13. Tddfirst the developer writes a failing automatedtest case that defines a desired improvementor new function http://en.wikipedia.org/wiki/Test-driven_development
  14. 14. Tddthen produces code to pass that test http://en.wikipedia.org/wiki/Test-driven_development
  15. 15. Tddand finally refactors the new code toacceptable standard http://en.wikipedia.org/wiki/Test-driven_development
  16. 16. Tdd cycle
  17. 17. Tdd cycle
  18. 18. Tdd cycle
  19. 19. Tdd cycle
  20. 20. Tdd cycle
  21. 21. Tdd cycle
  22. 22. Tdd cycle
  23. 23. Tdd cycle
  24. 24. Tdd cycle
  25. 25. Tdd cycle
  26. 26. Tdd cycleGot it!
  27. 27. Tdd cycleEasy, isn’t it?
  28. 28. Tdd cycleNo, at all! :-(
  29. 29. SW Craftsman Tools: Split stories Business problem
  30. 30. SW Craftsman Tools: Split stories Presentation Business logic Persistence
  31. 31. SW Craftsman Tools: Split stories Ft1 Ft2 Ftn Presentation Business logic Persistence
  32. 32. SW Craftsman Tools: Editors
  33. 33. When improve them?
  34. 34. Work != Practice
  35. 35. Code kata
  36. 36. Code kataKata ( or literally: "form") is a Japaneseword describing detailed choreographedpatterns of movements practised either soloor in pairs.
  37. 37. Code kataPractice on small exercise
  38. 38. Code kata30 minutes to an hour long
  39. 39. Code kata styles‘Prag’ Dave ThomasSimple ProblemsMany correct solutionsDifferent each timeLearn by experimentation
  40. 40. Code kata styles‘Uncle’ Bob MartinCopy a MasterFollow forms preciselyLearn by RepetitionAim for perfect performance
  41. 41. Performance!
  42. 42. Kata 9: Back to Checkout http://codekata.pragprog.com/2007/01/kata_nine_back_.html Item Unit Special Price Price -------------------------- A 50 3 for 130 B 30 2 for 45 C 20 D 15
  43. 43. total with no special offersit "is zero when nothing is scanned"it "is 50 when A is scanned"it "is 80 when AB is scanned"it "is 115 when CDBA is scanned"
  44. 44. total when A is on special offer it "is 130 when AAA is scanned" it "is 180 when AAAA is scanned" it "is 260 when AAAAAA is scanned"
  45. 45. total when A and B are both inspecial offer it "is 175 when AAABB is scanned"
  46. 46. Resources
  47. 47. http://codekata.pragprog.com
  48. 48. http://codingkata.org
  49. 49. http://www.katacasts.org
  50. 50. http://www.coderloop.com
  51. 51. http://www.vimgolf.com
  52. 52. Randori
  53. 53. Code Retreat
  54. 54. It’s your turn!
  55. 55. giordano.scalzo@cleancode.it@giordanoscalzowww.slideshare.net/giordanogithub.com/gscalzo
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×