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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

ドメイン駆動設計入門

  • 6,725 views
Published

Beautiful Development - DevLOVE 2010.10.27

Beautiful Development - DevLOVE 2010.10.27

Published in Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • スタッフのみなさま、聞いて下さったみなさま、ありがとうございました。
    発表原稿は以下のアドレスで公開しています。
    http://d.hatena.ne.jp/digitalsoul/20101027/1288180208

    注意:
    スライドのライセンスは'表示—非営利—継承'としていますが、スライド内の写真によっては改変不可のものもあります。2次利用の際にはご注意下さい。
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
6,725
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
118
Comments
1
Likes
20

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.