Slide 1

Slide 1 text

第28回 関西IT勉強宴会 (2013/12/13) ドメイン駆動設計を知ろう PHPメンターズ 久保敦啓、後藤秀宣 PHPメンターズ http://phpmentors.jp/ 関西IT勉強宴会 http://www.onas.asia/home/kwansaiit

Slide 2

Slide 2 text

ドメインとは 知識、影響、または活動の領域

Slide 3

Slide 3 text

レイヤー ドメインレイヤー アプリケーションレイヤー インフラレイヤー プレゼンテーションレイヤー

Slide 4

Slide 4 text

ドメイン駆動設計とは 開発のすべてを カバーするものではない 他の手法と相互補完

Slide 5

Slide 5 text

ドメイン駆動設計とは 他の手法と相互補完 分 析 手 法 開 発 プ ロ セ ス パ ラ ダ イ ム ドメイン駆動設計

Slide 6

Slide 6 text

ドメイン駆動設計とは フレームワーク 語彙

Slide 7

Slide 7 text

ナビゲーションマップ (1) ग़యɿʰエリックエヴァンスのドメイン駆動設計』 表見返しのパターンナビゲーションマップ

Slide 8

Slide 8 text

ナビゲーションマップ (2) ग़యɿʰエリックエヴァンスのドメイン駆動設計』 裏見返しのパターンナビゲーションマップ

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

パラダイムとの関係 ドメイン駆動設計 パラダ イムA パラダ イムB パラダ イムC

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

モデル駆動設計 分析 設計 実装 WaterFall

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

モデル駆動設計 分析 設計 実装 DDD モデル

Slide 15

Slide 15 text

モデルとは

Slide 16

Slide 16 text

モデルのバリエーション 分析設計技法「三要素分析法」集中講座(2): データ、UI、業務手順の「3要素」をとらえる (1/3) 図1 3方向で見え方がまったく異なる立体の例 ! 渡辺 幸三(2006年05月09日) http://www.itmedia.co.jp/im/articles/0605/09/news085.html

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

モデル駆動設計 DDD モデル 実装

Slide 21

Slide 21 text

ドメインモデルとは PofEAAの定義は狭義、限定的

Slide 22

Slide 22 text

ドメインモデルとは データ 機能

Slide 23

Slide 23 text

ドメインモデルとは ドメイン定義 概念モデル ドメイン辞書 ユースケース モデル フィーチャー モデル

Slide 24

Slide 24 text

フレームワーク ・構成要素   (ビルディングブロック) ・しなやかな設計 ・コンテキスト ・蒸留 ・大規模な構造

Slide 25

Slide 25 text

ビルディングブロック データ 機能

Slide 26

Slide 26 text

ビルディングブロック データ 機能 データモデル ユースケースモ デル

Slide 27

Slide 27 text

ビルディングブロック データ 機能 エンティティ 値オブジェクト 集約 ・・・ サービス ファクトリ リポジトリ ・・・

Slide 28

Slide 28 text

モデル駆動設計 DDD モデル 実装 エンティティ 値オブジェクト 集約 ・・・ サービス ファクトリ リポジトリ ・・・ エンティティ 値オブジェクト 集約 ・・・ サービス ファクトリ リポジトリ ・・・

Slide 29

Slide 29 text

モデル駆動設計 DDD モデル=実装 エンティティ 値オブジェクト 集約 ・・・ サービス ファクトリ リポジトリ ・・・

Slide 30

Slide 30 text

まとめ ドメインレイヤーの話 概念フレームワーク パラダイム非依存

Slide 31

Slide 31 text

!31

Slide 32

Slide 32 text

!32 ग़యɿʰジェネレーティブプログラミング』 表 2.2 ドメイン工学にもとづくソフトウェア開発

Slide 33

Slide 33 text

!33 参考文献 エリックエヴァンスのドメイン駆動設計 ジェネレーティブプログラミング ΤϦοΫɾΤϰΝϯεஶʗࠓؔ߶؂༁ʗ࿨ஐӈܡɺ຀໺༞ࢠ༁! ʰΤϦοΫɾΤϰΝϯεͷυϝΠϯۦಈઃܭʱ(IT Architects’Archive ιϑτ΢ΣΞ։ൃͷ࣮ફ) ᠳӭࣾɺ2011ɺISBN 978-4798121963! ݪஶɿEric Evans.! Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, 2003. ISBN 978-0321125217 ΫγγϡτϑɾνϟϧωοΩɺ΢ʔϧϦγϡɾ̬ɾΞΠηϯΞοΧʔஶʗ௡ా࢙ٛɺࠓؔ߶ɺேൺಸ܄༁! ʰδΣωϨʔςΟϒϓϩάϥϛϯάʱ(IT Architects’Archive CLASSIC MODER) ᠳӭࣾɺ2008ɺISBN 978-4798113319! ݪஶɿKrysztof Czarnecki, Ulrich Eisenecker.! Generative Programming: Methods, Tools, and Applications. Addison-Wesley Professional, 2000. ISBN 978-0201309775 マルチパラダイムデザイン δΣʔϜεɾOɾίϓϦϯஶʗฏು ݈ࣇɺۚ୔ యࢠɺӋੜా ӫҰ༁! ʰ৽૷൛ɹϚϧνύϥμΠϜσβΠϯʱϐΞιϯۅݪɺ2009ɺISBN 978-4894715288! [ݪஶɿJames O. Coplien.! Multi-Paradigm Design for C++. Addison-Wesley Professional, 1998, ISBN 978-0201824674