LoginSignup
0
0

More than 1 year has passed since last update.

【読書メモ】ドメイン駆動設計 モデリング/実装ガイド

Last updated at Posted at 2022-08-03

「ドメイン駆動設計 モデリング/実装ガイド」の読書メモ
https://booth.pm/ja/items/1835632

第2章 モデリングから実装まで

  • ドメイン知識はドメイン層の対応するオブジェクトに書く
  • 常に正しいインスタンスしか存在させない
  • 「アプリケーションとして何を行うのか」を定義するのが一番開発につなぎやすい

第4章 設計の基本原則

  • 基本的に高凝集・低結合を目指す

第5章 アーキテクチャ

  • よくある3層アーキテクチャ(プレゼンテーション層、ビジネスロジック層、データアクセス層)の問題は、ビジネスロジック層が低凝集になること
  • レイヤードアーキテクチャ
    • プレゼンテーション層(クライアントとの入出力)
    • アプリケーション層(ユースケースの実現)
    • ドメイン層(ドメイン知識の表現)
    • インフラ層(データベースとの入出力)
  • レイヤードアーキテクチャの問題はドメイン層にリポジトリを置く場合、インフラ層(特定のDBなど)に依存すること
  • ドメイン層が特定のインフラ技術に依存しないことの解決策の1つがオニオンアーキテクチャ
  • オニオンアーキテクチャでは、リポジトリはインターフェースをドメイン層に、実装クラスをインフラ層に定義する
  • オニオンアーキテクチャでは、ドメイン層はほかの層への依存を持たせない

第6章 ドメイン層の実装

  • リポジトリはListのように扱う。
  • 「ユーザ登録する」「ユーザを退会状態にする」メソッドを持たせず、新規登録状態のユーザー、退会状態のユーザーをaddするという使い方
0
0
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
0
0