Working Effectively With Legacy Code読書会第2回

http://www.fieldnotes.jp/legacy-code/?2ndMeeting
昨日行ってきた。
参加者は前回の半分ぐらいになってしまったが今回も楽しむことができた。
久しぶりにid:t-wadaさんにお会いできたのもよかった。

Chapter6 I Don't Have Much Time and I Have to Change It

発表はid:kunitさん。
当日まとめたとのことだったが分かりやすい資料だった。
資料で本当はprivate void logPayment()とするところをpublic void logPayment()としていたことからprivateメソッドのテストはどうするのかという議論に発展していったのは面白かった。
著者の見解がChapter10に書かれている。

Chapter7 It takes Forever to Make a Change

発表はmootohさん。ホワイトボードを使っての発表だった。ありそうでいてこれまで見たことがない発表スタイル。面白い。
インタフェースの話が出てきて、私は「インタフェースは滅多に変更してはいけないのでは」と発言したらid:t-wadaさんから公布済インタフェースという話が出てきた。
なるほど〜。初めて知った、この話。
あと、インタフェースを作るのはいいとして実クラスを生成するのは誰?という話が出てきたが、今であればやはりDIコンテナだろう。
testabilityのために依存性を排除することを突き詰めていったらDIに行き着くはずだ。

Chapter 8 How Do I Add a Feature?

発表はid:tenkomaさんと川西さん。
id:tenkomaさんはGoogle Docsを使っての発表。これまた面白い発表スタイルだ。
川西さんはオーソドックスにパワポでの発表だったが内容が面白い。
「本書でのTDDの例はちょっと微妙だね」という話になった。
私もこの例だったらfake itするだろうと思っていたし確かに微妙。
私は車窓からの TDDでTDDに開眼した口だが、Stackの例は簡単すぎてこれも微妙らしい。
でもこの資料読めばTDDのエッセンスはつかめると思う。
後半は差分プログラミングの話。
LSPは難しいのか。そうかもなあ。原則と現実のバランスをうまくとらないとダメってことだね。
継承のやりすぎはよくないというのは今では常識とも言えるが、初めて継承を知った人は使いまくるだろうなあ。っていうか俺がそうだった。だって強力だもん。
でも継承しまくった結果、非常に追いづらいコードとなってしまい、こりゃいかんなと思った次第。
で、デザパタで委譲を知って、「おお、こうすればいいのか」と思った。
それからは継承を使うのは慎重になっている。

懇親会

読書会の内容とは全く関係ないExcelの話で盛り上がった。
いやあ、面白かった!Excelってすげえなあ。何か、今更ながらものすごい可能性を感じるね。


次回はおそらく中国にいるので参加できないが9月にまた参加したいと思う。
そのときはぜひ購入したMacBookを持参したい。


会場提供いただいたサイボウズ・ラボ : topさん、id:n_shuyoさん、そして幹事のせとさんありがとうございました!