PofEAA 読書会 (第6回)

# 別件ではまっていたためまとめが遅くなってしまいました。
# でもこういうのは熱いうちにまとめないといけませんね。反省。(9/17)

9-1 Transaction Script

by 中村さん

トランザクションスクリプト(TS)のクラス構成には2つの方法がある。

  • 関連する領域のTSを1つのクラスにまとめる方法。これが一般的。
  • TS単位に1つのクラスとする方法。GoF の Command パターン。

arton さんの Command じゃなくて Strategy じゃないの? というご意見。僕は、undo できなくても Command でいいんじゃないかなと思う。いずれにしても Strategy は違うかな。
私だけ? クライアントに対して、Command は public、Strategy は private な印象を受けるのは?

9-2 Domain Model

by 私こと id:aufheben

先日購入したばかりの BizTablet を使ってみた。表示された画面の上で操作できるわけではないので、慣れないとちょっと使いにくい。でも多少のサプライズにはなったかな?

さて、Domain Model ですが、テキストの例だけでは永続化の方法がふれられておらず、Transaction Script、Table Module との比較が不充分に思ったので、自分なりに永続化まで含めて資料を作ってみました。あと、最近このブログで書いていたレイヤの話題も。

主な議論は以下の通り。

  • P.127 固有のAPIって何?
    →Strategy、DB、Client、etc. 結局結論は出なかった気がする。
  • Product -> RecognitionStrategy の関係が気持ち悪い。反対ではないか?
  • DomainModel は DI と相性が悪い。
    →Factory Injection でうまくいく気がするんだけど...
  • DBアクセスの責務は Service Layer ではなく、Domain Model の方が良くないか?
    → 迷うところだけど、依存関係を考えて Service Layer にした。
  • ドメインロジックとアプリケーションロジックの切り分けって?

ちょっと頑張りすぎて時間を多めに使ってしまいました。
すみません。m(_ _)m >かくたにさん、後半の発表者の方々

9-3 Table Module

by id:afukuiさん
id:afukuiさんも実装を用意されていた。プレゼンテーション層からデータアクセス層まで DataSet を使うことで、とても簡単にアプリケーションが開発できる。

Table Module は MS の専売特許みたいな雰囲気だったけど、Java でも充分使える手法だと思う(っていうか、実際使ってるし)。

9-4 Service Layer

by id:ogijunさん
Service Layer を設けるという点では賛成意見多数。
Service Layer にも2つのバリエーションがある。

  • Domain Facade
  • Operation Script?

ダイコン時代に Layer Supertype は不要。
Goya の Presentation Model という名前は Application Model の方が良くないかとの意見あり。

複雑なトランザクション制御 - サーガ

by WRさん
サーガとは? ミニバッチの処理を取り消す補償トランザクション処理の実行。
WRさんのお話、自分には当面関係ないと思っていたら、いつのまにか自分の仕事につながってきた気がする。(^^;)