On Thu, Jun 11, 2009 at 2:48 PM, Stephen Eley<sfe...@gmail.com> wrote: > So... In the recent five-hundred-and-forty-seventh iteration of the > "What's the point of mocks?" discussion on this list, David Chelimsky > ended a message with: > >> [ . . . ] Really, I think >> that's what we should all be striving for. Not so much "should I use >> mocks or not," but "when should I choose to use them?" > > And here... Here you made me really pause and think. > > David: Now that you're a Pragmatic author -- have you read Andy's > _Pragmatic Thinking and Learning?_ Damn good book. The most valuable > part of it to me was in the first couple of chapters, which laid out > the Dreyfus model of skill acquisition. Having learned about it a few > months ago, I'm starting to see it everywhere now. I don't intend to > rehash the whole theory, but it basically says that the development of > a skill (_any_ skill) follows a predictable pattern: > > 1. Novice (needs clear checklists or recipes; not ready for theory or > problem-solving) > 2. Advanced Beginner (can solve typical problems and alter the recipe > within parameters) > 3. Competent (understands the theory behind the recipes and can act > creatively) > 4. Proficient (acts on principles rather than recipes; using the skill > is nearly automatic) > 5. Expert (defines and innovates the field; works on intuition rather > than rules)
And look at the chart in the section "Is a Ruby Code-base Hard to Understand?" in the article which Martin Fowler just published today http://martinfowler.com/articles/rubyAtThoughtWorks.html It shows a curve of the usage of metaprogramming in Ruby as the experience of the programmer progresses, along with annotations about what the thoughts about the technique during the leaning progression. The progression goes: Attitude Usage Scary and bad low Scary and good at the high end of the sensible range Obvious and good high in the "over usage" range Obvious and bad at the high end of the sensible range The real key to mastery is gaining experience by making mistakes and learning not only techniques, but the trade-offs in when and when not to use them. -- Rick DeNatale Blog: http://talklikeaduck.denhaven2.com/ Twitter: http://twitter.com/RickDeNatale WWR: http://www.workingwithrails.com/person/9021-rick-denatale LinkedIn: http://www.linkedin.com/in/rickdenatale _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users