タグ

ドメインモデルパターに関するJHashimotoのブックマーク (4)

  • ドメイン層の構造の改善 : Evolving Order パターン | システム設計日記

    ドメイン層のオブジェクト群を、どういう視点で整理し、ドメイン層の構造を、どうやって育てていくか? アプリケーション全体の構造 私たちのデフォルトのレイヤアーキテクチャは、 ■インタフェース (UI、REST API、... ) ■アプリケーションサービス ■ドメイン ■インフラストラクチャ(永続化、メッセージング) です。 アプリケーションサービスは、ドメイン層の薄いファサード。 実際の仕事は、ドメインのオブジェクトに委譲する。 ドメインで扱うデータの種類が増え、ビジネスのロジックが膨らんでくると、ドメイン層も、構造化して整理しないと、わけが分からなくなる。 初めはトランザクションスクリプトだった ドメイン駆動設計に取り組み始めたころは、ドメイン層の設計パターンは、ドメインモデルではなくトランザクションスクリプトでやっていた。 ユースケースごとに トランザクションスクリプトのクラスを作って

    JHashimoto
    JHashimoto 2013/05/05
    "ユースケースごとにトランザクションスクリプトのクラスを作っていた"
  • 『DIコンテナとドメインモデルの相性の悪さ』

    Seasar、SpringなどのDIコンテナを使っていると、ドメイン層の実装はデータ(Entity/Dto)と振る舞い(Service/Logic)に分ける、いわゆるトランザクションスクリプトのスタイルになりがちだ(参照(1)、(2))。理由は、1つにはドメインモデルの設計/実装そのものの敷居が高いこともあるが、そのハードルを乗り越えても、DIコンテナそのものがドメインモデルと馴染みにくい側面があるからだと思われる。 DIコンテナはエンティティやDTOにDIできない その側面とは、次の通り。DIコンテナは設計思想からしてファクトリの役目をするものであるため、DIコンテナを使う場合、インスタンスの生成は基的にDIコンテナが担当することになり、コンポーネントに必要なオブジェクトはすべてDIで渡されるような設計に誘導されてしまう DIを使ったWebアプリケーションのアーキテクチャは、まずリクエ

    JHashimoto
    JHashimoto 2013/05/05
    "ドメインモデルをやってみようと思い立っても、既存の道具立てとしっくり馴染まず、結局諦めてしまうということもあるのではないか"
  • 『ドメインモデルに対する日米の温度差』

    マーチン・ファウラー氏によれば、アプリケーションの中核部であるビジネスロジックを構築する方法には、Transaction ScriptパターンとDomain Modelパターンの2通りがあるという。Domain Modelパターンは、データと振る舞いを1つのオブジェクトにまとめ、オブジェクト指向のテクニックを駆使するやり方だ。一方のTransaction Scriptパターンでは、データと振る舞いは別々のオブジェクトに分け、振る舞いをスクリプト的に淡々とプログラミングしていく。 日ではTransaction Scriptが優勢 この2通りのうち、日ではTransaction Scriptパターンの方が優勢だ。日のオピニオンリーダーも軒並みTransaction Scriptを薦めている。 たとえば、Seasarの開発者であるひがやすを氏は、古くからデータと振る舞いを分離するアプローチ

    『ドメインモデルに対する日米の温度差』
    JHashimoto
    JHashimoto 2013/05/04
    "Transaction Scriptパターンでは、データと振る舞いは別々のオブジェクトに分け、振る舞いをスクリプト的に淡々とプログラミングしていく。"
  • ドメイン モデル パターンを使用する

    In this article, we’ll go through the reasons to (and not to) employ the domain model pattern, the benefits it brings, as well as provide some practical tips on keeping the overall solution as simple as possible. Contents What Is It? Reasons Not to Use the Domain Model Technology Reasons to Use the Domain Model Scenarios for Not Using the Domain Model Scenarios for Using the Domain Model More Comp

    ドメイン モデル パターンを使用する
    JHashimoto
    JHashimoto 2013/05/04
    "つまり、複数のオブジェクトを操作する場合でも、ドメインの 1 つのオブジェクトでは 1 つのメソッドを呼び出すようにする必要があるということです。"
  • 1