Teedaを使ったときのアーキテクチャ(クラス・パッケージ構成)
Teedaを使ったときのアーキテクチャは、Super Agileの時とEasy Enterpriseの時で違います。今回は、Super Agileのケースを書いてみます。サブアプリケーションの下に存在するクラスとルートパッケージの下に存在するクラスがありますが、使い分けは次の通りです。
- サブアプリケーション配下(xxx.web.yyyなど。yyyはユースケースを表す。)
- ユースケース固有のクラス
- ルートパッケージのサブパッケージ配下(xxx.daoなど)
- 複数のユースケースで共通に用いられるクラス。
ユースケース固有のクラスは近くにまとまっていたほうが良く、ユースケースを横断するクラスは機能ごとにまとまっていたほうが良いという考えです。そうするとパッケージ構成は次のようになります。
- xxx.web.サブアプリケーション
- xxx.entity
- テーブルに一対一にentityを作成します。
- Entity名はテーブル名と同じにします。
- 実際はテーブル名は'_'記法、Entity名はcamel記法にします。例えば、テーブルがAAA_BBBならエンティティはAaaBbbになります。カラム名とプロパティ名の関係も同様。
- xxx.dao
- Entityに一対一にDaoを作成します。
- Dao名はエンティティ名+Daoになります。
- xxx.logic
- xxx.dto
- xxx.helper
- ユーティリティ用のクラスですが、パラメータ的な設定項目があったり、他のクラスをDIする必要があるもの。
- xxx.util
- staticなメソッドで実現できるユーティリティクラス。
クラス名、メソッド名、パッケージ構成のルールも決まっているので、誰でも簡単にできるはず。