「例示による説明」を書いた理由

最近、TDD(テスト駆動開発)に関する情報を集めてる。その理由は、前の演算子順位構文解析法の実装をテストファーストでやろう([id:emeitch:20050422])としてたから。んで、いろいろWebを探して、“Fake It!”(だまし実装)とか “Triangulate”(三角測量)などの手法にたどり着いたのだけれど、はっきりいって、その手順の例を見ても、さっぱりわからなかった。手順そのものは理解できるのだけど、その意義が理解できない。よ〜く、よ〜く考えて、はっ!と理解できた。“Fake It!”と“Triangulate”は、抽象化を助ける手段なんだ!と。つまりは、“Obvious Implementation”(明白な実装)で使うパターンではないのだ。

なのにもかかわらず、私がWebで探した、“Fake It!”や“Triangulate”を説明する例は、“Obvious Implementation”ばかりだったのだ!addメソッド(つまりは足し算メソッド)なんて、あまりに“Obvious Implementation”だ!そんなので説明されても、“Fake It!”や“Triangulate”の価値なんてわからないよ〜。

#でも、TDDの情報をWebで公開しよう!という心意気には、もちろん感謝いたします。

そんなこんなで、“Fake It!”と“Triangulate”は、抽象化を手助けする手段だということを理解したのだが、このパターンはすごく「学習」を考えるうえで重要なパターンだなと感じた。なので、はっきりと概念化したいと考え、自分で書いてみた、というのが「例示による説明」([id:emeitch:20050423])のなりゆき。

なんか、「学習Wiki」でも作りたくなったなぁ。この世の中にはきっと、楽しく、効率よく、本物の知識を学ぶ(教える)パターンがいっぱいあるはずなのだ。皆でその知識を寄せ集めれば、大きな「学習」に関する知識体系ができると思うんだけど...。