Code kata
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Code kata

  • 4,590 views
Uploaded on

A code kata is an exercise in programming which helps hone your skills through practice and repetition.

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,590
On Slideshare
4,476
From Embeds
114
Number of Embeds
4

Actions

Shares
Downloads
73
Comments
0
Likes
12

Embeds 114

http://www.programmersinpadua.it 110
https://twitter.com 2
http://twitter.com 1
http://www.scoop.it 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Code KataGiordano Scalzo
  • 2. Who is a programmer?
  • 3. A step towards management...
  • 4. ...or point of no return!
  • 5. NO!
  • 6. Classical Ages of Computer Programming
  • 7. Dark Ages of Computer Programming
  • 8. Renaissance of Computer Programming
  • 9. A real profession
  • 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. SW Craftsman Tools: Languages
  • 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. Tddfirst the developer writes a failing automatedtest case that defines a desired improvementor new function http://en.wikipedia.org/wiki/Test-driven_development
  • 14. Tddthen produces code to pass that test http://en.wikipedia.org/wiki/Test-driven_development
  • 15. Tddand finally refactors the new code toacceptable standard http://en.wikipedia.org/wiki/Test-driven_development
  • 16. Tdd cycle
  • 17. Tdd cycle
  • 18. Tdd cycle
  • 19. Tdd cycle
  • 20. Tdd cycle
  • 21. Tdd cycle
  • 22. Tdd cycle
  • 23. Tdd cycle
  • 24. Tdd cycle
  • 25. Tdd cycle
  • 26. Tdd cycleGot it!
  • 27. Tdd cycleEasy, isn’t it?
  • 28. Tdd cycleNo, at all! :-(
  • 29. SW Craftsman Tools: Split stories Business problem
  • 30. SW Craftsman Tools: Split stories Presentation Business logic Persistence
  • 31. SW Craftsman Tools: Split stories Ft1 Ft2 Ftn Presentation Business logic Persistence
  • 32. SW Craftsman Tools: Editors
  • 33. When improve them?
  • 34. Work != Practice
  • 35. Code kata
  • 36. Code kataKata ( or literally: "form") is a Japaneseword describing detailed choreographedpatterns of movements practised either soloor in pairs.
  • 37. Code kataPractice on small exercise
  • 38. Code kata30 minutes to an hour long
  • 39. Code kata styles‘Prag’ Dave ThomasSimple ProblemsMany correct solutionsDifferent each timeLearn by experimentation
  • 40. Code kata styles‘Uncle’ Bob MartinCopy a MasterFollow forms preciselyLearn by RepetitionAim for perfect performance
  • 41. Performance!
  • 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. 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. 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. total when A and B are both inspecial offer it "is 175 when AAABB is scanned"
  • 46. Resources
  • 47. http://codekata.pragprog.com
  • 48. http://codingkata.org
  • 49. http://www.katacasts.org
  • 50. http://www.coderloop.com
  • 51. http://www.vimgolf.com
  • 52. Randori
  • 53. Code Retreat
  • 54. It’s your turn!
  • 55. giordano.scalzo@cleancode.it@giordanoscalzowww.slideshare.net/giordanogithub.com/gscalzo