ドメイン駆動設計(DDD)
どめいんくどうせっけい
意味
概要
エリック・エヴァンスが提唱した、複雑な業務ロジックを持つシステムの開発手法。Domain Driven Design。 技術的な都合(DBのテーブル構造など)よりも、解決したい「業務領域(ドメイン)」の知識やルールを最優先にして、それをそのままコードに落とし込むアプローチ。
ユビキタス言語
エンジニアとドメインエキスパート(業務の専門家)が、共通の言葉(ユビキタス言語)を使って対話します。 「在庫」という言葉が、倉庫担当者と営業担当者で違う意味で使われているとバグの元になります。言葉の定義を厳密に揃え、それをクラス名やメソッド名として実装します。
境界づけられたコンテキスト
巨大なシステムを、意味のある単位(コンテキスト)に分割し、それぞれの領域内で独立したモデルを作ります。これにより、大規模なシステムでも複雑さに押し潰されずに開発を続けられます。