見出し画像

☆DXリテラシー(ドメイン駆動設計とは? #14)


こんにちは、モーリーです。

今日はDXリテラシーの知識として『ドメイン駆動設計』について、ごくごく簡単に解説します。

ドメイン駆動設計とは何か?

ドメイン駆動設計とは、サービス利用者の課題を見極め、改善を繰り返しながら実装に落とし込む設計手法です。それでは、その詳細について見ていきましょう!

ドメインとは?

ドメイン駆動設計の『ドメイン(領域)』が最初はわかりづらいですよね。
ドメインとは、単純に言えば『プログラムを適用する対象となる領域』のことです。でも、これだけでは、まだよく理解できないかもしれません。

例えば、民泊サービスのAirbnbを考えてみましょう。これにおけるドメインは、以下のようなものです。

  • 民家

  • 所有者と利用者


Airbnbでは、民家を貸し出すために価格を決めたり、予約日を決める必要があります。そして所有者と利用者がマッチングして、コミュニケーションを取り合う必要もあります。これらが民泊サービスのAirbnbのドメインです。

そして・・・

関連する『ドメインモデル』とは何か?

ドメインから必要な知識を抽出した結果を『ドメインモデル』と呼びます。
ドメインを明確に把握したら、サービス利用者が抱える問題に向き合い、必要な知識に焦点を当てるのです。ここでいう『必要な知識』とは具体的に何を指すのでしょうか?

サービスは、ある『何か』に対する課題を解決するために提供されます。例えば、民泊サービスのAirbnbでは『空いている部屋がもったいない』『ホテルよりも安く泊まりたい』といった課題があります。


民家というドメインに対して、『空いている部屋がもったいない』という課題があるとわかります。それならば『空いている部屋を貸し出せる仕組みがあると良い』という知識が抽出されるわけです。具体的には、『空いている部屋を貸し出せる仕組み』を実現するために、『貸し出し者の情報』『利用者の情報』『部屋の情報』『宿泊日』『空室情報』『金額」』といった要素が必要になるでしょう。こうして、ドメインから必要な知識を抽出し、それをソフトウェアに具現化していくのです。

『ドメインオブジェクト』とは何か?

ドメインモデルから抽出した知識を、ソフトウェアで動作するようにプログラムに組み込んだものを『ドメインオブジェクト』と呼びます。
ドメインオブジェクトを変更する際には、必ずドメインに変化が生じ、ドメインモデル自体も変わることに注意が必要です。

例えば、『安心して部屋を貸し借りしたい』という課題が出てきた場合、『貸し出し者・利用者のレビューを公開する』『評価の高い貸し出し者にはスーパーホストの称号を付与する』といった新たなドメインモデルが考えられるでしょう。そして、これらの変更がソフトウェアに反映されることで、『ドメインオブジェクト』も変わるのです。

まとめ

最後に、振り返ります!↓

ドメイン駆動設計は、『サービス利用者の課題を見極め、改善を繰り返しながら実装に落とし込む設計手法』です。

ドメインとは、『プログラムを適用する対象となる領域』のことを指します。

ドメインモデルとは、『ドメインから抽出した必要な知識の結果』を指します。

そして、ドメインオブジェクトは、『ドメインモデルから抽出した知識をソフトウェアで動作するようにプログラムに組み込んだもの』です。

本日は、『ドメイン駆動設計』について簡単に解説しました。



それでは、皆さん良い1日を

また 明日

See You

↓↓↓

私は、「転職」や「副業」に挑戦している人を
応援してます。

ぜひ、私のTwitter をフォローしてみてください。



この記事が気に入ったらサポートをしてみませんか?