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

Subsonic Vs NHibernate

DDD

純粋ORMであるNHibernateと流れるようなインタフェースでSQL文作成するSubsonicについて Subsonicの学習コストが低いようなコメントが多いですね。S2JDBCも同じようなメリットをうたっていたと思う。 この点は(人数が多い)大規模プロジェクトには有利なん…

DDD本のサンプル

DDD

こんなサンプルがあるのは知らなかった かなり前からあるのかな、気付かなかった

Domain Driven Design and Development In Practice

DDD

DDDについて、いろいろなことが書いてあるけど、目新しいことはないかな。Project Managementの視点でDDDを語っているのは興味があったけど、それほど深い洞察があるわけでもない。 今だとメタプログラミングやDSLの視点でDDDを語ってほしいな。あと、サンプ…

京都へのポタリング

GWは淀川沿いに京都までいってきた。三条大橋の横のスターバックスでお茶して、嵐山のお土産屋で辰っちゃん漬けを買って帰ってきた。よい天気で気持ちよかったけど、帰りは向かい風と自分の脚力の無さのせいでかなりしんどかった。あと腕の日焼けが、グロ…

大規模プロジェクトでのドメインモデル導入のハードル

大規模プロジェクト*1の場合、機能仕様(ユースケース・シナリオ)を作成する仕様作成者と、実際に開発を行う開発者が異なり、多くの場合、開発者は担当の部分的な仕様しか説明がなく理解していない。 ドメインモデルを導入する場合複数の開発者でモデルのソ…

FxCopでCyclomatic complexityのチェックができたんだ

VS2008ではさまざまなメトリックスが算出できるようになりますが、VS2005でもあったんだ。「CA1502:メソッドの実装を複雑にしすぎないでください」がそれのようです。25より大きいと警告がでるようです(以下参考)CA1502: Avoid Excessive complexity - Cod…

RESTとドメインモデル

RESTはデータモデル的で振る舞いがないように思われているが僕はそうじゃないと考えている。 導出項目や構造制約を実装したビジネスルールが表現可能なモデルをRESTとして公開するのはそれほど難しいことではないし、おかしなことでもないよね。今度、ドメイ…

ドメインモデルは実装方式だよね

ドメインモデルを語る際にモデルを作るのが難しいということを言う人が多いが違和感を感じる。これはドメインモデルはあくまでも実装方式で設計モデルではないと考えているからである。確かに良い設計モデルであればより堅牢なドメインモデルの実装が可能に…

ORM導入時にでるSQL文を書きたいという意見

合理的な理由で部分的にSQL文を利用する程度あればよいのですが、くわずもの嫌いのメンバーがORMを導入する際に出てくる意見として「ORMよりもSQL文の方が性能がでるのだからSQL文で記述したい」があるこの意見については大きく2つのポイントで確認するよう…

SpringSourceがMicrosoftによる買収を発表

エー...

標準化 技術選択

標準化を行うときにどのようなテクノロジや手法を利用するか選択しなければならない。このとき、さまざまな要因で判断することになるのだが生産性の視点はよく出る。これを難度x作業量で評価する。難度は手順化することで下げることが可能で、作業量は自動…

標準化

昔は誰が書いても同じようなコードにすることを考えた 次にコントロール可能なポイント*1を定義し一定以上の品質を目指した 今は仕様をそのまま動かすことを考えている ドメインモデル、自動生成、メタプログラミング、DSL、昔に比べればソフトウエア開発は…

Expression Builder

入力チェックのライブラリに応用してみた。言語内DSLとしての読みやすさに期待したのだが、それ以上に表現力が広がった。2番目のRangeのように文字列パース方式と組み合わせるとより効果的だった。 // 0=<入力数値<10 ValidatorExpression rule1 = new Valid…

LINQ Framework Design Guidelines

VBではSystem.Objectを拡張することは避ける(VBでObject型を使うと実行時にメソッドを解決する。拡張メソッドはコンパイル機能であるため実行エラーになるため)などが記述してあったので、LINQを利用するためのガイドかなと見ていたら、Query PatternなどL…

コーディング作業の終了基準

どんなメトリックスが実用的かな。 やり方やチームによって変わってくるとは思いますが、業務アプリでコスト効果を考えた最低限レベルはどんなものかな。 コーディング規約の遵守率 = 100% Cyclomatic complexity ステートメントカバレッジ率 > 70% シナリオ…

ADO.NET Data Services

最近気になっているREST Webサービスの.NET実装 検索条件の指定やデータのナビゲーションが豊富に指定可能です。かなりSQLぽい指定です。 全Categoriesデータ取得 http://astoria.sandbox.live.com/northwind/northwind.rse/Categories Categoriesのプライマ…