HOME   »  スポンサー広告  »  スポンサーサイト   »  業務・専門知識、雑学  »  エンタープライズ アプリケーションアーキテクチャパターン 読書メモ①

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

エンタープライズ アプリケーションアーキテクチャパターン 読書メモ①

ドメイン駆動設計とか、そろそろ本腰を入れて学習を始めたいと思ったので、読書メモをつけます。
先日記事に残した課題リストにも記載していましたので(笑)。

【前提】
リッチクライアントではなくWeb前提に内容記載。

【第一章:レイヤ分割】
レイヤは役割ごとに3つにわけるようにする。

①プレゼンテーションレイヤ
 →HTMLやユーザリクエストを行うレイヤ
②ドメインレイヤ
 →システムロジックを記載するレイヤ
  基本的に、サーバー側で実行するよう設計する
  ただし、レスポンス性とシステム切断時操作の項目を優遇して考慮すべき時は、クライアント側に実装を検討しても良いかも
  でもクライアントに全てのドメインレイヤを持ってくると大抵は保守で死ねる
③データソースレイヤ
 →データベース、外部システム通信を行うレイヤ
  基本的に、サーバー側でだけ実行するようにする

レイヤ分割の基準などは?
①簡易システム
 →サブルーチンレベル内の実装において分割すれば良い
②それなりに複雑なシステム
 →レイヤをクラスにして分割
③煩雑な処理が要求されるシステム
 →分割したクラスをさらに複数のパッケージに分類

【第二章:ドメインレイヤの実装】
ドメインレイヤには3つ基本パターンがあることを理解する。

①トランザクションスクリプト
 →最も基本でシンプル
  プレゼンテーションレイヤからの入力値を処理するため、必要な機能ごとに一連の処理をいくつかのサブルーチンに記述する
  共通の処理を共通サブルーチン化したとしても、処理の重複実装が多くなるデメリットがある
  ある意味レガシーなシステムは全部こいつで実装されている
  (レイヤ分割されていないものはそもそも論外として)

②ドメインモデル
 →オブジェクト指向でよく利用される(ている)のはこのパターン
  システムに登場する名詞は一定の基準や規則でオブジェクト化される(ているはず)ので、その単位で処理を記述する
  例) 賃貸契約オブジェクトなら契約計算処理も加える、など

  そういえばドメインモデルを利用したアーキテクチャって最近の.NETのアーキテクチャが参考になる気がする
  EntityFrameworkとか
  適用する際に死ぬほど複数のパターンが出てくるけど・・・(Unit of workとか)
  トランザクションスクリプトは、旧来のJavaフレームワークの使い方が参考になる
  例えばSeaserプロジェクトのSAStrutsとかそのへん
  というかDIコンテナ使ってるとどうしてもトランザクションスクリプトの構成になりやすい
  (Daoパターンは別物として)

③テーブルモジュール
 →データベースのResultSetの構造を基準にするパターン
  DataSetとかDataTableを使ってた旧来の.NETがこのパターン
  GUIと相性が良いが、アプリ基盤を作成する際にテーブル構造に縛られるので、複雑なデザインパターンの適用が難しい

筆者は基本的にドメインモデルを中心に採用するよう指示している。
ただし、ロジックの複雑さがそれほどでもない場合、トランザクションスクリプトとテーブルモジュールを採用することも許容できるといっている。
さらにドメインモデルとテーブルモジュールの場合、データベーストランザクションを制御するサービスレイヤを置くことを推奨している。
このレイヤーはファサードパターンを適用して、内部の挙動を隠すようにする。
(ユースケースが増えた場合の対応を想定している)

ファサードパターンはサービスレイヤ以下の実装機能をAPI的に利用できるようにするためのパターン。
ファサードパターン


これでやっと30ページちょい。。。
先は長い(笑)。

スポンサーサイト
Comment
Trackback
Trackback URL
Comment Form
管理者にだけ表示を許可する
カウンター
現在までの訪問者数
(2011 3/1~)
プロフィール

Kens30

Author:Kens30
2030代の業務・WEB系SE、プログラマー。
最近はアーキテクトっぽいことも少しずつやっています。

座右の銘 : 我以外皆我師

技術系ブログは独立させました。こちらもよろしくお願いします。
kens30-tech

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
kens30_twitter
  2015.3 アカウントを再開
  気軽にツイート、フォローしてやって
  下さい。
広告スペース


検索フォーム
ブログランキング
以下のブログランキングに参加中です。
リンク
RSSリンクの表示
QRコード
QR
ブロとも申請フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。