質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

ドメイン駆動設計

ドメイン駆動設計(Domain-driven design, DDD)とは、ソフトウェアの設計手法、および設計思想や哲学のことです。ドメインモデル構築の際に、設計上の判断を決定する枠組みとドメイン設計に関して議論するボキャブラリを提供するものです。

Q&A

解決済

1回答

916閲覧

DDDにおけるユビキタス言語を用いた実装について

baz

総合スコア14

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

ドメイン駆動設計

ドメイン駆動設計(Domain-driven design, DDD)とは、ソフトウェアの設計手法、および設計思想や哲学のことです。ドメインモデル構築の際に、設計上の判断を決定する枠組みとドメイン設計に関して議論するボキャブラリを提供するものです。

1グッド

3クリップ

投稿2017/10/01 00:09

編集2017/10/01 10:30

はじめまして。ご質問させていただきます。

背景

現在、社内で初めて(自分自身も初めて)ドメイン駆動設計(いわゆるDDD)に則ってプロジェクトを進めています。
社内にはドメイン駆動設計について詳しい人もおらず、有志が勉強しながら進めていっているのが現状です。

聞きたいこと

ドメイン駆動設計において、「ユビキタス言語」という考え方が非常に重要かと思います。
そこで特にドメイン駆動設計について経験があったり知識のある方に教えていただきたいのですが、
ユビキタス言語として用いられる日本語は、そのまま日本語として実装すべきでしょうか?それとも英語に翻訳して英語とし実装すべきでしょうか?

自分で調べた範囲

以下のブログにて、ドメイン駆動設計提唱者のエリック・エヴァンスが、「ドメインエキスパートが日本語をしゃべり、業務もプロジェクトも日本語なら、日本語を使うのが当たり前だろ?」というようなやり取りをしたということが書かれています。
参考:QCon Tokyo 2011 アーキテクチャパネルディスカッション+DDD雑多ネタ

しかし、それを受けても、「日本語をプログラムに使用するのは難しいからコメントで日本語を補完するしかないかなぁ」とおっしゃっている方もいます。
参考ドメイン駆動設計(DDD)について書きます

「例えば、エリック・エヴァンスの教えに忠実に則って日本語でプログラムしたら・・・」という記事がありました。
これは開発者とドメインエキスパートとのコミュニケーションを円滑に行うという本来の目的を果たすうえで、かなり有用だと思います。しかし、開発者としては「日本語のプログラムなんて・・・」と合理的な理由より前にはっきり言って体が拒否反応します。
参考:ユビキタス言語と日本語

結局...

こういうことにはつきものですが、一般的な答えはないのだと思いました。
ですが、実際にやってみてどうだったかとかの経験談や、英語または日本語で書くべき合理的理由があれば教えていただきたいです。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

べき論で尋ねられるとなかなか回答が難しい話かもしれません。
同じではないですが、似たような質問として下記がありましたので、紹介しておきます。

プログラミングでローマ字を使用することについて

個人的な考えで回答しますと、実際のコーディングについては英語を主体とした、全角文字を用いない形での実装がよいのではないかと思います。
全部が英語でなくとも、上記質問のように部分的にローマ字日本語のような形でもよいと考えます。
理由としてはコーディング中に全角/半角を切り替えるのが煩雑だから、という単純なものですので、そこまで強く主張するものではありません。
主要なプログラミング言語の基本構文は英語がメインとなりますので、どうしても切り替えが発生します。

上記の場合にも、ユビキタス言語としての用語は、質問にも記載頂いているようにDocコメントに記載するような形で対応付けが分かるようにはしておいた方がよいかと思います。

1点、メソッド名に日本語をそのまま使用してもよいのではないかという箇所があります。
それは、自動単体テストのテスト項目となるメソッド名です。
該当のメソッドは単体テスト以外の場所で参照される可能性がなく、テスト結果で項目名として表示されるので何が失敗したのかが分かりやすく、利便性がよいと感じます。
TDDBCなどのテスト駆動開発のハンズオンでも上記のような話をされているようです。
ですので、この場合は存分にユビキタス言語を使って、仕様をメソッド名として書いていくとよいのではないでしょうか。

投稿2017/10/02 05:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問