第3回設計勉強会に参加した(発表も)
PHPのフレームワークを使った実際のプロジェクトでどういう風に設計し、その結果、どこが良かったか/いまいちだったかを皆で持ち寄って議論できればと思います。
第3回設計勉強会 - events.php.gr.jp
という主旨の勉強会に、PHPのフレームワークを実際のプロジェクトで使ったことのない私が参加してきましたよ。はいはいKYKY。
id:shimookaさんの発表
スタートは、勉強会の主催者・id:shimookaさんの発表。途中で、HTTPレイヤのテストをしているという話が出てきました。私も、HTTPレイヤのテストは励行すべきと考えているので、すでに実践されていてうまくいっているのが心強く感じました。全体を通じて、もっと詳しく聞きたい部分がいくつかあったのですが、時間を考えて、質問は遠慮しました。そこまでKYではない。
聞きたかったのは:
- O/Rマッパでうまくいかない部分とは?
- テスト用のデータ(fixture)はどうしているのか?
- PHPUnitによるHTTPレイヤテストの具体例
のあたりです。機会があればぜひ。
「Action → Service → DAO」で似たような処理が出てくるという部分は、コードジェネレータ(scaffold)でなんとかするとか、Template Method パターンを使うとか、そんな感じなのかなあと思いましたが、きちんと把握できていないかもしれません。
追記(2009-08-25)
時間があれば発表予定だったid:shimookaさんのテスト話、資料が公開されました。
上記の3点のうち、O/Rマッパ以外の2点はうっすら分かった感じです。
やっぱり「バランス重要」なんですね。理想を追ってばかりいて実装が進まない私に、言って聞かせてやりたい。
id:msakamoto-sfさんの発表
続いて、Wikiを自作されているid:msakamoto-sfさんの発表。RDBMSを使っていないというのが面白いですね。種々のバージョンをサポートするのが厳しいという理由からとのことですが、そのあたり、理想と現実のバランス感覚が素晴らしいと感じました。テストをあまり書きすぎるな、という経験論もそうです。
ACLにまつわる複雑なロジックをTDDで実装した結果、安心感が得られているというお話もありました。私はTDDで複雑なロジックを実装した経験がないのですが、おそらくそうなんだろうなと想像できます。
Singleton がユニットテストで扱いづらいという話は、下記の記事が参考になるかもしれません。
id:IwamotoTakashiさんの発表
私ですが、勉強会の主旨にそぐわない内容だったかもしれません。KYということでご容赦ください。
資料は下記URLにあります。Zoho Showって、はてダに貼り付けられないのね…。
「ダチョウ式リダイレクト」と「RFC 2616」を絡めて話してみました。いつまでたっても、人前で話すのには慣れませんねえ。
謝辞
主催のid:shimookaさんを始め、関係者の皆様、貴重な機会をいただき、ありがとうございました。