PofEAA読書会 第7回

http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/?ReadingPofEAA007
Chapter10。疲れていたのであまりメモできず。
以下、議論で出た話と自分で思ったことをごちゃ混ぜにして書きます。

ポジションペーパー

バーンダウンチャートワロス。ネタ化傾向には歯止めがかかった模様。

Table Data Gateway

わたなべさんによる発表。

  • テーブルごとにSQLのラッパーを作る。
  • みんな大好き○○DAOはこれだよね。
  • PerlDBIもこんな感じ
  • 値の返し方について:LLだとDTOを作るメリットはあまりない。どうせコンパイル時にチェックかかんないし。

Row Data Gateway

和田充史さんによる発表。「ここがわからない」という素直な発表がイイ。議論が活発に。


gateway.insert(data);


XxGateway gateway = new XxGateway();
・・・
gateway.insert();

  • Active Recordとの違いは、ドメインロジックを含まないこと。

Active Record

井上さんによる発表。

  • 後半は、Railsに含まれるActiveRecordのデモと解説。ファウラータンが「Active Recordには入れない」と言っている複雑なマッピングがもう実装されてますよ、とのこと。
    • 関連、Collection:外部キーや関連テーブルを使ってjoinしてます
    • 継承:Single Table Inheritanceを実装。typeフィールドにクラス名持っちゃいます
  • 2002年(PofEAAが出版された年)には、こういうものが出てくるとは想定されてなかったよね
  • ちょっと整理しなおしたほうがいいかも
  • テスト用のモックとか使わない。全員MySQL入れろって。
    • いまどきのマシンにはみんなMySQL入れられるしね
    • ローカルのMySQLにアクセスするだけなら速いし
    • MySQLを使ったパターンカタログができそう。MySQL Session Stateとかもあったし。

Data Mapper

発表させていただきました。
時間がなくて急いでたのと、あらかた論点が出ちゃってたのとで、いまいち議論が盛り上がらず。発表の仕方も良くなかったかも。

  • Active Recordはドメインロジックとデータアクセスの結合上等。Data Mapperはとにかく切り離そうとしてる。
    • 凝集度指向と結合度指向の違いとか、流派あるかも・・・ Presentation Modelの時にもそんな話あったけど
    • 結構、チーム分けとかプロセスにも関わってくるよな・・・
  • 複雑なマッピングって?
    • ここで言ってるのはコレクション、関連、継承。
    • 結局、あなたにとっての複雑度7.42はどこなのよ、って話
  • FinderをSeparated Interfaceにするあたりの邦訳が謎
    • 要は、FinderのInterfaceをdomainパッケージに入れれば、domainパッケージからmapperへの依存は消せるよね、って原書には書いてある
  • Data Mapperにしても、ドメインモデルとテーブル構造ってそんなに乖離してないほうがいいよね
    • OO系とDAO系のどっちが中心かにもよるかな。OOコンサルみたいな人が来て、「こんなのどうやって永続化すりゃいいんだよ」みたいなモデルを示されることもある。
    • ドメイン自体の捉え方が変わることによるデータベースの変更って少ない。断りやすいし。多いのはパフォーマンス上の理由でデータベースを変えること。

飲み会、その他

  • 腰リールは釣り用具じゃなくて、名札ホルダーをぶっ壊して腰に装着
  • OO厨としての犯歴を告白(w
  • みんな昔はOO厨だった
  • 獄長って最初に言ったの誰だ! 吐けゴルァ
  • データアクセスのDSL・・・ ってSQL
  • あとはなんか飲みすぎて超よっぱらって覚えてない
  • 誰かKKB食いに逝きたいとか言ってた? WRさん?(うるおぼえ