ざっくり DDD 入門!!
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

ざっくり DDD 入門!!

  • 8,664 views
Uploaded on

2013/3/25 java-ja DDD

2013/3/25 java-ja DDD

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
8,664
On Slideshare
6,744
From Embeds
1,920
Number of Embeds
19

Actions

Shares
Downloads
40
Comments
0
Likes
29

Embeds 1,920

http://starzero.hatenablog.com 753
http://heartbeatheart.blogspot.jp 258
http://a-suenami.hatenablog.com 249
http://grimrose.blogspot.jp 202
http://blog.livedoor.jp 172
http://makopi23.blog.fc2.com 168
https://twitter.com 43
http://localhost 24
http://s.deeeki.com 16
http://grimrose.blogspot.ru 14
http://webcache.googleusercontent.com 7
http://heartbeatheart.blogspot.com 5
http://heartbeatheart.blogspot.in 2
http://feedly.com 2
http://heartbeatheart.blogspot.sg 1
http://feeds.feedburner.com 1
http://b.hatena.ne.jp 1
http://slideshare-download.seesaa.net 1
http://labs.septeni.co.jp 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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