2006-10-24(Tue) [長年日記]
■1
『WEB+DB PRESS Vol.35』:実演! テスト駆動開発
祖母の一周忌でIP unreachableな沖縄に数日引っこんでいる間に様々なイベントに乗り遅れた、だがしかし。以下はカッとなって書いた:
あらゆるアルファギークなお歴々による連載記事の読みごたえはここ最近の本誌の常だが、こと今号については、我らがid:t-wadaさんによるTDD記事の第1特集「実演!テスト駆動開発」、である。読め。編集者2.0、グレイトジョブ!!!!!!!
ハッカーが「見てるとやっぱめんどそうだなあ。Eclipseの中で生活できる人はあれでもいいのかも知れないけど。」とコメントしている。だがしかし。その「あれ」とはどれだ?
TDDはハッカーのための技術ではない。ハッカーにTDDは要らない。ただただハックすればよい。偉大なプログラマは偉大なプログラミングをすればよい。だが、ハッカーならぬ凡百たる私のような"普通の"プログラマはそうはいかない。TDDは我々が日々の仕事に自信を持ち、誇りを持って定時に帰るための思想だ。
TDDの真ん中のDは何か。私の日々の仕事をドライブしているものは何か。ハッカーはテストがなくともDirveされる(Drivenな)存在である。たぶん。彼らは怠惰だ。短気だ。傲慢だ。だが、少なくとも私には怠惰が足りない。怠惰が足りないプログラマの仕事をドライブするものこそテストだ。私は毎日が不安だ。自分のコードは「正しい」のか。私の書いたコードに「意味」はあるのか。「価値」はあるのか。ならば、そうだ。テストだ。「不安」をテストにするのだ。吉良吉影は静かに暮らしたい。
我々は偉大なプログラマにはなれないかもしれない。だが、偉大な習慣を身につけたプログラマにはなれる。確実に。TDDとは、そういうことだ。
この項「あとで書く」……ので、id:t-wadaさんの「実演! テスト駆動開発」を読め。特設サイトも必見。この号はプレゼントとして『テスト駆動開発入門』が2冊あることもお見逃しなきよう。読め!! 而して写経せよ!! D is for Driven。クは駆動のク。
リーン開発の現場 カンバンによる大規模プロジェクトの運営(Henrik Kniberg/角谷 信太郎/市谷 聡啓/藤原 大)
『なるほどUnixプロセス ― Rubyで学ぶUnixの基礎』
SCRUM BOOT CAMP THE BOOK(西村 直人/永瀬 美穂/吉羽 龍太郎)
実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる(Steve Freeman/Nat Pryce/和智 右桂/高木 正弘)
The RSpec Book (Professional Ruby Series)(David Chelimsky/Dave Astels/Zach Dennis/角谷 信太郎/豊田 祐司/株式会社クイープ)
アジャイルサムライ−達人開発者への道−(Jonathan Rasmusson/西村 直人/角谷 信太郎/近藤 修平/角掛 拓未)
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~(Mike Cohn/マイク コーン/安井 力/角谷 信太郎)
インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践(Ken Pugh/角谷 信太郎(監訳)/児島 修)
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣(Venkat Subramaniam/Andy Hunt/木下 史彦/角谷 信太郎)
JavaからRubyへ ―マネージャのための実践移行ガイド(Bruce A. Tate/角谷 信太郎)










ハッカーはJavaのTDDはPerlとかRubyのTDDより面倒そうだと言ってるだけでTDDそのものを面倒とは言ってないのでは?
TDDやってました。<br>あれって、凡人のプログラマには使えないっすよぉ><<br>テストを思いつかないっすもん><<br><br>ソースを書いて、そのテスト書いてって・・・<br>そんなコーディング順序になっちゃう・・・
それでいいんじゃないですか。TDDも1つの技法でいきなり上手にできるわけではないし、はじめのうちはテストを後回しに書いても仕方がないでしょう。そのうち、どういうテストを先に書けばいいかがわかるようになります。一番大切なのは、テストがあることで安心が得られること。