2005-11-27
■[Perl][methodology] Test::More - プログラミング中に湧くアイデアを書き留める
「 Test::More - LazyLoadLife」について、角谷さんに「詳しく」と希望されたのだがうまく書けない。ので、まずいまま書く。ここらへんを突き詰め体系化すれば、プログラミングスタイルに小さい変革を起こすことができると思うのだが、私には荷が重い。まぁ、交響チラシの裏に書いておけばミームはいつか誰かが咲かせてくれるだろう。
Perl のテスティング・フレームワーク Test::More の機能・特に SKIP, TODO ブロックが、TDD(BDD) や 過去はまつもとさん、昨日は西本さんが漏らしていた「TDD でアイデアが失われていく」というハッカーの悩みの一助になるのではないか? と考えたのだ。
まずは、Test::More の リファレンスの SKIP, TODO の項を読んで欲しい。……読んだ? この機能が揮発性のアイデアを書き留めておくのに丁度良いのでは? ということだ。
BDD に関してはこういう機能が助けになるのは間違いないかな。散漫に浮かぶ仕様を書き留めておくことができ、テストを走らせるたび残りタスクを「見える化」するのに役立つ。ただ、Test::More はどのテストも分け隔てなくのっぺりと書いていくスタイルがイヤンなので、Test::Unit 系のフレームワークに取り込まれる形が好みだ。あぁ、こういうケースで「.NET 系言語の属性」や「Java のアノテーション」が役に立つのかな? Ruby勉強会@関西-6 で・かずひこさんによる・TDDチュートリアルで、高橋さんと喋った時は「アノテーションなんて要らん、メソッド名を test_* にする規約で充分じゃん」と思っていたのだが。todo_* でも充分か?
ハッカー(オールド・タイプ?)の悩みに対する回答としては、Test::More は充分でない。アイデアは仕様以外にもいっぱいあるからだ。しかし、ただひたすらにプログラムを書くという行為は、恐らくアイデアを相当に失っているのではないかと思う。少なくとも私は種々雑多なアイデアを片っ端から忘れていく。そこで腰リールですよ! 2週間ぐらい試しましたがかなりいい。定期的な GC が必要だけど。 図によるメモも必要だと思うのでスケッチブックなり携帯ホワイトボードなりで担保。
(追記:ハッカーが TDD で失うのはアイデアでなくリズムだな。一心不乱に打ちこむ集中力。TDD は TDD で心地よいリズムがあるんだけど。音楽には例えれば…例えなくてもいいか。あー TDD は事故を起こさないように制限速度で確実に走り長距離でのゴールを目指す方法だった(この例えはペアプロで使われたような気がするが TDD にも当てはまるよな)。やっぱ仕事用か。いやいや、やっぱり保守を考えるとテストがあるとないとは全然違うのだった。オープンソース・ソフトウェアにも必要でしょ?保守。)
SKIP, TODO はインターフェイス・アイデアには有効だが、アルゴリズムやデータ構造のアイデアは書けないと思い至った。あぁ、TDD (BDD) はインターフェイスの視点からプログラムを眺めているのだな。「プログラム=アルゴリズム+データ構造+インターフェイス」か。
■[methodology] アイデアの GC
アイデアの GC の仕方はどっかに体系的に纏まってないかのう。腰リールを始めたはいいが、発散したものを収縮させる方法を決めかねている。とりあえず『考具』や『GTD』を読み直すか。
基本 GTD で、毎日決まった時間に GC して、週に一度「いつかやる」を KJ 法でカテゴリを切っておき、事を起こす際はもう一度眺めてマインドマップを書いてから取り掛かる。って流れだろうか。
問題は「いつかやる」をいつやるかと溜まったものを捨てるタイミング。リマインダーは定期的でいいならコンピュータにさせるのが吉。捨て方を考えると捨てないで全文検索できるデジタル保存が俄然魅力的になってくる。アナログの即時・機動性とデジタルの保存・検索性で喧嘩しているのが悩み。デジタル腰リール欲しい。携帯電話の進化待ちかなぁ。カメラもあるし。はたまた「作れ」ってことか。「入力」の送信さえできればいいんだよな。「処理」はサーバでするから。「出力」は PC でも携帯電話でも。
■[Family] メトメト
娘の成長記録。
めっとーめっとー めとめと〜
ぶったーさんのー 踊り過ぎ
めっとーめっとー めとめと〜
……
歌いながら踊る(ちょっとコサックダンス風)。保育園の友達とユニットを組んでいるらしい(アイドルグループか?)。チケット1席100万円。家族割引あり。
「あおあおブレード世界」と「けんけんワールド」っていうのもあったな。時々前述の世界で流行っているゲーム性の偏った(もしくは皆無の)理不尽な遊びをやらされる(あ、遊びを作ったことを褒めたかな? ちょっと思い出せない)。地図も書いてくれた。大きくなったら枕に顔を埋めてバンバン叩くだろうか。
自作の絵本や漫画をどっかにストックしておかなきゃな。こっちは本当に面白いものを書くので、将来に期待している。ちょっとした違いでいわゆる「腐女子」になるかもね。
■[Ruby][Community] 日本Rubyの会 公式Wiki - Ruby勉強会@関西-7 (2)
ごめんなさい、持って行くの忘れました(厳密にいうと送ってもらった妻の車の中に忘れた)。KOF 2005 の忘れ物と、gollum さんから借りた『週刊石川雅之』と『もやしもん』。ごめんなさい。
mr さんは今回は来てなかったかな? セーフ? gollum さんには 12月の Rails 勉強会で返します。
ちなみに、Amazon アソシエイトで『週刊石川雅之』の方が売れてるんですが、私は『もやしもん』の方が面白いと思います。印象の羅列はアサマシにふさわしくないようです。
あと RubyConf 2005 の T-shirt を着ていったのに見せびらかすのを忘れていました。羨ましがられるかどうかはともかく、使いどころ少ないのに……。





