コーディング道場でkoan(公案)とkata(型)

海外のIT関係では
ZenやらKan-jiやらNinja! の「東洋の神秘」に妙なリスペクトを集めているような
そんな話をたまに聞くことがあるけれど,
最近はDojo(道場)でkata(型)やkoan(公案)を学ぶスタイルが楽しいらしいのです.

「禅」の雰囲気に技術をストイックに身につけていく姿が見えるのでしょうか?
一つの題材をあれこれ考えて確かめてみるのがとても楽しそうなので,
記事で紹介されていた,

を試してみました.
このサイトで提供されているKoanは"Red, Green, Refactor"
そう,テスト駆動開発なのですよ!
テスト周りの一連の流れがいまいち身に付いていないなーと
感じていた自分にぴったりなKoanなのです.
Test::Unit をベースにしたKoanをちまちまと解いていける,
そんなステキなプログラムなのです*1.

環境

ruby を実行できて、お好みのエディタがあれば十分なのです.

準備

上記のサイトからzipファイルをダウンロードして,
お好みの場所で解凍,できたディレクトリに移動するだけ.

Dojoの門を叩いてみるっ!

おもむろに

$ ruby path_to_enlightenment.rb

と実行してみましょう!*3

するするとテストが走り,
次の問題の箇所が指示されます.
# meditate on the following code:... の箇所.

(in /path/to/working_directory)
$rvm_home/bin/ruby path_to_enlightenment.rb
AboutAsserts#test_assert_truth has damaged your karma.

The Master says:
  You have not yet reached enlightenment.

The answers you seek...
  Failed assertion, no message given.

Please meditate on the following code:
  /path/to/working_directory/about_asserts.rb:10:in `test_assert_truth'

mountains are merely mountains
your path thus far [X_________________________________________________] 0/274


指定された箇所のコードを読んで,
テストが通るように書き換えてまた実行...
と繰り返すことで,次のKoan へ進んでいけます*4

最初はfalseをtrueに書き換えるだけのような簡単な問題ばかりですが,
ちょっとした達成感を積み重ねられるのが楽しい限りです!*5

274題あるようなので,手応えあるボリュームではないでしょうか?
お,と思った方ぜひお試しを!

蛇足

  • ついでにGit の操作に慣れる,という課題を設けてもよいかも.
  • pythonista にはこんなサイト

*1:別なテスト手法にも通じる...よね?

*2:お好みで[https://github.com/edgecase/ruby_koans:title=github]からも手に入ります.

*3:単に$ rake でもOKです.

*4:なんだかクイズを解いているようなワクワク感いっぱい

*5:ストイックな禅の精神はどこいった...?