WEwLC#4 読書会参加

http://www.fieldnotes.jp/legacy-code/
9/14、サイボウズ・ラボさんで。

それにしても、ラボさんに行くたびに椅子が欲しくなる。が、今回は意地を張って大きな椅子には腰掛けず。

Chapter12

色々修正あるんだけど、頑張りどころはどこかなぁ?という話。
「ここ押さえとけ」というPinch Pointが新たに登場します。このChapterでは、変更が与える影響をまとめて面倒みることのできる要所をPinch Pointとして、ここを軸に色々*1やったらどうか、という展開。
本のや議論の展開からは外れますが、あまりにも細かい単位で*2テストコードが書かれていて*3、もうどうにもメンテできなくなることがあると思います。で、ある地点を過ぎると、「我々はJUnitに夢を見過ぎた」とか言ってメンテストップ宣言が出されることもあるかもしれません。実際、自分はテスト熱に見舞われた時期があって、その時書かれた有象無象のテストをPinch Pointの観点から整理出来ていればなぁ、と、今も悔やまれます。
そういうわけで、新たにテストを書く場合も、既存の手に負えないテストコードたちを整理する場合も使える考え方だと思います。

Chapter13

次回、id:t-wadaさんによって熱弁がふるわれる予定。

Chapter14

ライブラリが牙を剥く時。の、話。
薄皮でもいいからラップしておくといいよ。直接呼んだらいつか痛い目みるよ。いいから信じろ。と書かれています。
ロイヤリティの話以外でも、プロジェクトの最後の最後、たとえばパフォーマンスの問題とかで「そのライブラリ、やっぱ無し」の英断が下されるかもしれませんしね。異議なし。

Chapter15

APIを呼んでるだけですけど、このままじゃダメですか?という話。
APIの部分って他チームや他社さんとの協業だったりするので、Chapter14同様、要注意。
DI等で挿げ替え可能にしておくのがやっぱり良いですね。
ラップする場合、is-aとhas-aのどちらでやるかの暑い熱い議論が行われました。もう一回ちゃんと読む。

Chapter16

やんなきゃいけない。よくわかってないんだけど。という時の話。
何だか新人の時の事を思い出しました。あの時は膨大な数と行数のC言語ソースをテキストエディタgrepして、処理順でエクセルにまとめたりしていましたが、最近のIDEの進歩はすごいですね。
ではなくて、マーカとか使ってローテクで考えを整理するのも有効だよ、という話です。
自分はちょくちょくやっていると思います。メモ帳は奮発して、RHODIAの大きめのやつを使っています。デュアルディスプレイ環境であれば、アプリにメモ書きして参照しながらできるでしょうが、そんなわがままの言えない環境では、紙に頼るしかないのです。RHODIAお勧めです。

Chapter17

失われゆく構造の話。
徐々に失われていく構造を維持するには、語り尽くすしかないだろうという内容。
実際、id:n_shuyo さんが語り尽くしてくれました。すばらし。

Listen to conversations about your design.

の一言が全てだと思うのですが、現実はどうなんだろう。designについて、どれくら話されているんだろう?フレームワークの使い方とかに終始してしまっている気がする。

Chapter18

テストコードが行く手を阻む話。
タイトルから期待したのとはちょっと違くて、クラス名とかファイルの置き場所とか、そっちかよ、という内容。
ふむふむ。なるほど。と、しか言えない。
でも、クラス名や置き場所の指針がちゃんとしているのはありがたいことだと思う。そこで悩まなくてよいのはうれしい。

Chapter19

OOじゃないけど、どうする?という話。

WEwLC Ch19「うちのプロジェクトはOOじゃないもん」最終節に「CだってOOだよ」という、そのまま はてダに引き写したら炎上必至なネタが書いてあって超ウケる。
http://twitter.com/shuyo/statuses/909045979

とは知らずに、後半2つを担当。これどうしたものかと相当悩んだのは良い思い出。wikiに書いてそのまま読んだのでは炎上してしまいそうだったので、慣れないスライド作成を行い、本番に臨みました。が、「超ウケる」ところ以外はなんだかグダグダの急ぎ足になってしまい、反省しきり。あと、新しい方への配慮も全然できなくて、これも反省。
内容としては、筆者のテストに対する執念が感じられました*4が、サンプルがサンプルなので、「それはないだろ」「キモい」という予想通りのDisり結果と相成りました。

懇親会

秋刀魚の値段にいちゃもんをつけていたような気がしないでもないですが、あんまり覚えていないです。ごめんなさい。
id:tenkoma さんが九州っこで、何だかライバル視したのは覚えています。
徹夜準備組と見受けられる人(自分含む)が、撃沈していたのも何となく覚えています。お疲れ様です。


今回もとても楽しい読書会でした。
id:t-wada さんのプレイを見ることもできましたし、新しい方も来てくれました。大満足です。
主催者のせとさん、会場を準備してくれた id:n_shuyo さん、ありがとうございました。
参加者の皆様、お疲れ様でした。次回こそ、お菓子を持っていきたいと思います。

*1:もちろんテストも

*2:それこそ、beanのgetterとかsetterにも

*3:カバレッジ偏重など、大人の事情もありましょうが

*4:テストするためにはコンパイラも変えるだろ。みたいな