ブックマーク / masuda220.jugem.jp (3)

  • Domain-Driven Design ドメイン駆動の設計 | システム設計日記

    ドメイン(domain)の語源は、「支配している場所と」か「領地」という意味らしい。この線からこっち側はオレ様の領地、という感じですかね。 Domain-Driven Design(DDD)に、Bounded Context(コンテキスト境界)パターンがある。個々のドメイン(領地)の境界線をきちんとして、境界を越えて干渉しないようにすべし、という考え方ですね。これ、ドメインのもともとの意味を、再確認して強調しているだけなのね。 ソフトウェアは、何かを解決するために開発する。だから、ソフトウェア開発は、まず、その問題(の領域)を正しく理解することから始まる。そういう意味では、どんなソフトウェア開発も Domain-Driven Design なんだと思います。 まあ、問題領域の理解が浅かったり、関係者間で理解がばらばらだったりすると、悲惨な結果になるわけですが、ドメイン駆動というのは、ソフト

    masakanou
    masakanou 2010/01/27
    >問題領域の分析や理解よりも、いきなり作り始めるか、逆にとてもりっぱな仕様書作りに入るか。どちらの場合も、問題はそんなに複雑ではない、というのが前提になっているんだと思う。
  • Shared Kernel パターン は、たぶん アンチパターン | システム設計日記

    二つの Bounded Context を、別のチームで開発していると、コードやデータベースにかなり重複が目立つことがある。 Shared Kernel パターンは、そういう状況を改善するために、 ・特に重複がひどい箇所を、共通化すべき領域として特定し ・2つのチームが相談しながら ・共通モジュール(Shared Kernel) を開発・維持する ことに取り組もう、というやり方ですね。 なぜ、そういう状況が起きるか? 別の Bounded Context なのに、なぜ、そんなに重複が多いか? 来は、ひとつの Bounded Context として扱うべき問題を、なんらかの事情で、2つのチームに分けて開発しているからなんだと思う。 ありがちなケースは、開発メンバーは大勢いるが、経験不足・スキル不足のメンバーが大半、という状況。 10人のメンバーが、ひとつのチームとして開発するのは、現実的で

    masakanou
    masakanou 2010/01/15
    >「人」のバリエーションとして「顧客」や「従業員」を表現する、なんていう発想は、普通のビジネスドメインではありえない。 /「顧客」と「従業員」は、まったく異なる、別の Bounded Context のオブジェクト
  • システム設計日記

    テスト駆動開発 和田卓人(t-wada)さんによる『テスト駆動開発』の新訳版が出版されました。 オブジェクト指向でソフトウェアを開発するのであれば、このとマーチンファウラーの『リファクタリング』は必読書だと思います。この古典ともいえる『テスト駆動開発』が和田さんの手によって新訳版として復刊されたことは、ほんとうにすばらしいことです。 このが出版された経緯と、和田さんはじめ関係者の方々のご努力については、和田さんの、このブログをぜひ読んでいただければと思います。 新訳版『テスト駆動開発』が出ます 新訳は、単に原著が日語で読めるようになっただけではありません。和田さんの手によって、原著にはない新たな価値が付け加えらました。 一つは、サンプルコードの工夫です。 できるだけ省略はしない変更箇所を目立つようにした各章末にその時点での全コードを記載する これらの工夫により、に書かれた内容が、

    masakanou
    masakanou 2009/03/03
    DDD
  • 1