コンテンツにスキップ

「実践ドメイン駆動設計」から学ぶDDDの実装入門

https://www.shoeisha.co.jp/book/detail/9784798161501 https://gyazo.com/dc379908047ee42bcb1227ce2ef22ca7

  • DDD本、IDDD本に挫折した人用
  • C#によるサンプルコードあり

以下、感想

  • DDD、Java/C#文化圏(?)の影響が大きい印象
  • エヴァンス本が出た頃のメインストリームはJavaだったから時代背景はある
  • DAO/DTO/DPOとかはどこの文化圏?Java?
  • ベリトランスAPIのサンプルコードにも出てきた
  • お堅いエンプラなシステムで使っているイメージ
  • デザインパターンの用語っぽい
  • よりビジネスとして価値のあるシステムをOODで作るための手法であり、考え方、という理解
  • とは言え、重厚
  • 適用するシステムを絞らないと辛そう
  • リファクタリングによって徐々にモデルが正解に近づく
    • ビジネスの正確な理解と実装の一致
  • 犠牲的アーキテクチャとの整合は?
  • 捨てることを前提としたアーキテクチャの場合に、コード量が増えるのは望ましくない
  • 言語のバージョンアップ、フレームワークのバージョンアップへの追随の問題
  • マイクロサービスアーキテクチャとの整合は?
  • マイクロサービスごとにドメインモデルを作る?
    • サービスを分割するときにドメインを考慮するのは良いかも
  • ユビキタス言語 + 戦略 + 戦術
  • まずユビキタス言語
  • backlogの課題の中で使われている単語を抜き出したらいいかも
  • 何をどう呼んでいるか
    • 例 SKU
    • 流行り廃りもある
  • 戦略
  • 境界づけられたコンテキスト
  • コアドメイン サブドメイン 支援ドメイン
  • 戦術
  • 値オブジェクト
  • エンティティ
  • 集約
  • etc
  • 性能と美意識のバランスを取りながら作っていて、それは別々のタイミングでやる方が良さそう
  • 動作する綺麗なコード

#読書