PofEAA

アクティブレコードって

重要なことは、アクティブレコードのオブジェクトは、データベースアクセスをカプセル化していることです。オブジェクトがデータアクセスの機能を提供していると言い換えてもいいでしょう。 アクティブレコードパターンの本当の意味 - yvsu pron. yas これが…

3 つのドメインモデル

[データマッパーによるドメインモデル] ┏━━━━━━━━┓ ┃User Interface ┃──────┐ ┗━━━━━━━━┛ | ↓ | ┏━━━━━━━━┓ | ┃Application ┃──────| ┗━━━━━━━━┛ | ↓ ↓ ┏━━━━━━━━┓ ┏━━━━━━━┓ ┃Infrastructure ┃─→┃Domain Model ┃ ┗━━━━━━━━┛ ┗━━━━━━━┛ Domain Model は…

ドメインモデルは

「アクティブレコードによるドメインモデル」と「データマッパーによるドメインモデル」の 2 つに大別されるけれど、このまんまの呼び方だとなんというか人に説明する時にちょっと不便。 ということで「ラッピングによるドメインモデル」と「マッピングによ…

ADO.NET Entity Framework 1.0 は

この記事 を読んだ限りでは、あまり期待できなさそうだ。 以下抜粋。 エンティティに対してデータの側面を意識しすぎている点が、エンティティアーキテクチャのデグレードにつながる。 レイジーロードがないために余分なコードが必要になる。 共有された、標…

ふーーーむ

書籍「ドメイン駆動」のリポジトリの作りがどうも気に入らない。 こんな風*1にするのはどうだろう。 public abstruct class Repository { public UserRepository OfUser { get { return this.CreateUserRepository(); } } protected abstruct UserRepository…

NHibernate 面白いな

書籍「ドメイン駆動」 (この本買って正解だった。PofEAA の次に読むべき本。) で、ドメインオブジェクトの PI (Persistence Ignorance : 永続記憶に左右されない) を高水準で実現できる O/R マッパーとして紹介されていたので触り始めてみた。O/R マッパーに…

間違っているのかも

データマッパーによるドメインモデルの目的は、ビジネスロジックとデータストアを切り離すことだから 僕のやろうとしていることは間違っているのかもしれない

忘れてた

ドメインレイヤーとデータストア - 気楽に諸々の続きつーか、そもそも貸出メソッドがセパレートインターフェイスを使ってデータマッパーに DB 更新を行わせているんだった。 この時点で、ドメインレイヤーがデータストアの存在を意識しているじゃないか。 こ…

ドメインレイヤーとデータストア

データマッパーによるドメインモデルにおいて、ドメインレイヤーは「データストア」を意識しなくて良い。SQL だの テーブル構成だの、そんなの気にしなくていい。 でも、「データストアの存在」までも意識しなくて良いのか? というのも、同時実行制御を行う…

そか

やっぱし良くないか? - 気楽に諸々の続きドメインオブジェクトからセパレートインターフェイスを呼び出したりすれば、いいんじゃん。あるいは、イベントを利用するのも手か。 たとえば書籍クラスと(図書館の)受付係クラス、利用者クラスがあったとする。受…

PofEAA を

会社で購入してもらった。 そんで社内で二人に勧めた。 一人はオブジェクト指向愛好家な先輩。 もう一人はオブジェクト指向に興味を持っているっぽい新人。こちらにはアジャイルソフトウェア開発の奥義も勧めてある。 しまったな、二人に勧めたけど一冊しか…

セパレートインターフェイスを

ドメインレイヤーに配置してはいるが、ドメインオブジェクトがコレを使用しているわけではないんだよな。 でもまぁ、可視性の関係でドメインレイヤーに配置しないとだし。 あと、セパレートインターフェイスを抽象クラスにしたから、データマッパー側で基本…

行けそう

途中何度か苦戦したけど、なんか行けそうな感じだ。 データマッパーはリフレクション+依存性の注入を使うことで、プレゼンテーションレイヤーからも完全に分離できるし。 問題は、設計の難易度が高いことか。 うっかり、一意マッピングへの追加処理を忘れた…

ひとまず

実際にミニマムなモンを作り始めた。 ユニットオブワークや一意マッピングより先に、データマッパーの作りでお悩み中。 ドメインオブジェクトのセッターやなんかは internal にしてみるテスト。 抽象クラスによるセパレートインターフェイスを、プレゼンテー…

ユニットオブワークと一意マッピングに

苦戦中。 デシリアライズ後、親の DataRow や子の DataRow が取れなくなってしまっても別に支障はないかな??

まてよ・・・

一意マッピングで DataRow とドメインオブジェクトをペアにして保持するとして、シリアライズのこと (DataRow を直接シリアライズできないこと )考えると、一筋縄じゃ行かないじゃないか。 さて、どうするか。

一意マッピング

データマッパーを用いたドメインモデルにおいて、一意マッピングを使用する場合。 データアクセスレイヤーでデータセットを使うなら、データセットはユニットオブワークの役目を持つから、データセット(というよりDataRow)とドメインクラスをペアにして一意…

ドメインモデルで頭が一杯だけど

次やるプロジェクトではテーブルモジュールにしようと思っている。 トランザクションスクリプトでもいいけど。 或いは、アクティブレコードによるドメインモデル。 データマッパーによるドメインモデルはほぼ無い。

ドメインレイヤーのセパレートインターフェイス

Find メソッドだけではなく、Insert・Update・Delete もドメインレイヤーのセパレートインターフェイスに含めるべきな気がする。 (つーかそれが普通?) 例えば書籍を削除する時、書籍を格納している棚から、参照を削除する必要があるけど、これはドメインレ…