Your SlideShare is downloading. ×
0
java-ja DDDざっくりDDD入門!!    グロースエクスパートナーズ(株)               和智 右桂
JavaEE勉強会 所属             Yukei Wachi グロースエクスパートナーズ株式会社 勤務      和智 右桂 ネコ好き               IT アーキテクト                         ...
アジェンダ•導入•DDD的アプリの構造•モデル駆動設計                         スライド中で使用されている画像について、      その著作権の全部または一部は、 クレジットに示した著者によって保留されています。    ...
導入
ソフトウェアは複雑だ...
複雑なのは、ドメインそのもの、  すなわち、 ユーザの活動やビジネスなのである。      ドメイン駆動設計 p.xiv
今までに開発したシステムについて、ドメインをどれだけ理解していましたか?         3D Character and Question Mark http://www.flickr.com/photos/crystaljingsr/3914...
業務知識とは?    キーパーソン             現場の手際  経済の知識
業務知識とは?    データの構造    演算       ルール         システム間連携
業務知識を反映させることで、   ソフトウェアは  柔軟に変更したり拡張したりできるようになる
DDD的ソフトウェアの     構造
業務知識を反映した ソフトウェアの  構造とは?
その前に
それほど          しない業務知識を反映した ソフトウェアの  構造とは?
いわゆるトランザクションスクリプト           手続きにまで分解       Ancient Tamil Script http://www.flickr.com/photos/symphoney/76513801/ by Idol
処理の種類に応じたモジュール化                                                                          入力チェック                           ...
ただし...  貨物予約ドメイン               10 %のオーバーブッキングを認める   仕様書                     航海                   貨物  データモデル               ...
基本設計書に書いてある?         ここらへん
あらためて業務知識を反映した ソフトウェアの  構造とは?
制約をコード内で可視化する 貨物予約ドメイン             10 %のオーバーブッキングを認める  仕様書                   航海                         貨物 ドメインモデル        ...
ただし、バランスが重要https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/blob/master/src/main/java/com/seriouscompany/business/jav...
正しい オブジェクト指向設計?
モデル駆動開発
複雑なドメインの設計は     モデルを基にする
モデルとは                                            専門家によって                                               整理され               ...
まずは、モデルを共有しよう!  Microsoft Bing Maps datacenter http://www.flickr.com/photos/scobleizer/4870003098/ by Robert Scoble
シナリオ       モデル
ソフトウェアに             モデルを反映させる   escher wannabe b/w http://www.flickr.com/photos/midlander/54915243/ by you are your atman
続きは実践編へ!
One More !ing...
ところでモデルと言われて、どんなものを思い浮かべますか?     3D Character and Question Mark http://www.flickr.com/photos/crystaljingsr/3914729343/ by 姒...
作るべきは、業務のモデル   シンプルなら、ほぼE-R図
続きは実践編へ!
ありがとうございました!         Photo by @digitalsoul0124 All rights reserved.
Upcoming SlideShare
Loading in...5
×

ざっくり DDD 入門!!

9,755

Published on

2013/3/25 java-ja DDD

0 Comments
32 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,755
On Slideshare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
51
Comments
0
Likes
32
Embeds 0
No embeds

No notes for slide

Transcript of "ざっくり DDD 入門!!"

  1. 1. java-ja DDDざっくりDDD入門!! グロースエクスパートナーズ(株) 和智 右桂
  2. 2. JavaEE勉強会 所属 Yukei Wachi グロースエクスパートナーズ株式会社 勤務 和智 右桂 ネコ好き IT アーキテクト @digitalsoul0124 Digital Romanticism http://d.hatena.ne.jp/digitalsoul Photo by @digitalsoul0124 All rights reserved.
  3. 3. アジェンダ•導入•DDD的アプリの構造•モデル駆動設計 スライド中で使用されている画像について、 その著作権の全部または一部は、 クレジットに示した著者によって保留されています。 Photo by @digitalsoul0124 All rights reserved.
  4. 4. 導入
  5. 5. ソフトウェアは複雑だ...
  6. 6. 複雑なのは、ドメインそのもの、 すなわち、 ユーザの活動やビジネスなのである。 ドメイン駆動設計 p.xiv
  7. 7. 今までに開発したシステムについて、ドメインをどれだけ理解していましたか? 3D Character and Question Mark http://www.flickr.com/photos/crystaljingsr/3914729343/ by 姒儿喵喵
  8. 8. 業務知識とは? キーパーソン 現場の手際 経済の知識
  9. 9. 業務知識とは? データの構造 演算 ルール システム間連携
  10. 10. 業務知識を反映させることで、 ソフトウェアは 柔軟に変更したり拡張したりできるようになる
  11. 11. DDD的ソフトウェアの 構造
  12. 12. 業務知識を反映した ソフトウェアの 構造とは?
  13. 13. その前に
  14. 14. それほど しない業務知識を反映した ソフトウェアの 構造とは?
  15. 15. いわゆるトランザクションスクリプト 手続きにまで分解 Ancient Tamil Script http://www.flickr.com/photos/symphoney/76513801/ by Idol
  16. 16. 処理の種類に応じたモジュール化 入力チェック <script var a= var xl if(xls DBアクセス A Very Nice Window Indeed パラメタ Search Search SIDEBAR Pop-Up Menu Small Pop-Up SQLテンプレート Stuff Combo Box Bits Things Bobs Small Combo Odds Odds Ends Ends Help Tag Label Explanotext データベース Cancel OK 結果セット UI <script var a= var xl if(xls SQL 編集ロジック <script var a= var xl if(xls処理内容に関わらず構造は安定
  17. 17. ただし... 貨物予約ドメイン 10 %のオーバーブッキングを認める 仕様書 航海 貨物 データモデル 積載量 * サイズ // 貨物を追加する <script var a= var xl if(xls int 予約済み貨物量 = … ソースコード if(予約済み貨物量 + 貨物.サイズ > 航海.積載量 * 1.1){  // 予約できない  return … ; } 重要なロジックが埋もれる
  18. 18. 基本設計書に書いてある? ここらへん
  19. 19. あらためて業務知識を反映した ソフトウェアの 構造とは?
  20. 20. 制約をコード内で可視化する 貨物予約ドメイン 10 %のオーバーブッキングを認める 仕様書 航海 貨物 ドメインモデル 積載量 * サイズ {貨物のサイズの合計 < 航海の積載量 * 1.1} オーバーブッキング ポリシー // 貨物を追加する <script var a= var xl if(xls int 予約済み貨物量 = … ソースコード if(オーバーブッキングポリシー.allows(貨物, 航海)){  // 予約できない  return … ; }
  21. 21. ただし、バランスが重要https://github.com/Mikkeren/FizzBuzzEnterpriseEdition/blob/master/src/main/java/com/seriouscompany/business/java/fizzbuzz/ packagenamingpackage/impl/strategies/BuzzStrategy.java
  22. 22. 正しい オブジェクト指向設計?
  23. 23. モデル駆動開発
  24. 24. 複雑なドメインの設計は モデルを基にする
  25. 25. モデルとは 専門家によって 整理され 単純化された 世界観Astrolabe http://www.flickr.com/photos/kotomi-jewelry/4171052675/ by Kotomicreations (aka- kotomigd)
  26. 26. まずは、モデルを共有しよう! Microsoft Bing Maps datacenter http://www.flickr.com/photos/scobleizer/4870003098/ by Robert Scoble
  27. 27. シナリオ モデル
  28. 28. ソフトウェアに モデルを反映させる escher wannabe b/w http://www.flickr.com/photos/midlander/54915243/ by you are your atman
  29. 29. 続きは実践編へ!
  30. 30. One More !ing...
  31. 31. ところでモデルと言われて、どんなものを思い浮かべますか? 3D Character and Question Mark http://www.flickr.com/photos/crystaljingsr/3914729343/ by 姒儿喵喵
  32. 32. 作るべきは、業務のモデル シンプルなら、ほぼE-R図
  33. 33. 続きは実践編へ!
  34. 34. ありがとうございました! Photo by @digitalsoul0124 All rights reserved.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×