TERASOLUNA Framework 5系ガイドライン読んだ(第2章 アーキテクチャ概要)

はじめに

Spring FrameworkをいろいろいじっていたらTERASOLUMA Frameworkの5系がSpring Framework採用しているとのことだったので、ガイドラインを読んでみている。
なのでSpringのおさらい等含めてその際のメモ書き。

フレームワークの構成要素

共通ライブラリ(terasoluna-gfw)以外はほぼOSSをそのまま採用している。

アプリケーションのレイヤ化

  • アプリケーション層(Controller, Form, View, Helper)
  • ドメイン層(Service, Repository, Domain Object)
  • インフラストラクチャ層(RepositoryImpl, O/R Mapper)

アプリケーション層とインフラストラクチャ層はドメイン層に依存するが、ドメイン層が他の層に依存してはいけない。

レイヤの定義

アプリケーション層

クライアントとのデータ入出力を制御する。ビジネスルールを含んではいけない。

  • Controller:画面遷移の制御、ドメイン層のServiceの呼び出し
  • View:クライアントへの出力
  • Form:フォーム表現、入力チェックルール宣言
  • Helper:Controllerの補助

ドメイン

ビジネスルールの実行をする。

  • Domain Object(Entity):ビジネスを行う上で必要な資源や発生するものを表現するモデル(Employeeとかそういうのね)
  • Repository:Domain Objectの問い合わせやCRUD処理
  • Service:業務処理を提供

インフラストラクチャ層

ドメイン層(Repositoryインタフェース)の実装を提供する。

  • RepositoryImpl:Repositoryインタフェースの実相
  • O/R Mapper:データベースとEntityの相互マッピング