yojikのlog

yojikのブログです

PofEAAE勉強会に参加してきました。

概要というか感想デス。

Table Data Gateway

by 渡辺さん
1テーブルにつき1クラスのゲートウェイオブジェクト。実質J2EEパターンのDAOと同等。検索時の返り値を何にするかが検討事項。Map? DTO, ResultSet? OO厨(Level中二)的にはDTOを返したりするが、これが意外とトラブルを招く。joinにうまく対応できずに、プログラム言語側でjoin相当の処理をやったり。
OO厨もちょっと成長すると、Mapでいいやとかあきらめが入る。自動生成によってSQL定義ファイル?とDTOと同期させるというのもあり。
ファウラーたんの例では、ゲートウェイ自体がステートフルで結果セットを保持していた。それ面白いわ。

Row Data Gateway

by 和田さん。
1行につき1クラスのゲートウェイオブジェクト。ActiveRecordからDomainLogic抜いたものともいえる。行ごとの状態管理ができたりするのがメリットかなーと思う(更新フラグとか)。でもそのことはいいそびれた。
やっぱjoinとかに対応するのが難しいのが弱点ですなー。結果として受け取とるのは一つのRecord(の集合)なのに、更新するときは複数テーブル叩かなきゃいかんとか。
和田さんの資料が、こちらにボールを投げてくるものだったので議論が活発に。

ActiveRecord

by 井上さん
どちらかというとRailsActiveRecordと説明でした。オリジナルのActiveRecordはデータアクセスに関してはRowDataGatewayと一緒。Railsの方は関連を扱うことが出来るのでORマッパーDataMapper的な面が強い。しかし、めちゃDBに依存し、それで良しとしているところが割り切ったところ。「単体テストもDB使うし、画面デザイナもDB入れろ!」まぁそれもアリですな。

Data Mapper

by id:bakockさん
だれもが認める王道パターン。ただもう自力で実装するのは無理だよね。あと一意マップは必要です。一番わかりやすいのはjoinした時に、1対nの1側のオブジェクトが被ってしまうのを回避するため。

以上、発表者のみなさんおつかれさまでした。

飲み会

印象にのこったセリフ。
「マーティンファウラーなら17章かかるところもオレなら2小節だから」(押尾学)
「獄長言ったの誰だぁ!」(僕じゃありません)(id:koichikさん)
「一部の世代にとってOO厨は誰もが通る道(BOOWYみたいなもの)」(id:bakockさん?)
「男はみんなイベント駆動」(id:bakockさん)
「addEventListnerしなきゃイベントは飛んでこない」(id:koichikさん)
SQLはデータベースドメインのDSL」(誰か)
「(コードを見て)ふーん。それが君の人生観なんだ?」(OO界の某すごい人のエピソード)
とにかくお二人が面白かったデス。

TODO

笑いのツボを強化。