タグ

ブックマーク / masuda220.hatenablog.com (2)

  • システムを捉える5つの視点 - ソフトウェア設計を考える

    システムと呼ばれるものは、さまざまな要素の関係が複雑で、要素とその関係が変動し、予測が難しく、とらえにくいものである。 システムと呼ばれるものに取り組む時に、自分が意識している5つの視点を簡単にまとめてみた。 ①文脈で考える ②全体と部分で考える ③関係で考える ④ネットワークで考える ⑤プロセスで考える まとめ ①文脈で考える システムを取り巻く環境や、そのシステムがおかれた状況が、そのシステムのさまざまな特徴を生み出しているという、という捉え方。この環境や状況が、システムが存在し持続する文脈となる。 システムと環境は相互に作用する関係にある。つまり、環境が変わればシステムが変化し、システムが変われば、環境になんらかの変化が生まれる。 システムが人工物の場合、取り巻く環境を構成する要素は、三つに分類できる。 その人工物を作る理由や目的 その人工物を作るために利用可能な資源 その人工物を作

    システムを捉える5つの視点 - ソフトウェア設計を考える
  • ドメイン駆動設計の集約のわかりにくさの原因と集約を理解するためのヒント - ソフトウェア設計を考える

    『ドメイン駆動設計』のモデル要素のひとつとして「集約」があります。 アプリケーションの対象となる事業活動の仕組みや決め事をソフトウェアで表現する技法のひとつとして集約の考え方はとても役に立ちます。 集約パターンはデータベースのデータ整合性の視点での説明されることが多いようです。しかしデータ整合性の文脈で集約を理解しても、ドメイン駆動設計の中核の関心事である「ドメインの複雑さ」を理解しドメインの知識をクラスで表現するためにはあまり役に立ちません。 この記事では、集約パターンをドメインロジックを表現するモデルの構成要素として効果的に利用するためのヒントを提供したいと思います。 集約はデータ操作の道具ではありません。集約はビジネスルールにもとづくドメインロジックのモデリングと実装の手段です。ここがわかるとドメイン駆動設計の理解が一気に進むと思います。 どうして集約がデータ整合性の話になってしまう

    ドメイン駆動設計の集約のわかりにくさの原因と集約を理解するためのヒント - ソフトウェア設計を考える
  • 1