Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ドメイン駆動設計のホーリズム的側面 / domain-driven-design and holism

B8403d102456248570005ee7fb2ba0f7?s=47 philomagi
August 28, 2021

ドメイン駆動設計のホーリズム的側面 / domain-driven-design and holism

https://ddd-community-jp.connpass.com/event/220962/ でのLT資料

# 概要
- DDDが持つホーリズム(Holism)的側面への言及
- DDDが言及しているのは「分割」だけではない
- 「全体は部分の総和以上である」

# 参考資料
福岡伸一 (2017) 『新版 動的平衡』小学館新書
廣松 渉(編) (1998) 『岩波 哲学・思想事典』岩波書店
Jerry Fodor (1992) 『Holism』John Wiley & Sons
エリック・エヴァンス(著), 今関剛(監訳), 和智右桂, 牧野裕子(訳) (2011) 『エリック・エヴァンスのドメイン駆動設計』 翔泳社
philomagi, 「ソフトウェアと動的平衡」

B8403d102456248570005ee7fb2ba0f7?s=128

philomagi

August 28, 2021
Tweet

Transcript

  1. @Philomagi 2021/08/28@エヴァンス本輪読会お疲れ様会 #dddcj ドメイン駆動設計の ホーリズム的側面 1

  2. 発表者 @Philomagi • WEB系プログラマ • 自称フロントエンド寄り ◦ 最近の推しはSelf・Smalltalk・Scala・Ruby • 趣味は怪文書

    2
  3. 今回のテーマ 3 • DDDが持つホーリズム(Holism)的側面への言及 • DDDが言及しているのは「分割」だけではない • 「全体は部分の総和以上である」

  4. ドメイン駆動設計

  5. 『エリック・エヴァンスのドメイン駆動設計』 全体の構成 5 第1部:ドメインモデルを機能させる 第2部:モデル駆動設計の構成要素 第3部:より深い洞察へ向かうリファクタリング 第4部:戦略的設計

  6. 6 第1部:ドメインモデルを機能させる 第2部:モデル駆動設計の構成要素 第3部:より深い洞察へ向かうリファクタリング 第4部:戦略的設計 『エリック・エヴァンスのドメイン駆動設計』 全体の構成

  7. 第4部:戦略的設計 7 ここで検討するのは、全体としてのシステムに対して適 用される3つ組の原理、すなわち、コンテキスト、蒸留、 および大規模な構造である。 『エリック・エヴァンスのドメイン駆動設計』p.xviii

  8. 第4部:戦略的設計 8 ここで検討するのは、全体としてのシステムに対して適 用される3つ組の原理、すなわち、コンテキスト、蒸留、 および大規模な構造である。 『エリック・エヴァンスのドメイン駆動設計』p.xviii

  9. 第4部:戦略的設計 また、モジュール化によって、必ずしも設計に統一性がもたらされるとは限 らない。(...) 境界づけられたコンテキストがそれ自体で全体としてのシステムを見やす くするわけではない。(...) 相変わらず理解する必要があるのは、補助的な要素とコアドメインに関す る関係、さらに補助的な要素同士の関係である。(...) 「大規模な構造」は、システムをおおよその構造から議論し、理解できるよ うにするための言語である。(...)すなわち、さまざまな部分の果たす役割 が、どのように全体を構成するかについての概念が共有されているのだ。

    『エリック・エヴァンスのドメイン駆動設計』p.447-448 9
  10. 第4部:戦略的設計 また、モジュール化によって、必ずしも設計に統一性がもたらされるとは限 らない。(...) 境界づけられたコンテキストがそれ自体で全体としてのシステムを見やす くするわけではない。(...) 相変わらず理解する必要があるのは、補助的な要素とコアドメインに関す る関係、さらに補助的な要素同士の関係である。(...) 「大規模な構造」は、システムをおおよその構造から議論し、理解できるよ うにするための言語である。(...)すなわち、さまざまな部分の果たす役割 が、どのように全体を構成するかについての概念が共有されているのだ。

    『エリック・エヴァンスのドメイン駆動設計』p.447-448 10
  11. ポイント① • 「全体」というワード • 個々の要素(クラス、モジュール、コンテキスト)を作る方 法だけでなく、それら全体がどのように関わり合うかに 対するモデリングの必要性

  12. ホーリズム(Holism)

  13. ホーリズム(Holism) 13 部分と全体との関係において、部分に対する全体の優越性を主張し、全体 は部分の算術的総和以上のものであるとする考え。 『岩波 哲学・思想事典』p.1501

  14. ホーリズム(Holism) 14 部分と全体との関係において、部分に対する全体の優越性を主張し、全体 は部分の算術的総和以上のものであるとする考え。 『岩波 哲学・思想事典』p.1501

  15. it seems that it all depends on the context. (...)

    meaning is, therefore, something that words have in sentences; and it’s something that sentences have in a language. 全てはコンテキストに依存する。 (...) つまり、意味とは、文の中にある語が持つものであり、言語の中にある文が 持つものなのだ。 『Holism』p.ix 訳文はDeepL + 発表者による ホーリズム(Holism) 15
  16. 16 ホーリズムとしての生物学的「動的平衡」 生命は、機械のようにいくつもの部品を組み立てただけではないという、 厳然たる事実がある。 (中略) その生命現象においては、機械とは違って、全体は部分の総和以上のな にものかである。1+1は2ではなく、2プラスα。そのプラスαは何か。それは どこから来るのか。 (中略) プラスαとは、端的に言えば、情報とエネルギーの出入りである。生物を物

    質のレベルからだけ考えると、ミクロなパーツからなるプラモデルに見えて しまう。しかし、パーツとパーツのあいだには、エネルギーと情報がやりと りされている。それがプラスαである。 生命現象のすべてはエネルギーと情報が織りなすその「効果」のほうにあ る。 『新版 動的平衡 生命はなぜそこに宿るのか』- p.145-147
  17. 17 ホーリズムとしての生物学的「動的平衡」 生命は、機械のようにいくつもの部品を組み立てただけではないという、 厳然たる事実がある。 (中略) その生命現象においては、機械とは違って、全体は部分の総和以上のな にものかである。1+1は2ではなく、2プラスα。そのプラスαは何か。それは どこから来るのか。 (中略) プラスαとは、端的に言えば、情報とエネルギーの出入りである。生物を物

    質のレベルからだけ考えると、ミクロなパーツからなるプラモデルに見えて しまう。しかし、パーツとパーツのあいだには、エネルギーと情報がやりと りされている。それがプラスαである。 生命現象のすべてはエネルギーと情報が織りなすその「効果」のほうにあ る。 『新版 動的平衡 生命はなぜそこに宿るのか』- p.145-147
  18. 18 ホーリズムとしての生物学的「動的平衡」 情報・エネル ギー 「ソフトウェアと動的平衡」 p.38

  19. ポイント② • 「全体」は部分の総和よりも大きい • 「全体」を部分の総和よりも大きくなるための何かが存 在するはず ◦ 生物学的視点では、それは情報とエネルギーだった

  20. DDDとホーリズム

  21. • モジュールやコンテキストによって「部分」を分割しただ けでは、「全体」としてのドメインおよびシステムを表現 したことにはならない • 「全体」を描くためには、「部分」間をつなぐ様々な「関 係」をも描く必要がある DDDとホーリズム① - 部分と全体

  22. • このようなドメインおよびシステムの性質は、まさにホー リズム的(Holistic)であると言えるのではないか • 「部分」への分解のみではドメインやシステム内部の 様々な関係性が失われ、結果、理解が困難になる DDDとホーリズム② - ホーリズム的性質

  23. • 第4部16章「大規模な構造」は、こうしたホーリズム的 性質を見落とすことなく「全体」としてのドメインおよびシ ステムを描くためのアプローチという性質を持つ、と評 価できるのではないか ◦ Evansが意図したにせよしていないにせよ、結果的にそうした性質を持っ た、という評価は可能なのではないか ◦ 多分、意図していない

    DDDとホーリズム③ - DDDとホーリズム
  24. • ドメインおよびシステムの「全体」には、モジュールやコンテキストといった「部 分」だけでなく、それらの間において成立する「関係」も存在する • 「部分」への分割のみでは「関係」についての表現が失われ、結果、ドメインやシ ステムの「全体」までもが失われる • このようなドメインおよびシステムの性質は、ホーリズム的(Holistic)と言えるの ではないか •

    このような性質に言及し、かつ(特に大規模なシステムにおける)「全体」を描くこ との必要性を示したDDDの思想には、「全体は部分の総和以上である」という ホーリズム的側面もあると考えられるのではないか まとめ
  25. • 福岡伸一 (2017) 『新版 動的平衡』小学館新書 • 廣松 渉(編) (1998) 『岩波

    哲学・思想事典』岩波書店 • Jerry Fodor (1992) 『Holism』John Wiley & Sons • エリック・エヴァンス(著), 今関剛(監訳), 和智右桂, 牧野裕子(訳) (2011) 『エリッ ク・エヴァンスのドメイン駆動設計』 翔泳社 • philomagi, 「ソフトウェアと動的平衡」 <https://speakerdeck.com/tooppoo/software-and-dynamic-equilibrium> 参考資料 25