2007-01-01から1年間の記事一覧

ドメインモデルに対する日米の温度差

DDD

僕もここ数年同じようなことを感じていました。 あと、日米の温度差というか気になっている差としてはISVが少ない、ユーザIT部門が組織が小さい、CIOがいないなどが感じるかな。日本はSIerが強すぎるんだろうな。最後に、DDD・PoEAAが発表されてから数年たっ…

階層化された構造制約

DDD

前の「構造制約を満たしていると確認されていない状態」については、もう少しうまく取り扱えないかなと考えてみました。 そこで思いついたのが、「あるモデルにおいて1つの固定的な構造制約を満たしているかどうか」と考えるよりは、「構造制約にも階層があ…

仕掛構造での操作

DDD

構造制約を考えた場合、オブジェクトは構造制約を満たしていると保障されている状態と保障されていない状態(編集中)に大別されることになります。オブジェクトの操作(導出属性を含む)を考えた場合、構造制約に依存しなければ問題ないのですが、オブジェク…

暗黙的な構造制約

DDD

通常は明示する必要がないのでしょうが、自クラス自身の構造制約を判断する検証クラス(有効お買い上げ明細?、有効販売商品?、有効販売商品明細?)を明示するとこんな感じになります。クラス自身が必ず暗黙的に検証ロジックを持つと考えれば、わざわざSep…

構造制約の明示

DDD

構造制約を識別した後に、実際にモデルに制約を明示します。しかし、実際に制約を記述しようとした時に、どのようにすれば良いのでしょうか? できれば、詳細な内容は設計時まで遅延して、なおかつ、設計時にもれなく吟味できるようにしたいと考えています。…

構造制約と検証ロジック

DDD

構造制約とはオブジェクト間の関係に対してなんらかの条件をつけることで、0対1や多対1などのカーディナリティをはじめ順序や重複の有無などの制約があります。さらに「1回の購入金額が規定の金額を超えない」のように何らかのビジネスルールによって関…

構造制約と操作制約から検証ロジックを識別する

DDD

構造制約はオブジェクト間の制約や識別子の一意制約など静的な制約で、操作制約は特定の処理(オペレーション)を実行するときの前提条件で動的な制約になります。 この分類を利用して検証ロジックを考えと整理しやすいのではないかと考えています。検証ロジ…

レイヤごとの検証ロジック

DDD

最近、分析・設計時の検証ロジックの識別と設計のやり方をいろいろドメインモデルとの関連も含めて考えてます。 よくある検証ロジックの方式は、単純な入力チェックを画面層で行い、DBの制約やビジネスルールの制約をまとめてビジネス層でおこなうパターンか…

企業統一データベースの実装リスク

ER

アーキテクチャジャーナルの8号「データ統合の柔軟なモデル」で良い記事があったのでメモがてら紹介。*1複数のシステムでばらばらにもっているデータを1つに統合するというアイデアは昔からよく言われているが実際の構築は非常に難しい。これは、個々のシ…

プログラミング・チームのやる気をなくさせるトップ10の方法

Top 10 Ways To Demotivate Your Programming Teamありがちなのはこの3つかな。 不可能な納期 残業の強制 チャレンジさせない 1つ目は契約ミスの場合のしわ寄せで、はじめからやる気がなくなるパターン。2つ目の残業はやることが明確でかつ短期的なリカバリ…

Sandcastleの目次が文字化けする

NDOCが2.0対応しないためSandcastleを利用してヘルプファイル(chm)を作成している。 Sandcastleだけでは大変なのでNDOCと同じようなGUIを持つSandcastle Help File Builderと合わせて利用している。 今まで快適に使っていて特に問題なかったのであるが、ク…

シンプルにWorkflowを実行してみる

WF

WFが出ているが、あまり利用例などが出てこない。この点は僕の過去の経験からはある程度予想していたが、それでも少ないようにも感じている。良い技術なのにもったいない。 そこで非常にシンプルな使い方としてWFのシーケンシャルフローを(ジェネラル)フロ…

今年の冬はあったかい

淀川の河川敷を自転車で走った。風が少しあったが、全然冷たくない、冬の風じゃないね。

Web Client Software Factory

少し前に出て、すこし見ているのだけれども、なかなか面白い。 ページフローをWFで制御するなどチャレンジがあってよい。僕も以前ユースケースコントローラの実装を試していて、使えそうな感触を持っていたので、設計思想も含めて詳しく実装の中身を追ってみ…

IEのクローズ処理をハンドリングする

普通はそんなの難しいからあきらめてもらうのだが、どうしてもやりたいというので考えることにした。 まずは、Googleで調べてみるとそれなりにHITする。みんな苦労しているんだな。 onbeforeunload 最初にたどり着いたのは、onbeforeunload イベントを利用す…

ASP.NETのWebページでSubmit時に画面をロックする

基本的な考え方は、Submit直前に画面を覆うDIVを作成して画面上のコントロールをクリックできないようにします。DIVタグを利用する場合、IE6の問題でSelectタグが常にトップレベルに表示されてしまうので、Selectタグについてはdisplayをhiddenに設定して表…

ドメインモデルってつかえない???

とあるところでの会話 ドアさん) DBのテーブルのカラム項目が増えるとドメインモデルにも項目を追加しないといけないですよね。 オオさん) 必須ではないですが、そうすることが多いですね ドアさん) じゃ、ドメインモデルにしてもメリットないですね。 …

拡張メソッドを使ってコードが読みやすくする

DDD

次のC#で提供される拡張メソッドを使うとドメインモデルのMixIn的な拡張を簡単にできるので、読みやすいコードが書きやすくなりそうです。今まで、外部メソッドで表現している以下のようなコードがあるとすると public bool IsMember(User user) { return (u…

ExpressionBuilder

DDD

お気に入りのテクニックになりそうです。何といってもコードを読み易くできそうな点が気に入っています。 StringBuilderがこのパターンで、組み立て時に自クラスのインスタンスを返すようになっています。

ドメインモデル内のサービス

DDD

サービスというとサービス層で実装するようなビジネスファサード的なものを浮かべると思います。しかし、ドメインモデル内でもサービスを実装することがあります。たとえば以前の注文モデルの拡張のようなものです。これはドメインモデルが単に賢いデータを…

ASP.Net Ajax, WF, Linqを使ったWebダッシュボード

なんか楽しそうなことしていますね。WFなんかは無理やり使っているように見える所なんかが本当に楽しそう。Build Google IG like AJAX Start Page in 7 days using ASP.NET AJAX and .NET 3.0詳しくはCodeProject

DIコンテナをマイクロカーネルで実装

Castle ProjectでもDIコンテナが提供されている。Inversion of ControlこのDIコンテナのアーキテクチャが興味を引いた。DIコンテナの基本的な仕組みをマイクロカーネルとして実装しているのである。確かにDIするインタフェースをサービスと考えればしっくり…

DDDとDSL

DDD

RoRなんかを見ていると、ドメインモデルとDSLの組み合わせで新しい可能性があることを感じていたが、Eric EvansもDDDの次の一歩としてDSLを期待しているようだ。(何の根拠もないがなんか嬉しい) More out on the cutting-edge are the efforts in the area…