Triangle.rb Notes - Code Katas
Code Katas: Growing Through Deliberate Practice
2015-04-14 by Cory Foy (Meetup) (blog post)
Takeaways
- Test First
- Simple Solution
- Judicious Refactoring
- Elegance Emerged
Four Rules Of Simple Design
- Runs all the tests
- No duplication
- Expresses developer intent
- Minimizes number of classes and methods
We have become afraid of what will happen naturally.
Christopher Alexander
Dreyfus Model Of Skills Acquisition
- Novice - needs lot of context, explicit instructions
- Advanced Beginner - starts trading instructions for intuition
- Competent
- Proficient
- Expert - relies almost entirely on intuition
Steps
- Discover the problem
- Discover how to solve it
- Solve it
Examples
- test first
- new languages
- no tests
- vim versus emacs
- tmux versus multiple windows