Help us understand the problem. What is going on with this article?

「実践ドメイン駆動設計」読書メモ【更新途中】

書籍情報

実践ドメイン駆動設計 (Object Oriented SELECTION)
2019/07/19読了

個人的に印象に残った個所とメモ(※更新途中)

p20.要するにユビキタス言語って・・・

  • 業務で使う用語のこと?⇒NO
  • その業界で標準として定められている用語のこと?⇒NO
  • ドメイン・エキスパートが普段つかっている言葉のこと?⇒NO

⇒ユビキタス言語とは「ドメインエキスパートやソフトウェア開発者を含めたチーム全体で作り上げる共有言語」

p24.DDDを採用する事業価値

  • 組織として、ドメインに関する有用なモデルを獲得できる ⇒ ビジネス的に最も重要なところの作業に注力する。まず注目するのはコアドメイン。モデリングをやりすぎたりはしない。
  • 事業について、より洗練された正確な定義ができて、さらに深く理解できる
  • ドメインエキスパートが、ソフトウェアの設計に貢献できる
  • よりよいユーザー体験を提供できる
  • モデルとモデルの間に、明確な境界を定められる
  • エンタープライズアーキテクチャが、より整理されたものとなる
  • アジャイルでイテレーティブなモデリングを、継続的に行える
  • 戦略的な面でも戦術的な面でも、新しいツールを使える

p43.ドメインとサブドメインそして境界づけられたコンテキスト

  • ドメイン
    • 商品カタログサブドメイン
    • 注文サブドメイン
    • 請求サブドメイン
    • 発送サブドメイン

   |Eコマースシステム
   |在庫システム
   |外部の需要予測システム

   |在庫サブドメイン

p48.支援ドメインと汎用サブドメイン

p58.境界づけられたコンテキストの意味を知る

  • コンテキストは主として「言語的な境界」となる。
   例)銀行取引コンテキスト・ アカウント
     文学コンテキスト・・・ アカウント
    ⇒ 全く違う意味だが、名前は同じ。

    

p84.コンテキストマップ

p121.ヘキサゴナルアーキテクチャ

p163.エンティティ

  • ドメインよりもデータを気にする場合、データモデルがオブジェクトに反映され、「ドメインモデル」の ほぼすべての概念が、一つのエンティティと大量のゲッター/セッター群になってしまう。
  • エンティティには一意な識別子があって、変化するという特性がある。 ⇒ これが「値オブジェクト」と異なる点

  • 【CRUDベースの手法との対比】

p209.値オブジェクト

p235.JavaBeanの仕様の悪影響。流れるような表現力の喪失

p273.ドメインイベント

p319.モジュール

  • Javaではパッケージ
  • C#では名前空間
  • Rubyではmodule

DDDの文脈において、モデル内のモジュールは、ドメインオブジェクト内のひとまとまりのクラス群をまとめる、
名前付きコンテナとして機能する。
その目的は、別のモジュールのクラス群との結合を少なくすること。

適切な名前を付けることも重要になる。
モジュールの名前は、ユビキタス言語の重要な一面である。

ドメインの概念についての最新の状態を、モジュールに込めるようにしよう。

モジュールの「べし」「べからず」

  • モジュールは、モデリングの概念にフィットするように設計すべし
  • モジュールの名前は、ユビキタス言語に従うべし
  • コンポーネントの型やモデル内で使っているパターンなどから、モジュール名を機械的に決めるべからず
  • モジュールは、疎結合になるよう設計すべし
  • 対等なモジュールどうしの結合が必須になる場合は、循環依存にならないようにすべし  (対等なモジュールとは、同じ「レベル」にある、つまり、同程度の重要性だったり、同じ方向を向いて作られていたりするモジュールを指す)
  • 親子関係のモジュールの結合の場合は、ルールを多少緩和すべし(親モジュールは上位レベルにあるモジュール、子モジュールは下位レベルにあるモジュールを指す)
  • モジュールをモデルの静的な概念とせず、モジュールが取りまとめるオブジェクト群にあわせて変えるべし

p333.集約

コアドメイン(スクラム)における集約の使用

p491.アプリケーション

プログラムって、要は使えてナンボのもんでしょ Linus Torvalds

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away