2002-09-11 (Wed) [長年日記]

エクストリーム・プログラミングTDD(テスト駆動開発)トレーニング(1)

正直、全編英語はかなりキツい。でも、とてもゆっくりしゃべってくれる & 逐一ホワイトボードに書いてくれる & 超重要なところは通訳してくれる、のでなんとかついていける感じ。XP のプラクティスのひとつであるユニットテストに絞った実践的トレーニング。開発をテスト駆動で進行させるための know how を伝授してくれる。

例題に対して JUnit で細かく細かくユニットテストを繰り返しながら、リファクタリングを行い理想的なコードになるまでを手取り足取り実体験できた。

実際 JUnit 超入門から初めてくれるので「 XP ってナニ?」という方でも大丈夫なトレーニングとなっているし、教室全体の和やかな雰囲気も相まって、値段と比較して驚くほど敷居の低いトレーニングとなってる。

JUnit 自体はすでにいくつかのプロジェクトで使用してきている実績があるので、教えてもらってない機能をサクサクと使ってみせたら「Oh! JUnit professional !」と褒められて、ちょっと嬉しい。

Kent が何度も何度も繰り返しに言っていた「Green and Clean」が印象的であった。JUnit でユニットテストを実行し、すべてのテストが成功するとインジケータが Green となる(ひとつでも失敗すると Red)が、一行変更しては JUnit を実行してGreen かどうか常に注意しながら進める。Red の場合は Fake (即値など)を入れてでも Green になるようにする。今度はその Fake を除去するにはどうするのかを Green に注意しながらまたリファクタリングしていくというサイクルを繰り返す。

「Green and Clean」とは常に Green を維持すればコードも自ずと Clean になるという彼の持論ということらしい。

トレーニング中の開発は、すべて Eclipse 上で行うことになってる。初めてまともに使ってみたけど、これのリファクタリングツールの充実はすごいかもしれない。メソッド抽出、変数のリネームを全/半自動で実行してくれるのは、病み付きになりそう。

明日は、JUnit 開発者自身による JUnit の奥義になるようなので楽しみ。

最近の Meadow2 ならば

ImageMagick 5.4.8をサポートしているので X 無しでフルカラーのインライン画像を表示することが可能です。こんな感じ

まだ Alpha ステータスなのでバイナリの配布を行っていませんし、コンパイルできるのも今のところ Visual C++ 6.0 or Visual C++ .Net のみのため、使う人を選ぶと思いますが、ここ最近の安定度、速度面から言って乗り換える価値があると思われます。

ここらへんhttp://www.meadowy.org/users/kose/から tar ball と patch を取得してコンパイル可能です。