第2回TDD本読書会に参加しました

第2回TDD本読書会の議事録はこちら→議事録
今回も快適な場所を提供してもらいました。id:mac10に感謝。
さらに飲み物やお菓子もあってとてもリラックスできました。id:katzchangに感謝。
今回は12章から17章は自分が読む番だったのでとりあえず2回ほど読んである程度理解したつもりで参加したのですが、全然分かってなかったです(汗。それと、Javaは分からないのでC#でやらせてもらいました。C#は普段メインとして使ってる言語ではないのでちょっと苦しい場面もありましたが^^
そのせいもあって時間が結構かかってしまいました。まぁ内容も難しかったんですけど、なんとか皆さんの力を借りて切りのいいところまでできてよかったです。参加者の皆さん、ありがとうございました。
内容の難しさっていうのは、オブジェクト指向カプセル化多態性デザパタのコンポジットが当たり前のように出てくることや、設計部分で著者のケントベックの考えを理解するところですね。
その人がどんな設計思想を持ってプログラムを作っているのかっていうのは、普段他人のプログラムを読むときもしんどいところで、だからこそドキュメントが必要になると思うんですけど、その肝心のドキュメント部分でケントベックの言い回しが理解しにくいんですよね。結局プログラムを読んだ方が何をしようとしているのか分かるという。まぁ、この辺はTDDの本質とは別のところなのかもしれませんが。
今回の勉強会でリファクタリングというものに興味が湧いてきました。TDDのプロセスを見ると、

  • 小さなテストを追加する
  • すべてのテストを実行し失敗する
  • 変更を行う
  • テストを実行し、成功する
  • 重複を取り除くために、リファクタリングを行う

このサイクルが延々と短時間で行われるわけで、そこには必ずリファクタリングの過程が存在します。リファクタリングを知っているのと知らないのとではTDDに大きく影響を与えると思います。
次回までにMartin Fowlerを読んでおきたいですね。

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 94人 クリック: 3,091回
  • この商品を含むブログ (312件) を見る
今回も非常に有意義な時間になりました。次回までちょっと時間が空きそうなので、皆さんから教えてもらうだけでなく、自らも提供できるようにいろいろと考えておきたいですね。