PofEAA読書会 第7回
参加者のレベルが高いので個々の議論になるとついていけなくなること多し。修行が足りんです。以下、例によって自分用メモ
共通認識
ファウラーたんはMSにお金をもらってる(はず)
PofEAAは3年前の本なので情報が古い
Table Data Gateway(渡辺さん)
MSの実装に関連するパターンだという話と「結局、DAOは全部これでしょ」という話が交錯して、個人的には位置付けがよくわからなかった。たぶん自分の理解が浅いせい
- SQLのラッパー。基本的にステートレス
- やりとりするのはMap、DTO、Record Set、Domain Modelのどれか
- 「Table Module」と「Table Data Gateway」の項はMSに金をもらって書いてる?
- 「みんな〜DAOって好きでしょ」(by かくたにさん)
ちなみに渡辺さんは .NETの人というイメージが強かったんだけど、本職はJava+Oracleの人だそうです
Row Data Gateway(和田さん)
「ここがわからない」と正直に言うスタイルが好評。わからないことを責める雰囲気にならないのがgood
- 「in memory」の意味がわからない(by 和田さん)。どうも同じ言葉を場所によって微妙に違う意味で使ってるのが原因らしい。「その時期のファウラーたんのお気に入りの言葉だったんじゃないか」という意見
Active Record(井上さん)
- Row Data Gateway+ドメインロジック=Active Record
- PofEAAではActive Recordには関連、コレクション、継承がないことになってるけど、RailsのActive Recordにはこれらは全部ある
- 最大の特徴はテーブルとActive Recordのデータ構造が一致していること。その意味ではRailsのARが該当すると言うのは間違ってない
- RailsはRubyが持つ未定義メソッドの呼び出しという機能を使ってるそうです
- JavaのユニットテストではDBの代わりにモックを多用するけど、RailsのテストはDB接続が前提?→そうらしい。MySQLはどんな環境でも動くから入れとけと。「MySQL Anywhereパターン」ができるかも、とか
- 実装としてARが存在する以上、Row Data Gatewayをわざわざ作る意義はあまりないのかも
- 「実に豪快」ってのがよかった
Data Mapper(id:bakockさん)
- ファウラーたんの結論は「作るより買え」。まあ、結局タダで手に入る時代になったわけですが
- Chapter 11〜13のパターンはData Mapperと一緒に使うのが簡単
- 「リソースがDBじゃなくてWebサービスだとどうマッピングすればいいか」という質問が出た。IBMにはService Data Object(SDO)というものがあるらしい
その他
飲み会でid:koichikさん大暴走。エビちゃんとかid:bakockさんに「計画駆動は古い」とか。id:naoyaさんが参加者に配ったはてなブックマークブックマークが好評