2006-05-01から1ヶ月間の記事一覧

プレゼンテーションモデル

最近良く利用するパターン。 ASP.NET2.0で双方向バインドできるので、プレゼンテーションモデルを作成して組み合わせるとコントロールのプロパティに設定・取得するコードが必要なくなりすっきりします。 プレゼンテーションモデル自体は、多くの場合(簡単…

関心事に分離されたドメインモデル

DDD

部分的なドメインモデルはこれから「関心事に分離されたドメインモデル」と呼ぶようにします。 AOSDと「関心事に分離されたドメインモデル」は近い部分がありますが、「関心事に分離されたドメインモデル」はあくまでも設計技法でユースケースで関心事を分離…

部分的なドメインモデルの名称を考えたいのだが

DDD

名前は重要だよな。 自慢じゃないがこうゆうセンスは持っていない。

DataSetはPIか

DDD

普通に考えると違うかな。 ただ、永続化APIには依存しないので永続化メカニズムには非依存という意味では△ぐらいにはなるかな

Persistence Ignorance(PI)

DDD

こないだ買った本に書いてあったこと・POJOの.NET版のことをPOCO(Plain Old CLR Object)と呼ぶそうだ ・これからはPI(Persistence Ignorance)と呼ぶそうだ。POJOはまだしもPOCOはピンとこないからPIのほうが直感的で良いのだが広まるかどうか。

部分的なドメインモデル

DDD

ドメインモデルの設計では、あまり機能面の観点で分離することを言及することは少ないと感じるのですが、実際には機能単位やユースケース単位に開発担当者が割りあてられることが多く、機能面で分離できないと多くの開発者がコードを共有する必要があり、開…

会員の貸出数の実装

DDD

図書館のシステムで、特定の会員が現在貸りている書籍の数(貸出数)をどのように実装するかな?(1)会員クラスに貸出数プロパティを作成する? (2)貸出サービスに会員の貸出数を取得するメソッドを作成する? (3)その他 (1)は会員と貸出が双方向…

ニコニコカレンダー

最近プロジェクトの「見える化」がはやっているよね。 まずは手っ取り早く導入できるニコニコカレンダーなんかがいいのかなと思っていたのですが、「なかなか調子悪いマークとか書きにくいよな。全部ニコニコになるんじゃないかな」という話を聞いて「うーん…

ベースクラス インジェクション

これはベースクラスでインジェクションを行うというお気に入りの方法です。メリットは、特別なコンテナフレームワークが必要ない点です。ベースクラスがコンポーネントに対するインジェクションの管理を行います。このため、インスタンス管理を柔軟にできる…

インタフェースの多用

最近DIばやりしていてインタフェースを多用する事例を良くみますが、どうなんでしょうかね。 1インタフェース=1クラスになっていて、機能追加があったときにわざわざインタフェースと対応するクラス両方直すようなことになっていたりすることはないのかな…

抽象クラスとインターフェイスの使い分け

MSDNには非常に多くのことがかかれていて、単なるリファレンスだけではなく、より一般的な知識を提供してくれる点もおおいたとえば、抽象クラスとインターフェイスに関する推奨事項では以下のような内容が記述されています。 コンポーネントの複数のバージョ…

タイトルだけで即予約注文した。

Applying Domain-Driven Design and Patterns: With Examples in C# and .NET作者: Jimmy Nilsson出版社/メーカー: Addison-Wesley Professional発売日: 2006/05/08メディア: ハードカバー購入: 1人 クリック: 4回この商品を含むブログ (8件) を見る

StreamWriterとFile.CreateTextで作成されるファイルの違い

StreamWriterでUTF-8でエンコードされたファイルを作成する場合とFile.CreateTextでファイルを作成する場合、どちらもUTF-8で作成されます。・StreamWriter(filename, false, System.Text.Encoding.UTF8)・File.CreateText(filename)でも、1つ違うところが…

なぜ、Double.Parse(Double.MaxValue.ToString())は動かないか?

doubleはそもそも浮動小数点なのでToString()すなわち10進で表現した時点で丸目が発生する。このため、Parseで戻せない可能性がある。 これを回避するためにはrオプションを使って、Double.Parse(Double.MaxValue.ToString("r"))すればOKです。こんなのこと…

こんどのC#はすごいな

C# 3.0すごいことになりそうですね。 おもいっきり関数型の思想を入れてきそうです。 // Line 1: (define f (lambda (a) (+ a 1))) Func f = a => a + 1; // Line 2: (define e (quote (lambda (a) (+ a 1)))) Expression> e = a => a + 1;Code and Data in …

List利用上の注意

FX2.0では、ArrayListの代わりにListを利用します。 しかし、フレームワークで利用する場合注意が必要です。 Listのメソッドのオーバライドができない これは、Listがパフォーマンスを優先しているためで、特別な処理を追加したくてもできないためです。 参…

引っ越そうなか

どっとねっとメモから引越しを考えています。