Your SlideShare is downloading. ×
0
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
ドメイン駆動設計入門
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

ドメイン駆動設計入門

6,855

Published on

Beautiful Development - DevLOVE 2010.10.27

Beautiful Development - DevLOVE 2010.10.27

Published in: Technology, Business
1 Comment
22 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
6,855
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
119
Comments
1
Likes
22
Embeds 0
No embeds

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

×