読者です 読者をやめる 読者になる 読者になる

DDDのコンテキストはDDDに関わらず、全ての開発に使えるのでは?

DDD

DDDの重要な概念の1つに「コンテキスト」がある。
これはDDDに関わらず、複雑なアプリケーション開発に利用できるのでは?

個人的にコンテキストを利用することで「クラスの責務」をシチュエーションごとに定義しやすくなるというのが
面白い点だった。

一般的なカード形式のソーシャルゲームでいうと、
自分のカードを閲覧する画面と戦闘画面ではカードの振る舞いが違ってくる。

閲覧画面ではカード情報を表示するので、
単純な getter があれば十分だと思う。

ただ、戦闘画面では戦闘時のランダム性を持たせた攻撃力、守備力算出など
ある程度のドメインロジックを持たせたり、
戦闘に関連する振る舞いを持たせる必要がある。

このように「閲覧画面」と「戦闘画面」というコンテキストでカードの振る舞いを限定し、
クラスの責務をコンパクトにすることができるのではないか?

「カード」というクラスが複数存在することになるが、
それはコンテキストを分離すること(境界づけられたコンテキスト)で解決するので、
ちゃんと定義できれば良い実装になりそうな気がする。

そして、これは実装パターンで言うと DCI の概念と似ているような・・・。

コンテキストを導入するコストも考慮する必要があるし、
上手くいくとは限らないけど、
コンテキストを導入することで、
既存のモジュールベースの実装とは違った観点で何か良いことが起こる気がする。

という感想でした。