PofEAA 読書会 (第7回) - Data Source Architectural Patterns

個人的に気になった点だけ簡単にまとめておきます。

ポジションペーパー

はてなの直也さんから Hatena::Bookmark の Bookmark をいただいた。
WRさんの burn down chart には笑った。(^_^)

10-1 Table Data Gateway

by 渡辺さん

いわゆる Core J2EE Patterns の DAO パターン。

Table Data Gateway で扱うデータのバリエーションは、

  • Map
  • Data Transfer Object (DTO)
  • Record Set
  • Domain Model

データを Domain Model にした場合、Data Mapper との違いって何だろう?

それにしても誤訳が多いのが気なる。

  • マッピング → Map
  • データ変換オブジェクト → データ転送オブジェクト

Fowlerたんは DTO あまり好きじゃないみたいだけど、Java の世界なら Table Data Gateway と組み合せるならやっぱり DTO かなぁ。

10.1.4 の例は Singleton にできるけど、10.1.5 の例は Gateway がデータを保持しているためトランザクションごとに new する必要がある。Table Data Gateway というよりは、Row Set Data Gateway みたいな感じ。
どちらかというと構造化っぽい Table Data Gateway にもかかわらず、書かれたコードはやっぱりOOっぽくなっているところは、さすが Fowlerたんですね。(^^;)

10-2 Row Data Gateway

by 和田さん

「こんなのありえないでしょ」と思ったけど、ドメインロジックを持たない Active Record って考えると、まぁありなのかもしれない。
9章の Domain Logic Patterns と組み合せて、このパターンはこういう風に変えるとこのパターンに変わるよって感じでまとめると面白そう。

10-3 Active Record

by 井上さん

いまホットな Ruby on Rails で実現されているパターン。実際には Ruby on Rails は PofEAA の Active Record よりだいぶ賢くなっているとのこと。
この読書会で紹介されてからずっと触ってみたいとは思っているんですけどね。まだ触ってません。orz

10-4 Data Mapper

by id:bakockさん

Hibernate などで実現されているパターン。ドメインモデルとデータペースとの独立性を保ちたい場合に有効。
一意 マッピング マップ(ですよね?) が Data Mapper には必須というわけではないですよね? (いちおう確認)

2次会

笑笑にて。最初は Ruby のメンバーと、続いて .NET のメンバーと。話についていけないかと心配したが、まぁ楽しく飲めた。
BDD (Behavior Driven Development) に Kent Beck は怒っているらしい。
id:koichikさん曰く、昨年のトレンドは Dependency Injection、今年のトレンドは Convention Over Configuration。
もう一つ、id:koichikさんに教えていただいたキーワードが思い出せない... 何でメモしなかったんだろう。orz