タグ

PofEAAに関するk-holyのブックマーク (10)

  • エンタープライズアプリケーションアーキテクチャパターン・オブジェクトリレーショナル編 - Strategic Choice

    書籍「エンタープライズアプリケーションアーキテクチャパターン」の、オブジェクトリレーショナルデータベースに関わる部分をまとめます。第11章 オブジェクトリレーショナル振る舞いパターン第12章 オブジェクトリレーショナル構造パターン第13章 オブジェクトリレーショナルメタデータマッピングパターン一覧「オブジェクトリレーショナル振る舞いパターン」(Object-Relational Behavioral Patterns) ユニットオブワーク(Unit of Work)一意マッピング(Identity Map)レイジーロード(Lazy Load)「オブジェクトリレーショナル構造パターン」(Object-Relational Structural Patterns) 一意フィールド(Identity Field)外部キーマッピング(Foreign Key Mapping)関連テーブルマッピング(

  • エンタープライズアプリケーションアーキテクチャパターン・オフライン並行性編 - Strategic Choice

    書籍「エンタープライズアプリケーションアーキテクチャパターン」の、オフライン並行性に関わる部分をまとめます。第16章 オフライン並行性パターン前段知識オフライン並行性・前段知識:並行処理とはオフライン並行性・前段知識:安全性/活性とはオフライン並行性・前段知識:リクエスト/セッション/トランザクションとはオフライン並行性・前段知識:オフライン並行性とはオフライン並行性・前段知識:楽観的ロック/悲観的ロックとは一覧「オフライン並行性パターン」(Offline Concurrency Patterns) 軽オフラインロック(Optimistic Offline Lock)重オフラインロック(Pessimistic Offline Lock)緩ロック(Coarse Grained Lock)暗黙ロック(Implicit Lock)ソースコードasakichy/PofEAA@githubPofEA

  • アクティブレコード - Strategic Choice

    アクティブレコード@データソースのアーキテクチャに関するパターン行データゲートウェイ+ドメインロジック。どういうこと?アクティブレコードは、データベースの「レコード」に対して、ゲートウェイの役割を果たすクラスを作成します。1つのインスタンスが、テーブル内の1つの行にあたります。かつ、そのクラスに「ドメインロジック」を配置します。どうすれば?アクティブレコードのクラスは、レコード構造と一致させます。よって、クラス内の各フィールドは、テーブル内の各列と一致します。同時に、オブジェクトが保持しているレコードデータを追加・更新・削除するメソッドを提供します。ここまでは『行データゲートウェイ』と同じですが、アクティブレコードは、さらに、データに適用されるドメインロジックを実行します。また、検索メソッドも、このクラスに静的メソッドとして用意するのが通常です。どうして?アクティブレコードのクラスは、レコ

  • 行データゲートウェイ - Strategic Choice

    行データゲートウェイ@データソースのアーキテクチャに関するパターン1レコード1クラス。どういうこと?行データゲートウエイは、データベースの「レコード」に対して、ゲートウェイの役割を果たすクラスを作成します。1つのインスタンスが、テーブル内の1つの行にあたります。どうすれば?行データゲートウェイはのクラスは、レコード構造と一致させます。よって、クラス内の各フィールドは、テーブル内の各列と一致します。同時に、オブジェクトが保持しているレコードデータを追加・更新・削除するメソッドを提供します。行データゲートウェイを使用する場合、検索メソッドをどこに置くのかが問題です。静的な検索メソッドを用意することも可能ですが、ポリモーフィズムの邪魔になります。独立した検索用オブジェクトを作成するのがベターです。どうして?行データゲートウェイは、レコードそのもののように見えるオブジェクトを提供します。クライアン

  • テーブルデータゲートウェイ - Strategic Choice

    1テーブル1クラス。どういうこと?テーブルデータゲートウェイは、データベースの「テーブル」に対して、ゲートウェイの役割を果たすクラスを作成します。1つのインスタンスが、テーブル内のすべての行を処理します。どうすれば?テーブルデータゲートウェイは、データの受け渡しが役割なので、基ステートレスです。テーブルデータゲートウェイは、データベースからデータを取得するための検索メソッドと、追加・更新・削除の各メソッドから構成されるシンプルなインタフェースを用意します。各メソッドは、引数をSQL呼び出しにマッピングし、データベース接続に対してそのSQLを実行します。テーブルデータゲートウェイは、特に『テーブルモジュール』に最適であり、テーブルモジュールが動作するレコードセットデータ構造を作成します。テーブルモジュールには、テーブルデータゲートウェイが唯一の選択肢です。どうして?テーブルデータゲートウェ

  • サービスレイヤ - Strategic Choice

    アプリケーションロジック。どういうこと?ビジネスロジックは2つ種類に分類されます。「ドメインロジック」と「アプリケーションロジック」です。「ドメインロジック」 ドメインでの問題を取り扱う。たとえば、特定のビジネスに特化した計算処理など。「アプリケーションロジック」 アプリケーションの責務を取り扱う。たとえば、担当者へのメール通知や、別の統合されたアプリケーションへの通知など。別名「ワークフローロジック」。サービスレイヤは、ドメインオブジェクトからアプリケーションロジックを分離します。サービスレイヤは、粗粒度のサービスを提供する層を生成して、アプリケーション境界を作成します。境界を通じて、クライアント側に操作のセットを提供します。アプリケーションのビジネスロジックをカプセル化し、その実装の中でトランザクションを制御し、応答を調停します。どうすれば?実装バリエーションには、「ドメインファサード

  • エンタープライズアプリケーションアーキテクチャパターン・アーキテクチャ編 - Strategic Choice

    書籍「エンタープライズアプリケーションアーキテクチャパターン」の、レイヤ化アーキテクチャに関わる部分をまとめます。第09章 ドメインロジックパターン第10章 データソースのアーキテクチャに関するパターン第14章 Webプレゼンテーションパターン第15章 分散パターン一覧「ドメインロジックパターン」(Domain Logic Patterns) トランザクションスクリプト(Transaction Script)ドメインモデル(Domain Model)テーブルモジュール(Table Module)サービスレイヤ(Servic eLayer)「データソースのアーキテクチャに関するパターン」(Data Source Architectural Patterns) テーブルデータゲートウェイ(Table Data Gateway)行データゲートウェイ(Row Data Gateway)アクティブレ

  • テーブルモジュール - Strategic Choice

    ビジネスロジックをデータベースの表ごとに。どういうこと?テーブルモジュールは、データベース内のテーブル1つにつき1つのクラスを持つドメインロジックを構築します。クラスの1つのインスタンスには、データに対して動作する各種の手続きが含まれます。どうすれば?テーブルモジュールは、担当のテーブルのデータ操作メソッドをもたせます。振る舞いとテーブルのグループ化により、カプセル化の多くのメリットが得られます。テーブルモジュールは、インスタンスの場合もあれば、静的メソッドの集合の場合もあります。「テーブルモジュールのインスタンス」と「テーブルの種類」は1対1です。例えば「注文」の場合、ドメインモデルでは1つの「注文」に1つの「注文」オブジェクトが使われますが、テーブルモジュールでは、1つのオブジェクトですべての「注文」を扱います。どうして?テーブルモジュールは、テーブル指向のデータを前提とする構造を持っ

  • トランザクションスクリプト - Strategic Choice

    1ビジネスロジックを1メソッドで。どういうこと?ビジネスアプリケーションは、一連のトランザクションとして考えることができます。トランザクションには、データの単純な表示・登録や、ビジネスロジックが含まれています。トランザクションスクリプトは、ビジネスロジックを1つのメソッド(プロシージャ)にまとめて、データベースを直接ないし薄いラッパーを介して呼び出します。「トランザクション」という言葉を使用しているのは、ほとんどの場合、データベーストランザクションごとに1つのトランザクションスクリプトを使用しているからです。「スクリプト」という言葉は、「スクリプト言語」のことではなく、「コード片」を意味しています。どうすれば?それぞれのビジネスロジックが、それ専用のトランザクションスクリプトを持たせます。1ビジネスロジックに1トランザクションスクリプトなので、他のトランザクションスクリプトは気にする必要が

  • ドメインモデル - Strategic Choice

    ビジネスロジックをオブジェクト指向で。どういうこと?ビジネスロジックにおいて、最も避けたい状況は、そのロジックが「複雑」になってしまうことです。とはいえ、現実のビジネスルールは多くのパターンを持ち、それを反映したロジックはとても複雑になりがちです。ドメインモデルは、この複雑性に「オブジェクト指向」をもって対応します。ドメインモデルは、対象となるビジネスエリアをモデル化したオブジェクトのレイヤを挿入します。ビジネスにおけるデータをモデル化するオブジェクトもあれば、ビジネスで使用するルールを扱うオブジェクトもあります。ドメインモデルは、データベースモデルと似ている場合もありますが、大きな違いもあります。ドメインモデルでは、データとプロセスが一体化され、複数値属性や複雑に絡み合う関係があり、さらに継承も使われています。どうすれば?シンプルなドメインモデルは、データベーステーブルごとに1つのドメイ

  • 1