SlideShare a Scribd company logo
1 of 38
Download to read offline
出張!DDD難民救済キャンプ
∼ドメイン駆動設計をあきらめない∼



19-B-5                モデレータ 和田 卓人
                      パネリスト 角田 直行
                              佐藤 匡剛
                              渡邉 健太郎
                              和智 右桂
     Developers Summit 2010
難民



壁
メンバー紹介
角田 直行
Naoyuki Kakuda
長いソフトウェア人生

たまに少し変わったこと

してもいいじゃない




                          ン
                        コ
                       ネ
                   I Tゼ




            Kentaro Watanabe @kentaro714
            Kentaro Watanabe @kentaro714
ソフトウェアは一編の小説である。
緻密に構築され、美しく語られねばならない。
    Yukei Wachi a.k.a id:digitalsoul
                    http://www.flickr.com/photos/justinmclean/230547538/
佐藤 匡剛
SATO, Tadayoshi
なぜ今DDDか
Posts to
8000            Yahoo! Groups
6000


4000


2000



   2002   2003   2004   2005   2006   2007   2008   2009
Anemic Domain Model

ドメインモデル貧血症
The   Heart
            of Software




        http://www.flickr.com/photos/8459160@N08/2183538064/
its ability to solve
        domain-related problems
                                       for its user.




ユーザのドメインに関連した
                        問題を解決する能力
                http://www.flickr.com/photos/60966857@N00/3003380784/
The Book
ドメイン駆動設計




 http://www.domainlanguage.com
ドメイン=

「知識、組織、活動の領域」
 A sphere of knowledge, influence, or activity.


    アプリケ
                                  ーション
                                                                の核


 http://www.flickr.com/photos/   http://www.flickr.com/photos/   http://www.flickr.com/photos/
  linnybinnypix/1189018851/         fhashemi/145402545/           scobleizer/3009516045/
「複雑なドメインは、モデルに
      基づいて設計すべきだ」
         Complex domain designs should be based
                     on a model.




http://www.flickr.com/photos/cushinglibrary/3907331582/
Knowledge Crunching

        知識の噛み砕き



            「有能なドメインモデラーは、知識の
                   噛み砕きをしている」
               Effective domain modelers are knowledge crunchers.
http://www.flickr.com/photos/58534808@N00/323527111/
ユビキタス言語
 Ubiquitous Language




     http://www.flickr.com/photos/
 restlessglobetrotter/458979312/
モデル駆動設計
Model-Driven Design




                      http://www.flickr.com/photos/dalbera/3306523739/
ビルディングブロック
                               The Building Blocks
http://www.flickr.com/photos/
mckaysavage/4040024973/




                                                Eric Evans, Domain-Driven Design, 2003
深いモデル
                     Deep Model




http://www.flickr.com/photos/12453467@N00/2577562460/
ブレイクスルー
Breakthrough




               http://www.flickr.com/photos/wolfgangstaudt/2217173388/
自分にとってのDDD
ソフトウェア開発が目指すべき
                                                最終形




http://www.flickr.com/photos/toehk/4080079150/
No Silver Bullet
   銀の弾丸などない




   http://www.flickr.com/photos/38536487@N06/3552026768/
複数の設計アプローチを
    持っておくことは




     技術者としての嗜み
      http://www.flickr.com/photos/bexross/2417965928/
同じ言葉で、同じものを見る。




“One Team, One Language”
               http://www.flickr.com/photos/jupp0r/4116877534
“Deeper Insight”




       新しい言葉を見つけることで、
    見えていなかったものが見えてくる。
                   http://www.flickr.com/photos/vanderlin/2383741075/
明日から始めるDDD
入門者向け




 http://www.flickr.com/photos/restlessglobetrotter/2407710879/
http://www.ogis-ri.co.jp/otc/hiroba/technical/DDDEssence/
日本語書籍
実装者向け




    http://www.flickr.com/photos/58519896@N00/1820689479/
設計者向け
マネージャ向け
  http://www.flickr.com/photos/matthewboyle/4356134818/
終わりに
コミュニティ

JavaEE勉強会
 http://groups.google.co.jp/group/javaee-study




DDD-jp
 http://groups.google.co.jp/group/ddd-jp
DDDをあきらめない

More Related Content

Similar to 【19-B-5】出張!DDD難民救済キャンプ

SORACOM Conference "Discovery" 2018 | B3. IoT活用のはじめ方 〜IoTシステムを迅速に構築する手法
SORACOM Conference "Discovery" 2018 | B3. IoT活用のはじめ方 〜IoTシステムを迅速に構築する手法SORACOM Conference "Discovery" 2018 | B3. IoT活用のはじめ方 〜IoTシステムを迅速に構築する手法
SORACOM Conference "Discovery" 2018 | B3. IoT活用のはじめ方 〜IoTシステムを迅速に構築する手法SORACOM,INC
 
インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門貴寛 益子
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門Takuya Kitamura
 
20130225 umtp agile_seminar
20130225 umtp agile_seminar20130225 umtp agile_seminar
20130225 umtp agile_seminarYosuke Matsuura
 
DeNA Creative Seminar #2 に行ってきた
DeNA Creative Seminar #2 に行ってきたDeNA Creative Seminar #2 に行ってきた
DeNA Creative Seminar #2 に行ってきたsilvers ofsilvers
 
LightSwitch ~結局何ができるの~ rev 2
LightSwitch ~結局何ができるの~ rev 2LightSwitch ~結局何ができるの~ rev 2
LightSwitch ~結局何ができるの~ rev 2Yoshitaka Seo
 
雲にのって札幌まで来た話
雲にのって札幌まで来た話雲にのって札幌まで来た話
雲にのって札幌まで来た話Takehito Tanabe
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルHiroaki Wakamatsu
 
Windows Azureで Webサーバーを再発明してみる
Windows AzureでWebサーバーを再発明してみるWindows AzureでWebサーバーを再発明してみる
Windows Azureで Webサーバーを再発明してみるSunao Tomita
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~normalian
 
熊本クラウド語ろう会 - Azure開発入門
熊本クラウド語ろう会 -  Azure開発入門熊本クラウド語ろう会 -  Azure開発入門
熊本クラウド語ろう会 - Azure開発入門Daiyu Hatakeyama
 
A-Frameで作ったギャラリーのお話
A-Frameで作ったギャラリーのお話A-Frameで作ったギャラリーのお話
A-Frameで作ったギャラリーのお話KatsuyaENDOH
 
SGT技術トークス 継続的デリバリー
SGT技術トークス 継続的デリバリーSGT技術トークス 継続的デリバリー
SGT技術トークス 継続的デリバリーYukei Wachi
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
 
DXRubyとスプライトエディタ
DXRubyとスプライトエディタDXRubyとスプライトエディタ
DXRubyとスプライトエディタmieki256 blawat
 
Microsoft Edge F12 開発者ツール
Microsoft Edge F12 開発者ツールMicrosoft Edge F12 開発者ツール
Microsoft Edge F12 開発者ツールYoshihisa Ozaki
 
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」Yusuke Suzuki
 
クラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukuiクラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukuiYusuke Suzuki
 

Similar to 【19-B-5】出張!DDD難民救済キャンプ (20)

SORACOM Conference "Discovery" 2018 | B3. IoT活用のはじめ方 〜IoTシステムを迅速に構築する手法
SORACOM Conference "Discovery" 2018 | B3. IoT活用のはじめ方 〜IoTシステムを迅速に構築する手法SORACOM Conference "Discovery" 2018 | B3. IoT活用のはじめ方 〜IoTシステムを迅速に構築する手法
SORACOM Conference "Discovery" 2018 | B3. IoT活用のはじめ方 〜IoTシステムを迅速に構築する手法
 
インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門インフォグラフィックス時代のD3.js入門
インフォグラフィックス時代のD3.js入門
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
20130225 umtp agile_seminar
20130225 umtp agile_seminar20130225 umtp agile_seminar
20130225 umtp agile_seminar
 
DeNA Creative Seminar #2 に行ってきた
DeNA Creative Seminar #2 に行ってきたDeNA Creative Seminar #2 に行ってきた
DeNA Creative Seminar #2 に行ってきた
 
LightSwitch ~結局何ができるの~ rev 2
LightSwitch ~結局何ができるの~ rev 2LightSwitch ~結局何ができるの~ rev 2
LightSwitch ~結局何ができるの~ rev 2
 
雲にのって札幌まで来た話
雲にのって札幌まで来た話雲にのって札幌まで来た話
雲にのって札幌まで来た話
 
スマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブル
 
Windows Azureで Webサーバーを再発明してみる
Windows AzureでWebサーバーを再発明してみるWindows AzureでWebサーバーを再発明してみる
Windows Azureで Webサーバーを再発明してみる
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
 
熊本クラウド語ろう会 - Azure開発入門
熊本クラウド語ろう会 -  Azure開発入門熊本クラウド語ろう会 -  Azure開発入門
熊本クラウド語ろう会 - Azure開発入門
 
A-Frameで作ったギャラリーのお話
A-Frameで作ったギャラリーのお話A-Frameで作ったギャラリーのお話
A-Frameで作ったギャラリーのお話
 
SGT技術トークス 継続的デリバリー
SGT技術トークス 継続的デリバリーSGT技術トークス 継続的デリバリー
SGT技術トークス 継続的デリバリー
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
DXRubyとスプライトエディタ
DXRubyとスプライトエディタDXRubyとスプライトエディタ
DXRubyとスプライトエディタ
 
Microsoft Edge F12 開発者ツール
Microsoft Edge F12 開発者ツールMicrosoft Edge F12 開発者ツール
Microsoft Edge F12 開発者ツール
 
React + Flux
React + FluxReact + Flux
React + Flux
 
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」
 
クラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukuiクラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukui
 

【19-B-5】出張!DDD難民救済キャンプ

Editor's Notes

  1. \n
  2. ・自己紹介\n・なぜこの企画を考えたのか\n ・TDDが論じていないもの=外から見たふるまい/内面の美しさ\n・DDD難民とは\n・読書会について\n
  3. \n
  4. \n
  5. ITゼネコンと呼ばれたりもする大手のSIer、ソフトウェアアーキテクチャ構築支援\n大小多くのPJがあってなかには残念なものもある 設計をどううまくやるのかに興味\nこうした現場で設計を向上させるためにDDDはどう役立つかを現実的に見ていきたい\n
  6. ・思想系プログラマ\n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. ・DDDを読み切ったメンバ\n
  24. \n
  25. \n
  26. ・DDDにとってのスイートスポット\n
  27. ・メッセージは2つ\n ・共有できる言葉を見つけること\n ・その言葉をコードにまで落とし込むこと\n
  28. 〜 27分\n・Deep Modelに導いてくれるのは言葉\n
  29. \n
  30. ・なんか難しいそう\n・明日からできることってあるんですか?\n・そもそも難しい\n
  31. \n
  32. ・日本語でも読める。\n・DDDの翻訳かと思った\n・「ドメイン駆動」ではコードが書いてある\n
  33. 名前をかえただけで、結合テーブルが〜だと残念\nRepositoryはドメインモデル、つまり業務的な概念をあらわすオブジェクトを扱うのが重要\n
  34. 佐藤:「実装から設計へ/設計から実装へ」\n* 実装を考える \n * 簡単なコードに落としてみる \n* 実装者からのフィードバックを設計に反映する \n* 用語集を作る \n* 設計書/コードにユビキタス言語を反映する \n * レビューもやろう \n* コードは、業務をかなりの部分まで表すことができるような表現力をつけてきているので、それをうまく使うことを考えて \n\n* 業務を的確に表す言葉を探す \n\n
  35. ※〜47分\n・渡邉:「マネージャだからできること」\n* メンバーに教える \n * DDD勉強会開くとか \n * 業務知識の勉強会開くとか \n* ユーザー企業を巻き込む \n * ドメインエキスパートを捜す、たとえ代理でも \n* 実装者向け、設計者向けのアプローチがうまく動くようにマネジメントする \n * 意識づけ、勉強会につながる、とか \n * チームビルディングとか \n * キャリアパスを考えてあげる \n\n\n・渡邉:「マネージャにとってうれしいもの」\n* いるかどうか会場に聞いてみる \nチーム編成によって、ソフトウェア構造や設計アプローチの選択など、高次の設計判断をしてきたDDDではこういうものも設計のひとつで、戦略的...\n* 現状をContextMapとして可視化する \n* 中核的なドメインがどこか考えてみる \n * 注力する場所を選ぶ \n * 優秀なエンジニアを投入する \n * 優秀なエンジニアをフレームワークに投入するより(もう成熟してるから)業務コードを奇麗に \n\n\n\n
  36. ・時間も差し迫ってきました\n →角田さんにフリ\n
  37. \n
  38. ・DDDをあきらめない!\n