FLINTERS Engineer's Blog

FLINTERSのエンジニアによる技術ブログ

ユビキタス言語とドメイン名の決め方

自分がDDD+Scrum開発をする上でマネージャなどと意見を合わせるために
ユビキタス言語を徹底させました。
そこでどのように言葉とプログラムを落とし込んだかの例です。

目的

MTGなどで話す言葉を共通にする事によって開発とマネージャとの
やりとりをスムーズにする。

会話文(ドメイン) プログラム上(単数) 複数 概要 
コマ  Panel Panels 4コマ漫画の一コマを表す
漫画   Comic Comics 漫画などでいうタイトルなどの情報
作家 Author Authors この漫画の作者などの情報
話(わ) Story Stories 週刊誌に乗ったりする場合の第1話

説明

開発者のみでユビキタス言語を使う場合は、プログラム上の言葉をそのまま
使えばいいのですが、開発者外の人とやりとりする時にとても不都合だった。
実際にScrum開発ではストーリーボード上から言葉を拾いまとめるので
必然的に日本語名になる。

考察1

そのまま日本語に書いた例がこちらになる。
ありえない。。。

考察2

そこで逆にプログラム上の言葉を使う方向にすると話し言葉で使ってるわけではないので
浸透しなくなる。パネルがって言ってもコマの事を表してるとすぐ連想できない。
日本語≠英語
相互に変換する事は不可能

結果

結論としては、プログラム上と会話文(ドメイン)と2つの関連を開発者だけが認識して持つようにして
MTGなどではプログラム上の単語を一切禁止にしました(開発者のみの場合は可)
複数を持たせたかったのは個人的理由でした。特に複数はいらないかも知れません。
ただ複数を意識する事によって英語のわからない自分でもわりと英単語探しの絞込みにイカせました。

参考URL:
ユビキタス言語と日本語
もしドメインモデルを日本語のコードで書いたら