コンテキスト境界を使ってドメイン駆動設計の効果を高める:ドメイン駆動設計の決め手、コンテキスト境界
ドメイン駆動設計は、ビジネスの主要ニーズに重点を置いてソフトウェアを開発するのに役立つ。だが、ドメイン駆動設計を実践するには、コンテキスト境界についての基礎を理解する必要がある。
アーキテクトは、純粋なドメイン駆動設計(DDD:Domain-driven design)を自社に導入するのに苦労することが多い。DDDでは、複数の部署や複数のソフトウェアシステムにまたがってビジネスプロセスを対応付ける必要があるため、その複雑さから目的の成果を得るのが難しくなる。
とはいえ、ドメインモデリングはビジネスニーズを技術設計に置き換えるのに優れたアプローチだ。そのため、アーキテクトは、DDDの効果の決め手となるコンテキスト境界(bounded contexts)を定める方法を理解する必要がある。
コンテキスト境界とは
ソフトウェア設計コンサルタントで書籍も執筆しているエリック・エヴァンス氏は、自身の著書『Domain-Driven Design:Tackling Complexity in the Heart of Software』(※)でコンテキスト境界について定義している。初めにエヴァンス氏は、複数のドメインからなる大きなビジネスドメインを、各ドメインをサポートする個別の基盤ソフトウェアシステムへ対応付ける際に、適切なコンテキスト境界がいかに役立つかを説明している。その意味では、コンテキスト境界とは、大きなソフトウェアシステムの複雑さを抑えるために必要なルールと境界を手引きするパターンだといえる。
(※)邦題:『エリック・エヴァンスのドメイン駆動設計、ソフトウェアの核心にある複雑さに立ち向かう』翔泳社
コンテキスト境界により、定義するドメインモデルが意味を成すことが保証される。コンテキスト境界の境目がどこになるかはそのシステムを利用する人々にとって明らかなはずだ。この境目が明確でなければ、非効率で複雑なドメインモデルが生み出される可能性がある。
関連記事
- マイクロサービスアーキテクチャにおける「サービス配置」の考え方
マイクロサービスアーキテクチャを用いてシステム開発をする場合、アプリケーションをどのように分割して配置すればいいのか。アプリケーション間の通信はどのような点に留意すべきかを、オイシックス・ラ・大地の川上徹氏が解説します。 - オブジェクト指向設計の5つの原則「SOLID」を解説
TechTargetは、「オブジェクト指向設計の原則『SOLID』」に関する記事を公開した。本稿ではSOLIDの入門編として、この開発体系を具現化する5つの原則、各原則が推奨するプラクティス、そしてこの考え方が重要である理由について説明する。 - 多数の開発チームを管理できる「アジャイルリリーストレイン」の価値とは
複数の開発チームがコードに取り組むと、統合とデプロイメントが複雑になる。こうした複雑さを摩擦なく取り除くのにはアジャイルリリーストレイン(ART)が役立つツールになる可能性がある。本稿ではこのARTについて解説する。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.