#205
心理学・認知バイアス
#205どめいんくどうせっけい
ドメイン駆動設計 (DDD)
別名・表記:Domain Driven DesignDDD
UIXHERO Definition
「業務知識をコードにする」。ビジネスの言葉とロジックをそのままプログラムで表現する設計思想。
概要
システムの「複雑さ」に立ち向かうためのアプローチ。 技術的な実装の詳細(DBの種類やフレームワークなど)よりも、解決したいビジネス上の問題(ドメイン)を中心に据えて設計を行う。 「軽量DDD」と批判されることもあるが、そのエッセンス(ユビキタス言語や境界付けられたコンテキスト)を取り入れるだけでも効果がある。
UXでの活用
- コンテキストの理解: ユーザーが置かれている状況(境界付けられたコンテキスト)を理解し、その文脈に合った用語や操作フローを設計する。
- メンタルモデルの反映: ドメインモデルは、ユーザーのメンタルモデルを色濃く反映したものになるべきである。モデルとUIが乖離していると、使いにくいシステムになる。
💡 使いどころ
業務ロジックが複雑なシステム開発において。単純なCRUDアプリ(データの読み書きだけ)にはオーバーエンジニアリングになることが多い。
⚠️ 注意点・誤用
学習コストが高い。また、ドメインエキスパート(業務の専門家)との密な連携が必須であり、エンジニアだけで完結することはできない。
具体例
- 「ユーザー」ではなく「会員」と「ゲスト」という別のクラス(概念)としてモデリングする
- 「口座残高を減らす」ではなく「出金する」というメソッドを作る
出典・参考文献:
- Evans, E. (2003). Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley.
関連する解説記事
関連する記事詳細が見つかりませんでした。