ドメイン駆動設計で実装する3つのデメリット

何事にもメリットデメリットがあります。

ドメイン駆動設計で実装する場合、メリットもありますがデメリットもあります

本記事では、ドメイン駆動設計で実装する3つのデメリットをお伝えします。

ドメイン駆動設計で実装する3つのデメリット
  • 初期の開発工数がかかる
  • 名前を決めるのが大変
  • コーディングでよく立ち止まる

私は、デスクトップアプリ開発とスタンドアロンゲーム開発で、ドメイン駆動設計を採用し、実装しました。そのときに感じたことを基にしています。

↓の書籍を参考にしています。

ドメイン駆動設計で実装するメリットは↓の記事を参考にしてください。

目次

初期の開発工数がかかる

1つ目のデメリットは初期の開発工数がかかることです。

開発工数がかかる理由
  • 多数のパッケージ、クラスを使用する
  • リファクタリングを何度もする
  • 名前を決めるのに時間がかかる( 詳しくは次章 )
  • コーディングでよく立ち止まる( 詳しくは次次章 )

ドメイン駆動設計に慣れていても、工数がかかります。初めて実装するならば、さらに時間が工数がかかるでしょう。

ドメイン駆動設計は保守性は高くなりますが、その分初期の開発コストは大きくなります

簡単なツール作りや、小規模プロジェクトなどでは、ドメイン駆動設計を採用しないほうがよいかもしれません

ドメイン駆動設計は、中~大規模プロジェクト向きで、初期工数がだいぶとれるときに採用するとよいと思います。

また、初めて実装するならば、ドメイン駆動設計の勉強も必須となるでしょう。コーディングしては勉強して、リファクタリングをする。実装はその繰り返しとなるでしょう。

名前を決めるのが大変

2つ目のデメリットは、名前を決めるのが大変ということです。

ドメイン駆動設計を採用すると、クラスの数が多くなります。そのクラスの数だけ、名前を付ける必要があります

名前を付けるいるとき↓のような悩みにぶち当たるでしょう。

名前つけの悩み
  • ベストな名前が思い浮かばない。。。
  • 以前名前をつけたものと、同じ名前をつけたくなった。。。
  • いい名前をつけたのに、設計変更することになり、また名前を考えることになった。。。

名前付けは時間がかかることが多々あります。でも、分かりにくい名前を付けてしまうと、数週間後、あなただけでなくプロジェクトメンバー全員が混乱することになります

名前付けは時間がかかるけど、おろそかにできない。名前を決めることは大変な作業です。

名前付けに関しては↓の記事も参考にしてください。

コーディングでよく立ち止まる

3つ目のデメリットは、コーディングでよく立ち止まることです。

コーディング中に以下のように疑問を持つことがよくあります。

コーディング中の疑問
  • ここの書き方は、ドメイン駆動設計と違うのではないか?
  • ドメイン駆動設計通りに書いているつもりだけど、違和感がある

疑問に思うたびに、書籍やネットを再確認することになるでしょう。立ち止まるたびに設計から見直しです。

ドメイン駆動設計は、設計手法が確立されています。なので、その手法に合わせてコーディングをしたくなります。

仮に疑問が解決して、再度コーディングをしても、また新しい疑問が生まれるでしょう。また、立ち止まることになります。ドメイン駆動設計はその繰り返しです。

とりあえず、ドメイン駆動設計通りやったとしても、プロジェクトにとって最適であることはおそらくないです。ドメイン駆動設計の1つ1つの手法にもメリットデメリットはあります。

その都度、プロジェクトで最適な方法を考えるべきです。

まとめ

本記事では、ドメイン駆動設計で実装する3つのデメリットをお伝えしました。

ドメイン駆動設計で実装する3つのデメリット
  • 初期の開発工数がかかる
  • 名前を決めるのが大変
  • コーディングでよく立ち止まる

ドメイン駆動設計を採用するかどうかは、メリットデメリットを比較して決めるとよいでしょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次