2007-07-01から1ヶ月間の記事一覧

遅延ロードを避ける

シンプルなドメインモデル実装 ドメインモデルを作成するときに、遅延ロードを利用すると、データアクセスのコストやロック、トランザクションなど様々なことを意識する必要がありかなり難しくなります。ドメインモデル実装が難しいという方の意見としても遅…

Design Principles and Code Ownership

いままでFowlerが言ってきたことではあるが、いいこと書いてるね。すごく共感する。

IronRubyプレアルファが出ました

出ましたね。 関連記事 First Look at IronRuby

ActiveRecordはやっぱりActive Recordなのか

DDD

RoRで採用されているActiveRecord(AR)を利用してドメインモデルを作成してみました。 シナリオはハンバーガショップモデルを利用し、基本的な部分を実装してみました。 感想としてはARはやはりActive Recordであり、リッチなドメインモデルを作成するには向…

Linqを使えばデータアクセス層は簡単だ。

Linq to SQLを利用した簡単なデータアクセスコンポーネントを考えてみました。とりあえず検索系だけ。 Linqを使うと便利になる点が沢山あるのですが、気に入ったのが検索条件の部分をExpressionで記述できる点です。たとえばこんな感じです。a => a.state ==…

Linqを使えばデータアクセス層は不要?

Linq to SQLの技術は間違いなくデータアクセス層(DAL)の実装に影響を与えることになるでしょう。Linqが提供する機能を利用すれば多くのデータアクセスをSQL文なしで実装可能なようにも思えてきます。さらに、ビジネス層からの直接データ検索・更新するシナ…

Linq関連の記事のメモ

LinqをORMとして見た時の最適化(カスタマイズ)ってできるのか興味があるので少しLinqの実装を調査し始めました。 Linqも最近はいろいろ情報がでてきてなんとなくイメージがわかるのですがまだまだクリアになっていません。特にクエリ式(Query Expression…

ビジネスロジックのプロジェクト構造

Project Structure - By Artifact or Business Logic?普通2番目(ユースケース/機能ごと)を採用すると思うけど、1番目(コンポーネントタイプごと)を採用しているケースも案外あるのではないかな。 レイヤ構造または機能構造の優先順位でプロジェクトや…

実装技術としてのドメインモデル

DDD

ドメインモデルの良いところは、実際のビジネス構造と実装のギャップを小さくすることができる点だと考えています。逆に言うと、ドメインモデルを実装するためにはビジネス構造の分析は必須で、ビジネス構造の分析なしに(良質の)ドメインモデルで実装する…

商品モデルに新しい価格体系を含めるような変更

DDD

−第 11 回− 定食をモデリングするの総額割引モデルを見て、以前作成したサンプル ハンバーガショップのモデルに適用したらどうなるのかなとふと思った。 商品の価格モデル変更はシステム上のインパクトが普通に考えると大変なことになるのだが、価格モデルを…

ハンバーガショップ価格モデルの改訂

DDD

とりあえず"SSセット"なる"ポテトSと+ドリンクS+各種ハンバーガ"を"150円+ハンバーガ本体価格"で提供できるようにしてみました。もとのモデルでもデータを工夫すれば同じようなことは可能ですが、やはり現実のビジネス構造をそのまま表現できるほうが良い…

ついでに伝言メモのモデリングにチャレンジ

−第 12 回− 伝言メモをモデリングするにチャレンジ 台帳の作成 モデルの前提はある程度許容されているようなので、電話通知機能を利用した伝言メモシステムの構築を前提に、既存の社内や取引先の情報を利用するようなモデルを作成してみます。オブジェクト図…

Domain-Driven Designのエッセンス

DDD

オブジェクト広場を久し振りに見てみると、なんとDDDの紹介記事が。素晴らしい。

クレジット請求

とある雑誌で上がっていたサンプルをもとにモデリングにチャレンジ。 概念モデル クラス図 分析モデル 請求クラス 台帳を作成・分析してクラス図を作成 分析モデル カードクラス 口座をトップレベルのエンティティとしてはじめはとらえていましたが、契約の…

ASP.NET Ajaxを利用したWebPartのサンプル

RSSリーダをASP.NET Ajaxのクライアントサイドフレームワークで作成しWebPart化するシナリオです。 クライアントサイドでコントロールを作成するのはASP.NET Ajaxの知識範囲でOK。WebPart化する場合のポイントはScriptManagerの取扱い方法に工夫が必要な程度…