/note/tech

DDD熱が冷めて思うこと

なぜ、難しいか

  • 基本的に抽象的なことを扱っている上に、前提や語彙の定義があいまいなこと
  • 歴史が浅いこと
  • 具体例を表に書きづらいこと

DDDの落ち着き方

1. 技術や用語、概念などから、一部だけ盗む

ValueObject、Repository、Dependency Injection、テスタビリティ、ユビキタス言語、などの概念や用語だけを盗みます。

例えば、永続化するわけではなく各テーブルにamountと単位および単位に関する計算ロジックがあるなら、それを1つのドメインモデルとしてValueObjectの形でAmountモデルを作って、そこに集約させたら扱いやすいかも知れません。どうもamountに関するロジックが散らばっているが、直し方がいまいち分からないし、大勢が参加するPJだといちいち語彙の統制が取れないという時に、ValueObjectとしてAmountモデル¥を利用したらいいなと気づくことができます。

FileやIO、外部API、DBやRedis、別プロセスといった外部への通信は、だいたいレポジトリ層にまとめておくと、依存性の注入によりテスタビリティを上げられるでしょう。一旦それでいいと考えます。

MEMO: