• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
ざっくり DDD 入門!!
 

ざっくり DDD 入門!!

on

  • 8,015 views

2013/3/25 java-ja DDD

2013/3/25 java-ja DDD

Statistics

Views

Total Views
8,015
Views on SlideShare
6,183
Embed Views
1,832

Actions

Likes
24
Downloads
38
Comments
0

17 Embeds 1,832

http://starzero.hatenablog.com 737
http://a-suenami.hatenablog.com 241
http://heartbeatheart.blogspot.jp 236
http://grimrose.blogspot.jp 201
http://blog.livedoor.jp 171
http://makopi23.blog.fc2.com 146
https://twitter.com 42
http://localhost 24
http://grimrose.blogspot.ru 14
http://webcache.googleusercontent.com 7
http://heartbeatheart.blogspot.com 5
http://feedly.com 2
http://heartbeatheart.blogspot.in 2
http://feeds.feedburner.com 1
http://heartbeatheart.blogspot.sg 1
http://b.hatena.ne.jp 1
http://s.deeeki.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    ざっくり DDD 入門!! ざっくり DDD 入門!! Presentation Transcript

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