オブジェクト指向
「古典派」TDD 対 「モック派」TDD、これは本当の対立軸だろうか? 先日あっちのブログに書いたコードと似たようなコードを発見。 ErrorReceiver の実装について省略されているけど、もしかして匿名クラスじゃなくてちゃんとクラスに実装させてんのかな?ま…
使ったことないんだけど、便利なんだろーか? DI パターン適用するだけなら、わざわざ DI コンテナ使わずとも割と簡単にできちゃうし…?
C#と諸々 パブリックプロパティ (もしくはパブリックフィールド) の善悪GUI 周りと DB 周りの他に、ユニットテストにも関わってくるね。 ユニットテストでも恩恵を得られるけれど、たまに一工夫必要になる。 こんなクラスと public sealed class Hoge { publ…
ASP.NET MVC じゃなくて ASP.NET と MVC について。 ASP.NET は実は一種の MVC だ。 ASP.NET における View は aspx ファイルに記述された「テンプレートビュー」で、Controller はコードビハインドで記述された「ページコントローラ」となる。 ただし、コー…
http://www.isisaka.com/blog/archives/2008/08/post_549.htmlなんか面白そうだ、買おうドメイン特化型開発 VSとDSLによる次世代モデル駆動開発 (Microsoft .net Development Series)作者: Steve Cook,Gareth Jones,Stuart Kent,Alan Cameron Wills,マイクロ…
テスト駆動開発入門作者: ケントベック,Kent Beck,長瀬嘉秀,テクノロジックアート出版社/メーカー: ピアソンエデュケーション発売日: 2003/09メディア: 単行本購入: 45人 クリック: 1,058回この商品を含むブログ (162件) を見る本屋で物色してる時に、そうい…
書籍「ドメイン駆動」のリポジトリの作りがどうも気に入らない。 こんな風*1にするのはどうだろう。 public abstruct class Repository { public UserRepository OfUser { get { return this.CreateUserRepository(); } } protected abstruct UserRepository…
書籍「ドメイン駆動」 (この本買って正解だった。PofEAA の次に読むべき本。) で、ドメインオブジェクトの PI (Persistence Ignorance : 永続記憶に左右されない) を高水準で実現できる O/R マッパーとして紹介されていたので触り始めてみた。O/R マッパーに…
ドメイン駆動 (Programmer’s SELECTION)作者: Jimmy Nilsson,尾島良司,株式会社ロングテール長尾高弘出版社/メーカー: 翔泳社発売日: 2008/03/20メディア: 大型本購入: 8人 クリック: 237回この商品を含むブログ (33件) を見る最初、表紙がエッセンシャル WP…
データマッパーによるドメインモデルの目的は、ビジネスロジックとデータストアを切り離すことだから 僕のやろうとしていることは間違っているのかもしれない
ドメインレイヤーとデータストア - 気楽に諸々の続きつーか、そもそも貸出メソッドがセパレートインターフェイスを使ってデータマッパーに DB 更新を行わせているんだった。 この時点で、ドメインレイヤーがデータストアの存在を意識しているじゃないか。 こ…
データマッパーによるドメインモデルにおいて、ドメインレイヤーは「データストア」を意識しなくて良い。SQL だの テーブル構成だの、そんなの気にしなくていい。 でも、「データストアの存在」までも意識しなくて良いのか? というのも、同時実行制御を行う…
やっぱし良くないか? - 気楽に諸々の続きドメインオブジェクトからセパレートインターフェイスを呼び出したりすれば、いいんじゃん。あるいは、イベントを利用するのも手か。 たとえば書籍クラスと(図書館の)受付係クラス、利用者クラスがあったとする。受…
ドメインレイヤーに配置してはいるが、ドメインオブジェクトがコレを使用しているわけではないんだよな。 でもまぁ、可視性の関係でドメインレイヤーに配置しないとだし。 あと、セパレートインターフェイスを抽象クラスにしたから、データマッパー側で基本…
途中何度か苦戦したけど、なんか行けそうな感じだ。 データマッパーはリフレクション+依存性の注入を使うことで、プレゼンテーションレイヤーからも完全に分離できるし。 問題は、設計の難易度が高いことか。 うっかり、一意マッピングへの追加処理を忘れた…
実際にミニマムなモンを作り始めた。 ユニットオブワークや一意マッピングより先に、データマッパーの作りでお悩み中。 ドメインオブジェクトのセッターやなんかは internal にしてみるテスト。 抽象クラスによるセパレートインターフェイスを、プレゼンテー…
苦戦中。 デシリアライズ後、親の DataRow や子の DataRow が取れなくなってしまっても別に支障はないかな??
一意マッピングで DataRow とドメインオブジェクトをペアにして保持するとして、シリアライズのこと (DataRow を直接シリアライズできないこと )考えると、一筋縄じゃ行かないじゃないか。 さて、どうするか。
データマッパーを用いたドメインモデルにおいて、一意マッピングを使用する場合。 データアクセスレイヤーでデータセットを使うなら、データセットはユニットオブワークの役目を持つから、データセット(というよりDataRow)とドメインクラスをペアにして一意…
次やるプロジェクトではテーブルモジュールにしようと思っている。 トランザクションスクリプトでもいいけど。 或いは、アクティブレコードによるドメインモデル。 データマッパーによるドメインモデルはほぼ無い。
Find メソッドだけではなく、Insert・Update・Delete もドメインレイヤーのセパレートインターフェイスに含めるべきな気がする。 (つーかそれが普通?) 例えば書籍を削除する時、書籍を格納している棚から、参照を削除する必要があるけど、これはドメインレ…
責任はかなり重要だ。 適切に切り分けねば。
オブジェクト指向をそれなりにわかってる人が、チーム内に一人もいないとキツイね。。。 トランザクションスクリプトとテーブルモジュールの勉強を始めるか。。。