EJB3時代のアーキテクチャパターン 業務ロジックType5について

id:higayasuo:20060615#1150364455

ひがさんが説明しているType5のやりかたが、今の案件で行っている方法にえらく似ているのに驚きました。考えていることが似ていたのかな。私のところではMayaa+無設定S2Struts+S2Daoを使っているのですが、HTMLとMayaaとERD(から生成したファイル)を生成の入力ファイルとして使い、Service実装以外のクラスを全部自動生成しています。生成するクラス群はGoyaのレイヤモデルを採用しています。


開発していくときに実際に書くのは、生成されたServiceのサブクラス(Generation Gapパターンでやってます)と、自動生成では生成できない複雑なSQLを呼ぶためのDaoと、そのSQLファイルです。他のレイヤのクラスおよびインターフェイスは自動生成したものを使います。自動生成のためにMaven2プラグインを作成して使用しています。


DxoにはDozerを使っています(S2Dxoはまだありませんでした)。Dozerの設定ファイルの雛形も自動生成していますが、完全自動までは出来ていません。ちょっと手で書く部分がまだ必要で、特に変換がデフォルトルールに外れる場合(プロパティ名が一致しないなど)には手で書く必要があります。また入力のバリデーションにはCaoを使っています。


まとめると、すでにHTMLとMayaaとERDがある場合に触るのは

  1. Service実装(Generation Gapのサブクラス部分)
  2. 入力バリデーション定義ファイル(Excel)
  3. Dxoの定義ファイル(まだ完全自動生成できていないので、穴埋め式)
  4. (自動生成でまかなえなかった場合に)手書きのDaoとそのSQL

となります。
ひがさんのチームと情報交換したいな。


この仕組み自体は公開の許可をもらっているので、仕事が一段落したら業務依存の部分を削った後公開しようと思います。ただ、業務と並行で開発したため中はずいぶん汚いです。UNIXという考え方―その設計思想と哲学にある「第一のソフトウェア」(だったかな?)のような感じでしょうか。コマンドラインベースからMaven2プラグインに移植したときに少しきれいにしましたが、業務依存部分を削る際にもう少しきれいにする予定です。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学