エリック・エヴァンスのドメイン駆動設計(通称:DDD本)を読み始めたのでメモを残しておこう。
ドメインモデルとは?ドメインエキスパートの知識を厳密に構成、厳選して抽象化したものだ。
モデルと設計の核心が相互に形成しあう。
モデルと実装が剥離しては効果が薄い。実装とモデルを緊密に保つべしとのこと。 モデルの形状として何を想定しているのだろう?プログラムコードかな? プログラムコードをドメインエキスパートに読ませるのはしんどいのではないだろうか。 かといって記述用の擬似言語を設計するのもつらい。
モデルは、チームメンバ全員が使用する言語の基板である。
ドメインエキスパートも開発者もモデルの言葉を使ってコミュニケーションしよう、という話。 同じ言葉を使うことで不要な摩擦を除くことができる。
わかりやすい話ではあるが、日本においては日本語と英語の選択をしなければならない。 モデル言語として英語を使う場合、大半の日本人について、英語ネイティブスピーカーと同程度に英単語を自然に扱う能力は無いことは明白だ。 議論を重ねる上でモデル言語は洗練されていくが、その前提には高い言語能力が仮定されている。 英語を選択した場合、洗練がうまくいかない可能性があるのではないか。 一方で日本語を選択した場合、開発者が同じ単語を使うためには日本語でコードを書くことになるのではないか。 日本語でのプログラミングはプラットフォームによっては許容されるかもしれないが、一般に避けたいものである。
「モデルの構築と表現言語の選択」というのは日本人特有の課題だなあ。
第1章
ドメインエキスパートと議論を重ねることで知識を噛み砕きモデルを構築する話。 ドメインエキスパートと開発者が共同作業することが重要。 ほらほら、新しい言語とかフレームワークとかばっかりみてないで、対象業務がどうなっているか興味を持とうよ、てなことが書いてある。
だれも最初から完璧人間ではないのでモデルの構築は発見的に行われる。 変化を許容する必要がある。
コミュニケーション方法に言及するあたりが本書のスタンスをよく表している。
今日はここまで