13章

現実世界のドメイン駆動設計

 ドメイン駆動設計の技法を使って、事業活動を深く理解し、業務知識を共有し、設計の意思決定を行うための考え方とやり方を説明してきました。この知識を実際のソフトウェア開発に活かせたら、どんなに楽しいか想像してみてください。これから始まる新規プロジェクトの様子を想像してみましょう。

チーム全員がドメイン駆動設計を熟知し、最初から全員が役に立つモデルの探求に全力をつくし、当然のことながら、全員が同じ言葉を忠実に使っています。プロジェクトが進むにつれ、区切られた文脈の境界が明確になり、その境界は事業活動のさまざまなモデルをしっかりと保護しています。事業戦略と整合した実装方法が選択され、コードベースは体系的に整理されています。つまり、ソースコードが同じ言葉を語り、モデルの複雑さをうまく扱うための技法があちこちにちりばめられています。

 残念ながら、これは夢物語です。目を覚ましましょう。

 こういう理想的な状況でドメイン駆動設計に取り組めるとしたら、それは宝くじに当たったようなものです。もちろん、そういう可能性はゼロではありません。しかし現実には難しいでしょう。残念なことですが、多くの人は、ドメイン駆動設計を適用できるのは、新規の開発案件でドメイン駆動設計に熟達したメンバーがそろっている場合、という理想的な条件を満たしていることが必要だと誤解しています。皮肉なことに、ドメイン駆動設計が大きな効果をもたらすのは、すでに稼働しているソフトウェアに取り組んだ場合です。つまり、事業への貢献が実証されていて、積み重なった技術的負債と膨れ上がった設計の乱雑さを刷新する必要があるシステムこそ、ドメイン駆動設計で取り組む価値がもっとも高いのです。偶然にも、多くの技術者が取り組んでいるのは、このような、変更がやっかいで危険な大きな泥団子のコードベースです。 ...

Get ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.