ドメイン駆動設計入門

7,331 views
7,214 views

Published on

Beautiful Development - DevLOVE 2010.10.27

Published in: Technology, Business
1 Comment
23 Likes
Statistics
Notes
  • スタッフのみなさま、聞いて下さったみなさま、ありがとうございました。
    発表原稿は以下のアドレスで公開しています。
    http://d.hatena.ne.jp/digitalsoul/20101027/1288180208

    注意:
    スライドのライセンスは'表示—非営利—継承'としていますが、スライド内の写真によっては改変不可のものもあります。2次利用の際にはご注意下さい。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
7,331
On SlideShare
0
From Embeds
0
Number of Embeds
55
Actions
Shares
0
Downloads
121
Comments
1
Likes
23
Embeds 0
No embeds

No notes for slide

ドメイン駆動設計入門

  1. 1. ドメイン駆動設計入門 和智 右桂 @digitalsoul0124 DevLOVE 2010.10.27 Beautiful Development
  2. 2. 和智 右桂 JavaEE勉強会 所属 InfoQ Japanでときどき翻訳 Yukei Wachi @digitalsoul0124 Digital Romanticism http://d.hatena.ne.jp/digitalsoul ネコ好き Photo by @digitalsoul0124 All rights reserved. 思想系プログラマ
  3. 3. •導入 •オブジェクトとは? •モデルとは? •ドメイン駆動設計とは? アジェンダ Photo by @digitalsoul0124 All rights reserved. スライド中で使用されている画像について、 その著作権の全部または一部は、 クレジットに示した著者によって保留されています。
  4. 4. 導入
  5. 5. Domain-Driven Design http://www.flickr.com/photos/hlegius/3072942016/in/photostream/ by Hélio Costa
  6. 6. Eric Evans http://www.flickr.com/photos/chrstopher/1447594745/ by Chrstopher
  7. 7. オブジェクトとは?
  8. 8. デザインパターンを 実装するためのもの? Strategy Composite Visitor Chain of Responsibility Template Immersive Archeology - Aura Lily breathes life into the architecture and culture of Ancient Egypt http://www.flickr.com/photos/pathfinderlinden/199857439/ by John E. Lester
  9. 9. The word no made from jigsaw puzzle pieces http://www.flickr.com/photos/horiavarlan/4536149424/ by Horia Varlan
  10. 10. オブジェクト指向があって パターンがある。 その逆ではない。 ...Insert Caption Here... http://www.flickr.com/photos/darrentunnicliff/3432070258/ by ĐāżŦ {bad contact, no biscuit}
  11. 11. 現実世界の モノ ? 動物オブジェクト 狐オブジェクト 狸オブジェクト woodland animals http://www.flickr.com/photos/merwing/4460283913/ by merwing✿little dear
  12. 12. cute but wrong http://www.flickr.com/photos/gerardstolk/4989786533/ by Gerard Stolk
  13. 13. 虹は何種類の色からできている? Rainbows End http://www.flickr.com/photos/tomraven/3045385852/ by TomRaven
  14. 14. 7色? 誰かがグラデーションに名前をつけただけ color wheel http://www.flickr.com/photos/unleashingmephotography/2316833560/ by unleashingmephotography
  15. 15. 僕らは言葉によって世界を切り分け そこに名前を与え 意味に囲まれて生きている XIX: The Dyson Sun http://www.flickr.com/photos/arenamontanus/3407128256/ by Arenamontanus
  16. 16. オブジェクトは 概念 を 表現するためのもの Concept Woman's Hands with Rose http://www.flickr.com/photos/stephenkwilli/3258065448/ by Stephen K. Willi
  17. 17. モデルとは?
  18. 18. Fashion @ the Curve - Jasmine http://www.flickr.com/photos/duke9042004/2971587200/ by duke9042004
  19. 19. モデル・ビュー・コントローラ MVC Model View Controller Model
  20. 20. これがモデル? if (hoge) { for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (fuga) { if (fuzz) { // do something } } else { if (buzz) { // do something } } } } }
  21. 21. if(hoge){ for(inti=0;i<10;i++){ for(intj=0;j<10;j++){ if(fuga){ if(fuzz){ //dosomething } }else{ if(buzz){ //dosomething } } } } } M !?
  22. 22. Script View Controller Procedure View Controller いわゆる トランザクションスクリプト Ancient Tamil Script http://www.flickr.com/photos/symphoney/76513801/ by Idol 確かに、処理の流れは分かりやすいけれど...
  23. 23. モデルとは、 知識の表象である - Trygve Reenskaug Tree of Knowledge http://www.flickr.com/photos/knilram/64366434/ by Knilram 1979
  24. 24. メンタルモデルを写し取るもの 出典:http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html by Trygve M. H. Reenskaug Mental Model
  25. 25. 言葉によって構築された、世界の像 メンタルモデルとは kandinsky_composition_viii http://www.flickr.com/photos/williamcromar/4598260907/ by williamcromar !e way we see " world
  26. 26. Object O#ented 概念をクラスとして表現し London Bridge (Tower Bridge) : Reflection on the River Thames http://www.flickr.com/photos/anirudhkoul/3499471010/ by Anirudh Koul メンタルモデルを映し取る
  27. 27. ドメイン駆動設計とは?
  28. 28. ドメインとは? 知識を持ち、 影響を与え、 活動する領域 Sphere http://www.flickr.com/photos/maurizio_l/3477330734/ by mlaudisa Domain
  29. 29. ドメインモデルとは? 専門家は ドメインをとらえる モデルを持っている Astrolabe http://www.flickr.com/photos/kotomi-jewelry/4171052675/ by Kotomicreations (aka- kotomigd) Domain Model
  30. 30. ドメイン駆動設計とは? まず、ドメインとドメインロジックに 焦点を合わせる 複雑なドメインの設計は モデルをベースにする Astrolabe http://www.flickr.com/photos/biker_jun/4450890981/ by Biker Jun (Offseason mode!) Domain D#ven Design
  31. 31. まずは、ドメインモデルを共有しよう! Microsoft Bing Maps' datacenter http://www.flickr.com/photos/scobleizer/4870003098/ by Robert Scoble
  32. 32. 武器は言葉 同じ言葉で、同じものを見る Aurora (by unknown) http://www.flickr.com/photos/stijnvogels/20282205/ by Stijn Vogels One team, one langua%
  33. 33. 言葉は世界を切り分けるもの 他の言葉との関係において意味を持つ World Map 1689 — No. 1 http://www.flickr.com/photos/caveman_92223/3185534518/ by Chuck “Caveman” Coker
  34. 34. モデルを構成する言葉を あらゆる場所で使う 会話でも、ドキュメントでも ユビキタス言語 Ubiquit&s Langua% Interview: The Colour Of Sound 17.10.08 http://www.flickr.com/photos/divid3d/2961571702/ by divid3d
  35. 35. あらゆる場所... もちろん、コードの中でも
  36. 36. モデル駆動開発 Model D#ven Development ドメインモデルを反映してソフトウェアを作る escher wannabe b/w http://www.flickr.com/photos/midlander/54915243/ by you are your atman
  37. 37. A Diamond For The Love Flower DUC #57 http://www.flickr.com/photos/kacey/515389402/ by KaCey97007 専門家 開発者 ドメインモデル ソフトウェア
  38. 38. どうやって? アーキテクチャ プロセス 3D Character and Question Mark http://www.flickr.com/photos/crystaljingsr/3914729343/ by 姒儿喵喵
  39. 39. アーキテクチャとは 構造を規定しつつ、可変性を支える戦略 City Planning III http://www.flickr.com/photos/42311564@N00/2410209145/ by Sebastian Niedlich (Grabthar)
  40. 40. レイヤ型 アーキテクチャ ドメインレイヤとは、 ドメインモデルが息づく場所 DSC_0082 http://www.flickr.com/photos/artgoeshere/2338940084/ by artgoeshere Layered Architecture
  41. 41. ドメインモデルの構成要素 エンティティ サービス バリューオブジェクト リポジトリ Bright Blocks http://www.flickr.com/photos/venosdale/4323751812/ by KTVee Entity Value Object Service Repository ファクトリ Factory Aggregate 集約 モジュールModule
  42. 42. イテレーティブなプロセス コミュニケーションを通じて モデルは深みを増していく "S'il te plaît, fais moi un dessin..." http://www.flickr.com/photos/locktofob/4212943811/ by Locktofob deep model
  43. 43. 言葉に導かれて... 新しい言葉を見つけることで 見えていなかったものが見えてくる deeper insight 366 • 18 • New frames http://www.flickr.com/photos/sveinhal/2201546999/ by Pragmagraphr
  44. 44. Break(r&gh 変化は突然訪れる Junk yard sexy (spark) http://www.flickr.com/photos/28481088@N00/2746176084/ by tanakawho 積み重ねた日々が ある日ブレイクスルーを起こす
  45. 45. この変化を支えるもの レイヤ型アーキテクチャ 柔軟に設計されたモデル Cat stairs http://www.flickr.com/photos/fofurasfelinas/54837986/ by fofurasfelinas Layered Architecture Su)le Design
  46. 46. もう一歩先へ...
  47. 47. 戦略的設計 文脈 抽出 大局的構造 システムが巨大化しても モデルは実装と結びついていなければならない ISS http://www.flickr.com/photos/wildopallei/2087950431/ by Opal Lei Context D*tillation lar%-scale ,ructureStrategic Design
  48. 48. 言葉の意味を支えるもの それが、文脈 20100411robodiversity http://www.flickr.com/photos/worldworldworld/4509419598/ by cesarharada.com B&nded Context Context Map
  49. 49. 本質を見極めろ! Drip http://www.flickr.com/photos/amagill/3252897830/ by AMagill Core Domain 本質を抽出し 他の雑多なものから 切り離す
  50. 50. 大局観を失うな! 大局的構造によって システムを俯瞰的に理解する Fall Creek Cornell Planations Aerial Photo http://www.flickr.com/photos/24994567@N06/2604256130/ by lvanvlee8 Sy,em Metaphor Evolving Order
  51. 51. M*sion Complete ! Photo by @digitalsoul0124 All rights reserved.
  52. 52. つまづくことがあっても、 立ち上がって 前へ進んでいけ! - Eric Evans Try, Try again. A Garden of Climbs http://www.flickr.com/photos/cptspock/2557842978/ by Jasen Miller
  53. 53. 最後に One more (ing...
  54. 54. ウォーターフォールだからできない? トランザクションスクリプトで 書くことになっている? お前が欲しいのは口実だろう? Waterfall Transaction Sc#pt
  55. 55. クラス名にこだわっているか? メソッド名にこだわっているか? 変数名にこだわっているか? 世の中に不満があるなら 自分を変えろ! 関心事は適切に分離されているか? コードの臭いにふたをしていないか? Name Concern Refacto#ng 要件を理解しているか?Model
  56. 56. そして何より
  57. 57. コードに 誇りを持っているか? P#de Fai(
  58. 58. 未来を創れ お前にだって コードが書けるだろ IDEだってある コミュニティにも アクセスできる
  59. 59. ソフトウェアは一編の小説である 緻密に構築され 美しく語られなければならない ご質問は ありますか?
  60. 60. ありがとうございました! Photo by @digitalsoul0124 All rights reserved.

×