1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DDDについて 備忘録

Posted at

DDD(ドメイン駆動開発)で使用される語句

DDDを理解する上で知っておくべき、語句をまとめる。

####ドメイン
ソフトウェアで問題解決しようとする対象領域のこと

####モデル
問題解決のために、物事の特定の側面を抽象化したもの。ドメインモデルはドメインの問題を解決するためのモデル。

####ユビキタス言語
開発者とユーザーとの間で共通の厳格な意味を持つ用語を構築するというプラクティスを表すために使用した用語である。 ユビキタス言語はソフトウェアにおけるドメインモデルに基づいている。

DDD(ドメイン駆動設計)とは

DDD(ドメイン駆動設計)はソフトウェア開発手法の1つ。どのような開発手法か簡潔に説明すると、ドメインモデルをソフトウェア開発の中心にすえ、コードやコミュニケーションを常にドメインモデルと一体化させながら、ドメインモデルを反復的に深化させることでより価値の高いアプリケーションを生み出していこうとする手法である。

DDDとアーキテクチャ

DDDではレイヤードアーキテクチャが用いられている。
image.png

presentation層

アプリケーション外部との入出力を実現する。JSONでレスポンスを返したり、HTMLをレンダリングして返したりといった選択はこの層の責務。主なクラスは、コントローラー、アプリケーション外部との入出力を定義するクラスがある。

usecase層

ドメイン層が公開している操作を組み合わせて、ユースケースを実現させる。特定のクライアントには依存しない実装にする。

domain層

ドメイン知識(ルール/制約)を表現する。この層を独立させ、他の層への依存を持たせないようにする。層自体を「ドメインモデル層」「ドメインサービス層」とする方法もある。

infrastructure層

下位レイヤで定義されているインターフェイスを実装し、アプリケーションを支える技術的な提供。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?