SlideShare a Scribd company logo
Page	1/120
2016/12/18
Java女子郚	むベント
ゆるふわ														
DDD入門
Page	2/120
自己玹介
名前
 robo	(	兌高理恵	)
お仕事
 Java	技術者
 芁件定矩に蚭蚈から実装たで
奜きなもの
 モバむル端末
Page	3/120
はじめに
ゆるふわ	DDD入門!	におこしいただいお
ありがずうございたす。
私芋ですが 
ドメむン駆動蚭蚈は、	オブゞェクト指向プログラミングを理解し、
開発経隓が豊富な゚ンゞニアが、	曞籍゚リック・゚バンスのドメむン駆動蚭蚈ず
実践ドメむン駆動蚭蚈を読み解き、	珟堎で実践しないず身に付かないようです。	
今回は、私の力䞍足から、
ゆるふわなドメむン駆動蚭蚈の入門者よりの話になっおいたす。
Page	4/120
	
DDDに興味を持たれたり、深堀したい方は、
「ぐぐれば」既にお歎々の方々が解説しおくださっおいたすので、
そちらの資料を確認しおくだいね。
䜵せお、	゚リック・゚バンスのドメむン駆動蚭蚈や	実践ドメむン駆動蚭蚈や
オブゞェクト指向プログラミング関連の曞籍を読み進められるず良いず思いたす。	
ドメむン駆動蚭蚈を本栌的にシステム蚭蚈に取り入れたい
 ず思っおいたみなさた、ごめんなさい。
Page	5/120
参考図曞
Page	6/120
゚リック・゚バンスのドメむン駆動蚭蚈
゚リック・゚バンスのドメむン駆動蚭蚈
゜フトりェアの栞心にある耇雑さに立ち向かう
゚リック・゚バンスさんの芖点でドメむン駆動蚭蚈を解説したバむブル本です。
著者はベテラン゚ンゞニアであり、その知識ず経隓を前提に話が進むので、
読み進むためには前提知識を孊ぶ努力が必芁です。
Page	7/120
「日本語版ぞの序文」より
日本語版ぞの序文(゚リック・゚ノァンス	Eric	Evans)
根本的には、DDDを駆動しおいる原則は次の぀だけです。
コアドメむンに集䞭するこず。
ドメむンの実践者ず゜フトりェアの実践者による創造的な共同䜜業を通
じお、モデルを探求するこず。
明瀺的な境界付けられたコンテキストの内郚で、ナビキタス蚀語を語る
こず。
Page	8/120
「日本語版ぞの序文」より
この原則はきわめお完結です。
しかしもちろん、これで十分ではありたせん。
たず、この原則はいく぀かの甚語の定矩に䟝存しおいたす。
そしお、この定矩は本曞の最も重芁な内容の䞀郚なのです。
たた、これらの原則を名確に理解しおたずしおも、成し遂げるのは容易では
ありたせん。
偉倧な゜フトりェアを䜜り䞊げるためには、知性ず忍耐が必芁です。
同様に勇気が必芁であり、リスクもある皋床は受け入れなければならない
のです。
Page	9/120
「序文	(Martin	Fowler)」より
序文	(マヌチン・ファりラヌ	Martin	Fowler)
ドメむンモデルずいうものが、最初にモデル化され、その埌で実装されるよ
うなものではない、ずいうこずだ。
「たず蚭蚈し、その埌に構築する」ずいう段階を区切った考え方に察しおは、
倚くの人々ず同様に私も拒絶するようになっおきおいる。
だが、Ericの経隓から導き出される教蚓は、真に匷力なドメむンモデルは時
間ず共に進化するずいうこずであり、偉倧なベテランモデラであっおも、最高
のアむデアを埗られるのはシステムが初期リリヌスされた埌のこずだ、ずい
うこずである。
Page	10/120
実践ドメむン駆動蚭蚈
実践ドメむン駆動蚭蚈
サンプル	VaughnVernon/IDDD_Samples
ドメむン駆動蚭蚈を身に぀けようずしおいる人たちぞの具䜓的な指針本です。
゚リック・゚バンスのドメむン駆動蚭蚈を読んでいたほうがよいず思いたす、	ドメむ
ンむベント、巚倧な泥団子の抂念、レむダ化アヌキテクチュアからヘキサゎナルア
ヌキテクチャぞの発展	 などの新たな知芋も远加されおいたす。
Page	11/120
プリンシプル	オブ	プログラミング
プリンシプル	オブ	プログラミング
良いコヌドを曞くための「/原則」の玹介ず解説をたずめた本です。
「単䞀責務の原則」や「凝集床」など゚リック・゚バンスのドメむン駆動蚭蚈や実践
ドメむン駆動蚭蚈でも利甚しおいる抂念や甚語も含んでいたす。	実装経隓をも぀
人を察象ずしおいるため、具䜓的なコヌド説明がなく抜象的な解説になっおいる
こずに留意ください。
Page	12/120
参考サむト/スラむド
DDD難民に捧げる	Domain-Driven	Designの゚ッセンス
https://www.ogis-ri.co.jp/otc/hiroba/technical/DDDEssence/index.html
ざっくり	DDD	入門
http://www.slideshare.net/digitalsoul0124/ddd-17678116
リッチなドメむンモデル	名前探し	の旅
http://www.slideshare.net/masuda220/ddd-forname
ドメむンオブゞェクトの芋぀け方・䜜り方・育お方
http://www.slideshare.net/masuda220/ss-62386442
「実践ドメむン駆動蚭蚈」瀟内読曞䌚たずめ
〜IDDD本難民に捧げる1章から7章〜
http://www.slideshare.net/AtsuoAoki/iddd17
Page	13/120
参考	PDF
Domain	Driven	Designドメむン駆動蚭蚈	Quickly	日本語版
https://www.infoq.com/jp/minibooks/domain-driven-design-quickly	
ダりンロヌドするには、infoQ	ぞのナヌザ登録(メヌルアドレスずPWの登録)が必芁です。
Page	14/120
DDD入門!
Page	15/120
DDD難民に捧げる	Domain-Driven	Designの゚ッセンス
第1回 ドメむン駆動蚭蚈ずは
Page	16/120
ドメむンモデルずは
ドメむンモデルずは
ある業務に特化した、業務的に正確な意味合の取扱デヌタや振る舞いを䞀般化
しお保持するもの。	図や文曞および、Javaオブゞェクト実装で衚珟される、DDDを
実践する䞊で欠かせないもの。
DDDにおけるドメむンモデルは、䟝存関係が絡んだ耇雑なモデルをシンプルにし
お扱いやすくするために、	OOPの単䞀責任の原則に埓い、各業務抂念をより䞭
栞的な独立した抂念に现かく分離モデリングしおいきたす。
ですので、たいおいコアドメむンず耇数のサブドメむンから成りたす。
ドメむンモデルは、抜象抂念です。
このため単玔に利甚するず、コアずなる䞀郚分を指すか、事業ドメむン党䜓をカバ
ヌするのか刀然ずしないこずに泚意しおください。
Page	17/120
手続型蚭蚈の限界	モデリングしないず 
モデリングを䜿わない(あるいは䞍十分でも)、
機胜を満たすコヌドによる手続型蚭蚈のアプロヌチでも、
ドメむンの機胜は実装できたす。	
ですが耇雑さが爆発しおいくので、	やがおだれも実態を理
解できなくなりメンテナンスも䞍胜になるでしょう。
Page	18/120
オブゞェクト指向で、モデリングする。
オブゞェクト指向のアプロヌチを䜿えば、
察象抂念の振るたいずデヌタ構造(ず状態)が倖に挏れ出さないよう隠蔜化しおく
れたす。	隠蔜化ずカブセル化で責務を分離すれば、互いの圱響範囲が小さくな
り、党䜓も芋通し易くなりたす。	新任者であっおもメンテナンスし易くなるのです。
䞀方、機胜を満たすコヌドのみの手続き型の実装は、振るたいず状態がどこから
でも操䜜できるので、	党おの操䜜の敎合性を管理しない限り、察象抂念の振るた
いず状態の䞀貫性が保蚌できたせん。
察象抂念を衚す重芁な業務ロゞックでさえ、どこにでも実装できるために、どこに
あるのか、どこたで探せばよいのかすら刀りづらくなっおしたいたす。
Page	19/120
ドメむン駆動蚭蚈の芖点
DDDの䞭心ずなる原則は、議論や傟聎、理解、発芋、そしお事業䟡倀だそうです。
事業䟡倀を生み出すためには、蚭蚈(開発)察象を深く知らなければなりたせん。
䟋えば銀行システムなら、事業䟡倀は、銀行業務領域(ドメむン)が元ですから、
ドメむンの反映ずしおの゜フトり゚アを䜜成するこずが最優先ずなりたす。
そのためには、ドメむンの栞ずなる抂念や芁玠を取り入れお、
関係を正確に再珟できるよう、ドメむンをモデル化しなければなりたせん。
ドメむンをモデル化できるようにするには、専門家や蚭蚈者/開発者が、
お互いにドメむン知識を共有し磚き䞊げられなければなりたせん。
銀行システムには、ドメむンだけでなくDBなどのミドルりェアも必芁です。
ドメむンを䞭心にするには、それらが圱響しないよう蚭蚈しなければなりたせん。
 忍耐匷くこれらを繰り返したす、技術至䞊䞻矩の考え方ではありたせん。
Page	20/120
	DDD入門芖点の	ドメむン駆動蚭蚈	抂略
前ペヌゞをドメむン駆動蚭蚈のパタヌン甚語で衚珟したした。
事業䟡倀を生み出すため、業務ドメむン(ドメむンモデル)を反映した゜フトりェア
の蚭蚈/開発を最優先する。
業務ドメむン知識の共有ず育成のために、業務の専門家ず蚭蚈者/開発者でナ
ビキタス蚀語を育おあう。
ドメむンをモデリングしお各々の䞭栞の責務により(コア/支揎サブ/汎甚サブ)ドメ
むンに分離しおいくこずで、境界づけられたコンテキストを芋぀ける。
境界付けられたコンテキストどうしは䞖界が異なるので、ナビキタス蚀語も異な
っおいる。
分離した(コア/支揎サブ/汎甚サブ)ドメむンの間でオブゞェクトを操䜜するには
ナビキタス蚀語の倉換が必芁なので、倉換察応のコンテキストマップを䜜る。
Page	21/120
	DDD入門芖点の	ドメむン駆動蚭蚈	抂略
アプリケヌションは業務ロゞック(ドメむン)だけではなりたたない。	ナヌザむンタ
ヌフェヌス、アプリケヌション、ドメむン、むンフラストラクチャのレむダから成り立
っおいる。
ドメむンず別レむダずの橋枡しでの責務の流出/流入を防ぐため(ポヌトずアダプ
タヌ/ヘキサゎナル)アヌキテクチャやドメむンむベントを䜿う。
ドメむン内の状態や倀を持぀抂念をモデル化するため、同䞀性の有無から゚ン
ティティず倀オブゞェクトを䜜り、それらのラむフサむクルず構造䜓関係をあらわ
す集玄を䜜る。
ドメむン内の集玄の氞続化ず問い合わせ専甚のリポゞトリを蚭ける。
集玄や耇雑なオブゞェクトの生成を委譲するファクトリを導入する。
ドメむン内の䞭栞の責務から倖れるロゞックの配眮堎所ずしおサヌビスを蚭け
る。
Page	22/120
	DDD入門芖点の	ドメむン駆動蚭蚈	抂略
事前に完璧な蚭蚈をするこずはできない。	ドメむン゚キスパヌトが気づかず、蚭
蚈者や開発者ずのナビキタス蚀語育成の䞭で発芋される知芋もある。	ドメむン
のモデリングやリファクタリングも日々行なわなくおはならない。	より良い゜フト
りェアは、忍耐匷くこれらを繰り返しお䜜る。
ドメむンモデルは、゚ンティティや倀オブゞェクトやサヌビス で圢䜜られる
抂念なので、XXXドメむンモデルずいうようなクラスはない。
Page	23/120
DDDパタヌン甚語+詳现+α
Page	24/120
単䞀責務の原則
SRPthe	Single	Responsibility	Principle
クラスやモゞュヌルは、ただ぀の原因(芁因)により倉曎されなければならないこ
ずを衚したす。
耇数の異る圹割の状態や振る舞いを持぀ような神クラスは、責任圹割が分割
されおいないこずを衚し、理解が困難か぀バグを招くこずは経隓枈みでしょう。
責務(倉曎の原因ずなるもの)を探すこずは、コヌドの抜象化に圹立ちたす。
オブゞェクト指向蚭蚈の抂念ずしお、最も重芁なものの぀です。
Page	25/120
凝集性
(Cohesion)
クラスやモゞュヌルの機胜の玔粋性を衚したす。
クラス内のメ゜ッドずむンスタンス倉数においおは盞互䟝存性のこず。
機胜が党おのメ゜ッドず党おのむンスタンス倉数を䜿う堎合に最倧ずなりたす。
むンスタンス倉数やメ゜ッドの総数自䜓は少ないこずを前提にするず、	䞀般的に、
凝集性が高ければメ゜ッドずむンスタンス倉数が無駄なく盞互に䟝存し合っおいる
こずなので、	党䜓ずしお぀のロゞックになるように蚭蚈されおいる特定の目的に
特化しおいるずいえたす。
Page	26/120
䟝存関係逆転の原則
䞊䜍のモゞュヌルは、䞋䜍のモゞュヌルに䟝存しおはならない。
どちらのモゞュヌルも、抜象に䟝存すべきである。
抜象は、実装の詳现に䟝存すべきではない。
実装の詳现が、抜象に䟝存すべきである。
実践ドメむン駆動蚭蚈	第章	アヌキテクチュア	より
 ずいう原則。
䞊䜍レベルのコンポヌネントが、䞋䜍レベルぞの芁求のむンタヌフェヌス(抜象)を
提䟛し、	䞋䜍レベルは、それを実装するこずで、䞊䜍レベルは、䞋䜍レベルの実装
を知らなくおも	むンタヌフェヌス(抜象)を知っおいれば䜿えるようになる。	こうする
こずで実装ず抜象の䟝存関係を逆転させおいる。
Page	27/120
デメテルの法則
オブゞェクトを䜿甚する堎合、
盎接知っおいるオブゞェクトしか䜿うべきではないずいう法則
オブゞェクトのメ゜ッド内から実行できるメ゜ッドは、次のいずれかのみ。
そのオブゞェクト自身のメ゜ッド
自身にパラメヌタずしお枡されたオブゞェクトのメ゜ッド
メ゜ッド匕数のオブゞェクトから取埗した別オブゞェクトは䜿わないこず。
自身の内郚でむンスタンス化されたオブゞェクトのメ゜ッド
自身が保持しおおり、盎接アクセスできるオブゞェクトのメ゜ッド
Page	28/120
「呜じろ、たずねるな」
オブゞェクトを䜿う堎合は、
オブゞェクトにク゚リをかけお埗た情報からコマンドをなげるのでなく、
公開されたむンタヌフェヌスで定矩されたコマンドのみ䜿うようにするこず。
やるこずが決たっおいるなら問い合わせによる䞍必芁な負荷を枛らすこず。
Page	29/120
ドメむン゚キスパヌト
事業䟡倀の元ずなるドメむンの「现郚」「ルヌル」「萜ずし
穎」「朜圚的な問題点」を知っおいる専門家のこず。
銀行システムを蚭蚈/開発するのなら、いちばん銀行業業務(ドメむン)を知っおい
る、	銀行の䞭で働く人々やその専門家が「ドメむン゚キスパヌト」です。
Page	30/120
ナビキタス蚀語
ナビキタス蚀語暡範的説明ずは、
適切なドメむンモデルを䜜りあげられるよう、	ドメむンの業務知識の共有ず各ドメ
むンモデルの䞭栞抂念を抜出できるようにするために䜜り䞊げる、	ドメむン゚キス
パヌトや゜フトりェア蚭蚈者/開発者を含めたチヌム党䜓で意思疎通を可胜にし
お、
抂念名や操䜜名だけでなく甚法も含めお育お䞊げる、䞭栞ずするドメむンの業務
知識甚の共有蚀語共有甚語を含むのこず。
ナビキタス蚀語は、特定ドメむンを扱うチヌム内で育お䞊げるため、業界党䜓や
他チヌムでは意味をなさない。
ナビキタス蚀語は、境界づけられたコンテキストごずに育お䞊げるので、境界づ
けられたコンテキストごずに異なる。
よっおナビキタス蚀語で定矩した甚語は、別の境界づけられたコンテキストで
は、同じ文蚀でも別の意味になる。
Page	31/120
ナビキタス蚀語のアンチパタヌン
組織党䜓で流通させるナビキタス蚀語を目指すな
組織党䜓の意思疎通ができたら良いず、	あらゆる名称が唯䞀の意味しかもたな
いようにしようずしおはならない。
党おの業務抂念に぀いおステヌクスホルダヌ党員が玍埗するような	共通の意味
付けをするこずは事実䞊䞍可胜だからである。
ナビキタス蚀語は、合意が取れる単䜍で育成し流通させるこず。
Page	32/120
ドメむンモデル
事業䟡倀の元ずなるドメむンの抂念を抜象化(モデル化)し
たもの。
ドメむンモデルずは、
Eric	Evansによれば、特定の図で衚されるものではなく、䌝えようずする抂念だそ
うです。
察象のドメむンをナビキタス蚀語に埓っお衚珟したものであり、	これがなければ、
䜕をモデルに取り蟌み、䜕を捚おるのかが曖昧になり、	゜フトりェアの党䜓的な展
望の蚭蚈ができたせん。	したがっお゜フトりェアの詳现郚であるコヌドの蚭蚈も始
められたせん。
ドメむンは、モデリングしおいくず䞭栞的な独立した抂念に现かく分離されおいく
ので、たいおいコアドメむンず耇数のサブドメむンに分かれたす。
Page	33/120
ドメむンモデル貧血症
ドメむンモデル貧血症ずは、
あるドメむン固有の責務(取扱デヌタや振る舞い)が、	他のドメむンに挏れだしおい
るため、ドメむンモデルが機胜䞍党になっおいるこず。
䞊蚘の問題によりドメむンがうたく働かない(䞍調である)こずを、貧血症になぞらえ
た衚珟です。
ドメむンモデルに、DBなどの倖郚郜合の実装が入り蟌んでしたっおいるこずも含た
れたす。
Page	34/120
ドメむンモデルずナビキタス蚀語
ドメむンモデルのコンポヌネントの属性(プロパティ)の名称や、
振る舞い(メ゜ッド)の名称ず匕数や返倀は、ナビキタス蚀語に埓っお定矩したす。
ドメむンモデルのコンポヌネントパタヌン、
゚ンティティ、	倀オブゞェクト、	サヌビス、	リポゞトリ、	ファクトリ、	ドメむンむベント 
など。
Page	35/120
コア/支揎サブ/汎甚サブドメむン
サブドメむンや境界づけられたコンテキストを含む、抜象的な業務ドメむン
コアドメむン境界づけられたコンテキスト
業務に䞍可欠で、ドメむンの䞭栞ずなるモデル
支揎サブドメむン(A)境界づけられたコンテキスト
業務に䞍可欠だが、コアドメむンずは蚀えないモデル
支揎サブドメむン(B)境界コン倖郚の境界コン)
業務に䞍可欠だが、コアドメむンずは蚀えないモデル
汎甚サブドメむン	境界づけられたコンテキスト
業務に䞍可欠でないが、プロゞェクト党䜓で䞍可欠なモデル
Page	36/120
コアドメむン
業務に䞍可欠で、ドメむンの䞭栞ずなるモデル
コアドメむン暡範的説明ずは、
コアドメむンずは、重芁な事業䟡倀があり、芋返りが䞀番倧きな最優先投資領域
(ドメむン)のこず。	プロゞェクトの目的である事業の䞭栞ずなるモデルである。
Page	37/120
汎甚サブドメむン
業務に䞍可欠でないが、プロゞェクト党䜓で䞍可欠なモデ
ル
汎甚サブドメむン暡範的説明ずは、
プロゞェクト(゜リュヌション)党䜓ずしお必芁であるが、察象のドメむン内では特に
䜕もしおいない領域のこず。
Page	38/120
支揎サブドメむン
業務に䞍可欠だが、コアドメむンずは蚀えないモデル
支揎サブドメむンずは、
その内容が特別なもので、業務に䞍可欠な領域を衚しおいるが、ただコアドメむン
ずは蚀えないようなモデルのこず。
Page	39/120
境界づけられたコンテキスト
境界づけられたコンテキスト暡範的説明ずは、
ドメむンモデルを適甚する際の抂念的な境界(適甚範囲⇒コンテキスト)のこず。
ドメむン内のモデルがどこに属すのか(コアドメむン/支揎サブドメむン/汎甚サブドメ
むン)を衚す。
Page	40/120
	境界づけられたコンテキストずナビキタス蚀語
ナビキタス蚀語は、
ドメむンモデルを぀くり䞊げるために、	ドメむン゚キスパヌトや開発者の間で、ある
ドメむン(業務知識)䞭の各抂念をチヌム内で共有できるよう、
特定の考え方や刀明した知芋の切り口で蚀語化しおいく(育お䞊げる)ものです。
このためナビキタス蚀語䞭には、
いく぀かの「切り口ずしお働く(既存の/創造の抜象抂念」が発生したす。
ドメむンモデル内では、	この「切り口ずしお働く抜象抂念」を共有しおいるモデル
のグルヌプず	そうでないモデル達ずの間に(共有物がないので盎接取り扱えない
ずいう)境界が発生したす。
この「切り口ずしお働く抜象抂念」が「境界づけられたコンテキスト」です。
共有物がないので「境界づけられたコンテキスト」ごずに、ナビキタス蚀語も異る
こずになりたす。
Page	41/120
	境界づけられたコンテキストずコア/サブドメむン
「境界づけられたコンテキスト」「切り口ずしお働く抜象抂念」により、	ドメむンの
モデルが、コアドメむン、支揎サブドメむン、汎甚サブドメむンのいずれになるかが
決たりたす。
ドメむンの䞭栞ずなる「境界づけられたコンテキスト」を持っおいるモデルがコアド
メむンです。
ドメむンの䞭栞ずなる「境界づけられたコンテキスト」を持っおいなかったモデル
は、	サブドメむン(支揎サブドメむン/汎甚サブドメむン)になりたす。
サブドメむンは、ドメむンずは異るずなるがプロゞェクト党䜓で必芁になる	「境界づ
けられたコンテキスト」を持っおいるか吊かで、汎甚サブドメむンか支揎サブドメむ
ンになりたす。
Page	42/120
	境界づけられたコンテキストずコンテキストマップ
「境界づけられたコンテキスト」が異る「切り口ずしお働く抜象抂念」を共有しお
いないモデルずモデルの間のやりずりには、	お互いのナビキタス蚀語のすり合
わせのための倉換察応が必芁になりたす。
この異る「境界づけられたコンテキスト」間での	ナビキタス蚀語の倉換察応関係
(抂略やコヌド)に぀いおのドキュメントが「コンテキストマップ」です。
Page	43/120
コンテキストマップ
コンテキストマップ暡範的説明ずは、
プロゞェクトに関わる境界づけられたコンテキストず、
それらがどのように統合倉換察応されおいるのかを瀺すドキュメントのこず。
Page	44/120
コンテキストマップの重芁性
抜象化したドメむンのコンテキストマップ
コンテキストマップは、
プロゞェクト党䜓を構成する耇数の境界づけられたコンテキスト間の関係を
䞊流/䞋流で衚し、コンテキストの統合倉換察応を明確にしたす。
通垞、境界づけられたコンテキストごずに、担圓チヌムも分かれおいたす。
䞊流/䞋流の違いずコミュニケヌションが必芁なチヌムが刀明するので、
䜜業の担圓範囲などのチヌム間の合意圢成を円滑にしたす。
Page	45/120
コンテキストマップずチヌム間の合意圢成
コンテキストマップには、
境界づけられたコンテキストの関係を䞊流/䞋流で衚わしお、䜜業分担の合意圢
成察応を求めおいたした。
䞊流/䞋流になるのは、共同䜜業チヌムだけでなく、	䞊局郚やレガシヌシステムな
ど亀枉䞍胜である可胜性もあるので、	䞋蚘の察応戊略のパタヌンが挙げられお
いたす。
共有カヌネル、	顧客/䟛絊者の開発、	順応者、	腐敗防止局、	公開ホストサヌビ
ス、	公衚された蚀語、	別々の道、	巚倧な泥団子。
Page	46/120
共有カヌネル
共有カヌネル暡範的説明ずは、
コンテキスト間での共有に合わせお、チヌム間での圹割が合意できる堎合の戊
略。
コンテキストを共有するチヌム間で、コミュニケヌション(ナビキタス蚀語䜜成)を図
り、	盞互でモデルおよび関連物(コヌドやDBなど)を共有したす。
䞡チヌムは、共有モデル⇔自分たちのモデルぞのマッピング倉換を行いたす。
Page	47/120
顧客/䟛絊者の開発
顧客/䟛絊者の開発暡範的説明ずは、
コンテキスト間の䞊流/䞋流に合わせお、チヌム間での圹割が合意できる堎合の
戊略。
䞊流チヌムは、䞋流チヌムずのコミュニケヌション(ナビキタス蚀語䜜成)を図り、
䞋流チヌムのニヌズを考慮しお開発を行いたす。
䞋流チヌムは、䞊流モデル⇒䞋流モデルぞのマッピング倉換を行いたす。
Page	48/120
順応者
順応者暡範的説明ずは、
コンテキスト間の䞊流/䞋流に合わせお、チヌム間での圹割が合意できない堎合
の戊略。
䞋流チヌムは、䞊流チヌムに隷属するメリットを優先し、自分たちのドメむンモデル
䜜成を諊め、	䞊流チヌムのナビキタス蚀語に合わせたモデルを開発したす。
䞊流モデル⇒䞋流モデルぞのマッピング倉換は発生したせん。
Page	49/120
腐敗防止局
腐敗防止局暡範的説明ずは、
コンテキスト間の共有/䞊流/䞋流に合わせお、チヌム間での圹割が合意できない
堎合の戊略。	あるいはナビキタス蚀語が共有できないレガシヌシステムず接合す
る堎合の戊略
該圓するチヌムは、䞡者の間でのモデルの倉換を行う隔離レむダを䜜成しお、	自
分たちのモデルを開発したす。
該圓チヌムは、隔離レむダのモデル⇔自分たちのモデルぞのマッピング倉換を行
いたす。
Page	50/120
公開ホストサヌビス
公開ホストサヌビス暡範的説明ずは、
(サブシステムの利甚など)コンテキスト間を察倚で共有する堎合の戊略。
共有サヌビスを蚭けるこずで、車茪の再発明抑止やメンテナンス性を向䞊させる
戊略
集䞭先(サブシステム)にアクセスするプロトコルを定矩し、	各チヌム個別のマッピ
ング倉換を担圓する共有サヌビスを公開したす。
各チヌムは、共有サヌビスを介しお共通プロトコル⇔自分たちのモデルのマッピ
ング倉換を行いたす。
Page	51/120
公衚された蚀語
公衚された蚀語暡範的説明ずは、
䞀般化されおいるナビキタス蚀語を䜿うこずで、車茪の再発明を抑止する戊略
コンテキスト間の共有/䞊流/䞋流に即した、䞀般化されたナビキタス蚀語がある
堎合の戊略。
該圓するチヌムは、コミュニティなどで䞀般公開されおいるナビキタス蚀語	(およ
びモデルやラむブラリ)を間に挟んで、自分たちのモデルを開発したす。
該圓チヌムは、䞀般公開モデル⇔自分たちのモデルぞのマッピング倉換を行い
たす。
Page	52/120
別々の道
別々の道暡範的説明ずは、
コンテキスト間での共有が䞍可欠でなく、チヌム間での圹割が合意できない堎合
の戊略。
コンテキスト間での共有が䞍可欠でない堎合、	該圓チヌムは、䞡者が䞀切぀な
がりを持たないように蚭蚈し、	その狭いスコヌプ内でのモデルを開発したす。
マッピング倉換は発生したせん。
Page	53/120
巚倧な泥団子
巚倧な泥団子ずは、
コンテキストマップの䜜成が䞍胜なこずを衚す抂念です。
打぀手がありたせん。
コンテキスト間での共有/䞊流/䞋流どころか、	境界づけられたコンテキストぞのモ
デリング(分離/再蚭蚈)すら困難な、	様々なモデルが混圚し、境界も蟻耄があわな
くなっおいおいるもの党䜓を衚す抂念	あるいは、そのような問題のある珟行業務
や既存システムの䟋え。
Page	54/120
巚倧な泥団子ず境界づけられたコンテキスト
ドメむンモデルの新芏䜜成であっおも、
ドメむンの䞭栞抂念に基づいたモデリング(分離/再蚭蚈)をおろそかにしお、
境界づけられたコンテキストの調査より先に様々なモデルを䜜り続けないでくだ
さい。
そのような状況を攟眮しおいるず、	䞭栞抂念に分割しおいないこずが、圓然化、垞
識化しおしたい、	境界づけられたコンテキストに気づく機䌚も倱っおしたいたす。
そしお、巚倧な泥団子になっおしたいたす。
Page	55/120
コンテキストマップの統合倉換察応䟋
抜象化したドメむンのコンテキストマップの統合(倉換察応)䟋
コンテキストマップの統合では、耇数の戊略を組み合わせるこずもできたす。
ACL	腐敗防止局(Anti	Corruption	Layer)
OHS	公開ホストサヌビス	(Open	Host	Service)
PL	公衚された蚀語	(Published	Language)
Page	56/120
アヌキテクチャの圹割
開発する゜フトりェアは、
珟実のドメむンではなく、ドメむンを扱うアプリケヌションです。
このため、業務知識のロゞックドメむン局だけでなく、
プログラム党䜓の取り扱いを行うものアプリケヌション局や、
ナヌザヌずの察話を行うもの(ナヌザむンタヌフェヌス局)や、
DBなどのミドルりェアのAPI(むンフラストラクチャ局)のレむダが必芁になりたす。
これらの責務は異るため、
お互いにドメむン貧血症に陥らないようにするアヌキテクチャが必芁なのです。
Page	57/120
アンチパタヌン利口なUI
UIモデルは、ナヌザむンタヌフェヌス局に属したすが、
UIモデルからドメむンを操䜜するなどのビゞネスロゞックが入り蟌んでしたい、
ドメむンモデル貧血症を起こしおいるもの。
Page	58/120
レむダ化アヌキテクチャ
レむダ化アヌキテクチャ暡範的説明ずは、
ドメむンを扱うアプリケヌションを䞊䜍から、	ナヌザむンタヌフェヌス局、	アプリケ
ヌション局、	ドメむン局、	むンフラストラクチャ局に分けるアヌキテクチャ。
ドメむンが䞭心になっおおらず埓属する圢ずなるので、
近幎はポヌトずアダプタヌアヌキテクチャに眮き換えられおいたす。
Page	59/120
ポヌトずアダプタヌアヌキテクチャ
ポヌトずアダプタヌアヌキテクチャ	(ヘキサゎナルアヌキテクチャ)
ポヌトずアダプタヌアヌキテクチャは、
察称性を生み出すためのアヌキテクチャスタむル。
䞭心栞ず	内郚(䞭心栞を含む)ず	倖郚(倖呚)の぀の領域に分ける蚭蚈手法。
䞭心栞にドメむンモデル、内郚にアプリケヌション(ナヌスケヌス境界/ポヌト局)、
倖郚にアダプタヌ(個別クラむアントずの接点)を配し、	各アダプタヌは、察象ずす
る特定のクラむアントナヌザむンタヌフェヌスorむンフラストラクチャヌ)ずの入出
力を受けも぀。
Page	60/120
ポヌトずアダプタヌアヌキテクチャ
ポヌトずアダプタヌアヌキテクチャ	(ヘキサゎナルアヌキテクチャ)
アダプタヌ⇒個別クラむアント(倖向き)ぞはクラむアント偎の個別APIを䜿うが、
個別クラむアント⇒アダプタヌ(内向き)ぞはアプリケヌション偎の共通APIを䜿甚
する。
アダプタヌ⇒アプリケヌション偎ぞは共通むンタヌフェヌスを介すが、
アプリケヌション偎のむンスタンスはアダプタヌごずに異なる。
ヘキサゎナルアヌキテクチャを䜿うずきには、ナヌスケヌスを念頭に眮いおアプリ
ケヌションを蚭蚈するこず。
Page	61/120
ポヌトずアダプタヌアヌキテクチャの䟋
抜象化したポヌトずアダプタヌアヌキテクチャの䟋
個々の倖郚のクラむアントに合わせたアダプタヌが存圚したす。
倖郚から内郚ぞのアクセスには、アプリケヌションのAPIを䜿いたす。
クラむアントは、ナヌザむンタヌフェヌスやむンフラストラクチャにあたりたす。
Page	62/120
(参考)ポヌトずアダプタヌアヌキテクチャ資料
ドメむンモデル䞭心のアヌキテクチャ
https://devtab.jp/entry/internal/42
ヘキサゎナルアヌキテクチャ	(Hexagonal	architecture翻蚳)
http://blog.tai2.net/hexagonal_architexture.html
Page	63/120
コマンドク゚リ責務分離	(CQRS)
コマンドク゚リ責務分離	(CQRS)ずは、
あらゆるメ゜ッドは、䜕らかのアクションを実行する「コマンド」あるいは呌び
出し元に	デヌタを戻す「ク゚リ」のいずれか䞀方でなければならず、その䞡
方の機胜を兌ね備えおはいけない。
぀たり、䜕かの質問をするこずで、その質問ぞの応えが倉わっおしたっおは
いけない。
もうち少しきちんず蚀うず、メ゜ッドが倀を戻すのは、そのメ゜ッドが参照透
過性を持ち、	䜕も副䜜甚をおよがさない堎合だけでなければいけない。
実践ドメむン駆動蚭蚈	第4章アヌキテクチュアより
 ずいう原則です。
Page	64/120
コマンドク゚リ責務分離	(CQRS)
オブゞェクトのレベルから芋るず	CQRS	は、以䞋のような意味になりたす。
実践ドメむン駆動蚭蚈	第4章アヌキテクチュアより
あるメ゜ッドがオブゞェクトの状態を倉曎するのなら、そのメ゜ッドは「コマ
ンド」であり、倀を戻しおはいけない。
メ゜ッドの戻り倀は、Javaなら	void	になる。
あるメ゜ッドが䜕らかの倀を戻すのなら、そのメ゜ッドは「ク゚リ」であり、
盎接・関節を問わず、	オブゞェクトの状態を倉曎しおはいけない。
このメ゜ッドの戻り倀の型をきちんず指定しお宣蚀する必芁がある。
Page	65/120
コマンドク゚リ責務分離	(CQRS)
ここでのコマンドク゚リ責務分離	(CQRS)ずは、
サヌバの機胜を「コマンド」副䜜甚ありず「ク゚リ」副䜜甚なしに分ける考え
方です。
䟋えば集玄は、通垞だずコマンドずク゚リを䞡方持っおいたすし、	その集玄のリポ
ゞトリにもコマンドずク゚リのメ゜ッドが存圚したすが少々非効率でもありたす。
CQRSを䜿っお、ク゚リの凊理を最適化するために、	集玄のコマンドずク゚リをコ
マンドモデルずク゚リモデルに分離したす。
コマンド発行によるコマンド状態倉曎時に、コマンドモデルがコマンド・リポゞトリ
ぞの保管ず、	ク゚リモデルの曎新ならびにク゚リ・リポゞトリぞの保管を行わせた
す。
コマンド発行の凊理が増えおしたいたしたが。	ク゚リ発行では、ク゚リ・リポゞトリ
からク゚リモデルを取埗するだけでこずが枈むようになりたす。
Page	66/120
コマンドク゚リ責務分離CQRSの䟋
抜象化したコマンドク゚リ責務分離CQRSの䟋
QuPrc:ク゚リプロセッサ
CmPrcコマンドプロセッサアプリケヌションサヌビス
EvSBS党おのむベントのサブスクラむバ
CmMコマンドモデル
QumStaク゚リモデルの保存堎所
CmMSta:コマンドモデルの保存堎所
Page	67/120
コマンドク゚リ責務分離CQRSの䟋
ナヌザからの入力
クラむアント{ナヌザ入力からコマンド発行}
⇒コマンドプロセッサ{コマンド受信からコマンド曎新}
		⇒コマンドモデル{状態曎新のためコマンド集玄を生成}
				⇒コマンドモデル・リポゞトリ{コマンド集玄を保管}
		⇒コマンドモデル{状態曎新のドメむンむベント発行}
				⇒むベントサブスクラむバ{状態曎新のドメむンむベント受信からク゚リ曎新}
						⇒ク゚リモデル{最新状態反映のためク゚リ集玄生成}
								⇒ク゚リモデル・リポゞトリ{ク゚リ集玄を保管}
ク゚リモデルは、ここでは衚瀺しおいたせん。
Page	68/120
コマンドク゚リ責務分離CQRSの䟋
ナヌザからの出力芁求
クラむアント{ナヌザ出力芁求からク゚リ発行}
		⇒ク゚リプロセッサ{ク゚リ受信からク゚リ集玄を芁求}
				⇒ク゚リモデル・リポゞトリ{ク゚リ集玄を返华}
						⇒ク゚リプロセッサ{取埗したク゚リ集玄から出力デヌタ生成}
								⇒クラむアント{画面出力}
ク゚リモデルは、出力甚の非正芏化デヌタです。
Page	69/120
コマンドク゚リ責務分離CQRSの䟋
むベントのサブスクラむバによるク゚リモデルの曎新
コマンドモデルは、
ク゚リモデルが同期するようドメむンむベントを発行する必芁がありたす。
コマンドモデルは、状態倉曎時に状態曎新のドメむンむベントを発行したす。
ドメむンむベントを受信するサブスクラむバは、
受け取ったドメむンむベントに埓っおク゚リモデルを曎新したす。
このようにしお、
ク゚リモデルに、コマンドによる最新状態が反映されるようにしたす。
Page	70/120
むベント駆動アヌキテクチャ	EDA)
むベント駆動アヌキテクチャ	EDA)は、
むベントの䜜成や怜出、消費そしおむベントぞの反応を促すアヌキテクチャです。
実践ドメむン駆動蚭蚈では、
オブゞェクトずオブゞェクト操䜜元ずの結合を切り離す蚭蚈手法ずしお利甚しおい
たす。
クラむアントなどの
オブゞェクト操䜜元は、操䜜するむベントタむプのむベントを発行し、
ドメむンオブゞェクトは、サブスクラむバから賌読したむベントタむプを介した間接
的な操䜜を行うこずで、操䜜元ずの結合を切り離したす。
こうするこずでドメむンオブゞェクトの䟝存は、メッセヌゞングシステムず賌読するむ
ベントタむプのみずなりたす。
Page	71/120
むベント駆動アヌキテクチャの䟋
抜象化したむベント駆動アヌキテクチャの䟋
むベント駆動アヌキテクチャにより、
぀のシステムポヌトずアダプタヌアヌキテクチャの結合が切り離なされ、
メッセヌゞングシステム自身ず賌読するメッセヌゞのむベントタむプだけに䟝存す
るようになっおいたす。
Page	72/120
むベント゜ヌシング
むベント゜ヌシングは、
オブゞェクトぞの倉曎远跡ができるようにするパタヌンです。
実装ドメむン駆動蚭蚈の䟋でのむベント゜ヌシングでは、
ドメむンモデル内の集玄のむンスタンスぞの党おの操䜜コマンドに察し、
操䜜コマンドの実行ごずにドメむンむベントを発行しお、	むベントストアに発生順に
蚘録させおいたす。
これにより、任意時点での集玄の状態が再珟(远跡)できるようになりたす。
任意時点たでのむベント(操䜜コマンド)を発生順に適甚させお再珟したす
Page	73/120
	ドメむンモデルず同䞀性を持぀オブゞェクト
ドメむン駆動蚭蚈のドメむンモデルには、珟実のドメむンの反映が求められたす。
ですが瀟員情報など、同䞀性をもったオブゞェクトは、ドメむンロゞックで察応でき
たせん。	オブゞェクトには、ラむフサむクルがあり、生成から砎棄たでを繰り返した
すが、	ロゞックだけでは再生成時の最新状態ぞの反映ができないからです。
同䞀性をもったオブゞェクトには、以䞋の察応が必芁です。
状態が曎新された時には、砎棄されるたでに、状態をどこかに保管するこず。
再生成された時には、保管しおいた状態を読みだしお再珟するこず。
ひず぀の抂念を衚す集団に含たれる堎合は、集団を単䜍ずしお察応するこず。
ドメむン駆動蚭蚈では、これらに察応するため、
゚ンティティ、倀オブゞェクト、集玄、リポゞトリのパタヌンが甚意されおいたす。
Page	74/120
゚ンティティ
゚ンティティ暡範的説明ずは、
同䞀性をも぀オブゞェクトを扱う蚭蚈パタヌン
ドメむン内で特定の、倉化しおいくが同䞀性を持ち唯䞀な物を衚したす。
同䞀性の保蚌が必芁なオブゞェクトです。
䞀意な識別子ず属性や振る舞いを持っおいお、	状態が倉化しおも同䞀物であるこ
ずが識別でき、同じ状態のものがあっおも他ず区別できたす。
同䞀性をもっおいる(唯䞀物である)ため、同型の別むンスタンスず亀換するこず
は無意味です。
Page	75/120
゚ンティティの蚭蚈
゚ンティティの蚭蚈は、
子゚ンティティのコンテナではなく、倀のコンテナずしお組み立おるこず。
゚ンティティ蚭蚈の初期段階では、
゚ンティティを䞀意に特定するポむントずなる属性や振る舞いにだけ泚目する。
゚ンティティには、同期察応が必芁。
゚ンティティは、倉化できたす。
このため倉曎があれば党おの参照先に䌝えお、同期しおもらう必芁がありたす。
この問題には、むベント駆動アヌキテクチャずドメむンむベントの組み合わせで察
応できたす。
Page	76/120
゚ンティティ	補足
UUID生成噚
Java暙準APIには、かなりの確率で完党に䞀意な識別子を䜜成する	Universally
Unique	Identifier	(UUID)	UUID生成噚が甚意されおいる。
String	rawId	=	java.util.UUID.randomUUID().toString();
擬䌌乱数生成噚ず暗号化
SecureRandom	randomGenerator	=	new	SecureRandom();
int	randomNumer	=	randomGenerator.nextInt();
String	randomDigits	=	new	Integer(randomNumber).toString();
MessageDigest	encryptor	=	MessageDigeet.getInstance("SHA-1");
byte[]	rawIdBytes	=	encryptor.digest(randomDigits.getBytes());
Page	77/120
゚ンティティ属性のバリデヌション
属性/プロパティぞの操䜜は、	自己カプセル化(アクセッサメ゜ッド仲介)で行ない、
䞍適切な倀の蚭定がされないようにしたす。
自己カプセル化ずは、クラス内のデヌタぞのアクセスは、たずえ同䞀クラス
の䞭からでも、アクセッサメ゜ッド経由で行うよう蚭蚈するこずだ。
Marfin	Fowler
メリットずしお、むンスタンス倉数を抜象化でき、	他のオブゞェクトの属性やプロパ
ティを容易に䜿えるようになり、	バリデヌションあるいはアサヌションでの事前チェ
ックもできるようになりたす。	 が、実践ドメむン駆動蚭蚈の著者はこう思っおたす。
バリデヌションは、単䜓で個別の関心事であり、バリデヌション専任のクラ
スが受け持぀責務である。	ドメむンオブゞェクトに実装するものではない。
Page	78/120
オブゞェクト統合倱調症
オブゞェクト統合倱調症ずは、
凊理を移譲されたオブゞェクトが、委譲元の゚ンティティ・オブゞェクトの識別子を
知らない状況を衚したす。
゚ンティティは、同じ状態であっおも他ず区別できたすが、	識別子が刀らないた
め、凊理を委譲されたオブゞェクトは、	委譲元の゚ンティティを区別できなくなるこ
ずをパラノむアになぞらえた衚珟です。
Page	79/120
倀オブゞェクト
倀オブゞェクト暡範的説明ずは、
ドメむン内で特定の、蚈算や定量化や亀換可胜な性質の抂念を衚したす。
同䞀性の保蚌が必芁ない効率化のためのオブゞェクトです。
倉曎䞍可胜(䞍倉)な倀の属性ず副䜜甚のない振る舞い(関数)を持ち、	倀の透過
性から同じ状態のものは区別できず同じものずしお扱いたす。	亀換可胜性がある
ため、同型の新むンスタンスずの亀換で状態曎新ずするこずもできたす。
振る舞いは副䜜甚を持たず、新しい倀を返すこずはできたすが、自分自身の状
態を倉曎するこずはできたせん。
補足色コヌド(#ffffff)を	String	型でなく、ColorCode	型の倀オブゞェクトにする
ず、	単なる文字列でなく、ドメむン内での色コヌドずいう抂念を衚せるようになり
たす。
Page	80/120
倀オブゞェクトのモデリング
ディスカッションで、
以䞋のような特城の抂念があれば、倀オブゞェクトずしお定矩したす。
そのドメむン内の䜕かを蚈枬したり定量化したり、あるいは説明したりする。
状態を䞍倉に保぀こずができる。
関連する属性を䞍可欠な単䜍ずしお組み合わせるこずで、
抂念的な統䞀䜓を圢成する。
蚈枬倀や説明が倉わったずきには、党䜓を完党に眮き換えられる。
倀が等しいかどうかを、他ず比范できる。
協力関係にあるその他の抂念に、副䜜甚のない振る舞い(関数)を提䟛する。
Page	81/120
倀オブゞェクト:抂念的な統䞀䜓
抂念的な統䞀䜓は、	関係する党おの属性の倀がないず成り立たないもの。
䟋トッピングしたアむスの代金	アむスずトッピングは党皮同額
代金は、トッピングの個数が決たらないず決定しない。
倀オブゞェクトはひず぀以䞊の属性を持っおいたす。
それらがお互いに関連しおいお、党䜓をもっおこの倀の説明ができ、
それらのいずれかを切り離しおも、この倀の説明ができなくなる。
これらの条件をみたす倀オブゞェクトは、抂念的な統䞀䜓です。
Page	82/120
倀オブゞェクト:状態曎新も扱える
゚ンティティでなくおも、倀オブゞェクトで状態曎新を扱えたす。
蚭蚈䞭のオブゞェクトが状態を曎新するので「これぱンティティ」ず
単玔に考えないでください。
オブゞェクトが同䞀性をもたないのでしたら、倀オブゞェクトを䜿うこずを怜蚎しお
ください。	倀オブゞェクトは亀換可胜性があるので、新むンスタンスに眮換するこず
で状態曎新が扱えたす。
Page	83/120
倀オブゞェクト:副䜜甚のない振る舞い
倀オブゞェトは、゚ンティティを倉曎しないでください。
倉曎するずテストが難しくなっおしたいたす。
自分自身の状態倉曎でないからずいっお、	パラメヌタずしお枡された゚ンティティ
の倉曎はしないでください。
Page	84/120
倀オブゞェクト:できるだけ倀で受け取る
メ゜ッドのパラメヌタは、
できるだけ倀でもらい、倀オブゞェクトをそのたた受け取らない。
倀オブゞェクトをそのたた受け取るこずは、他人の内郚構造を知っおいる
(䟝存する)こずになりたす。
メ゜ッドのパラメヌタは、実際に䜿う属性のみを受け取るようにするこず。
メ゜ッドのパラメヌタは、できるだけ゚ンティティを受け取らないようにするこず。
  	゚ンティティの状態倉曎がないこずを保蚌しにくいため。
//	修正前
float	priority	=	businessPriority.priorityOf(product);
//	修正埌
float	priority	=
								businesssPriority.priority(
																product.businessPriorityTotals());
Page	85/120
倀オブゞェクト:ミニマリズムを考慮
メ゜ッドのパラメヌタには、
実斜に䜿う倀オブゞェクトや属性を枡すようにするこず。
䞋流のモデル内の管理負担が最小限になるようにしたす。
Page	86/120
倀オブゞェクト:暙準型を利甚する
倀オブゞェクトが耇数掟生する堎合は、
暙準型を远加しお区別できるようにする。
暙準型ずは、あるものの皮類を説明する型のこず。
䟋えば	ナビキタス蚀語に	PhonNumber(電話番号)が定矩されおいおいるなら、
暙準型のPhoneType	を定矩すれば、
電話番号がさらに家電話(Home)か携垯電話(Mobile)かを説明できたす。
//	電話皮別の暙準型を定矩
enum	PhonType	{Home,Mobile,Other};
Page	87/120
倀オブゞェクト:氞続化刀断
氞続化するからずいっお、
必ず゚ンティティが必芁になるわけではありたせん。
あるオブゞェクトを氞続化する堎合は、	そのオブゞェクト型専甚のテヌブルに栌玍
されるこずもありたす。	そのテヌブルには、䞻キヌも含たれる だからずいっお、	オ
ブゞェクトが゚ンティティであるず決め぀けないでください。
DDDは、ドメむンモデルを䞭心に蚭蚈するパタヌンです。
氞続化するオブゞェクトが、゚ンティティか、倀オブゞェクトで良いのかは、
ドメむンモデルが決めるこずです。
そのためのチェック項目も提案されおいたす。
Page	88/120
倀オブゞェクト:氞続化刀断
チェック項目
1.	 今モデリングしおいるのは、そのドメむンにおける䜕かのものなのだろうか	そ
れずも、枬定倀や量など、物の性質に぀いおの説明なのだろうか
2.	 正しくモデリングしおドメむンの芁玠を衚したずきに、このモデルの抂念は、	さき
ほどたずめた倀の特城をすべお(あるいは、ほが)満たしおいるだろうか
3.	 ゚ンティティを䜿おうずしおいる理由は、ベヌスにあるデヌタモデルが、	ドメむン
オブゞェクトを゚ンティティずしお扱うこずを求めおいるからずいうだけのこずなの
だろうか
4.	 ゚ンティティを䜿おうずしおいる理由は、ドメむンモデルが䞀意な識別子を必芁
ずしおいお	個別のむンスタンスを気に掛ける必芁があり、オブゞェクトの状態の
倉曎を远跡する必芁があるから	なのだろうか
Page	89/120
倀オブゞェクト:氞続化刀断
実践ドメむン駆動蚭蚈では、前ペヌゞのチェック項目が
1:性質に぀いおの説明、2:Yes、3:Yes、4:No	であるなら、
倀オブゞェクトを䜿うべきずしおいたす。
そしお、オブゞェクトを栌玍する堎所ずしおの氞続化ストアは甚意するが、
それがドメむンモデル内の倀の抂念化に圱響を及がさないようにするこずが
重芁ずしおいたす。
ドメむンモデルに、むンフラストラクチャのデヌタモデルが挏れ出しおいる。
ドメむンモデルが、デヌタモデルの単なる写像になっおいる。
Page	90/120
集箄
集玄暡範的説明ずは、
同䞀性をも぀オブゞェクトを含む集合を扱う蚭蚈パタヌン
関連が深くおラむフサむクル(生成から砎棄たでの生存期間)が同じオブゞェクトの
集合(Aggregates)から、	代衚ずする゚ンティティ(ルヌト)を遞んでひず括りずし、
内郚の操䜜はルヌトを経由しなければできないようにするこずで、	ラむフサむクル
の境界での䞀括したアクションを扱い易くしたす。
集玄のむンスタンスの氞続化には、リポゞトリを䜿いたす。
Page	91/120
集玄の䞍倉条件
集玄は、
集玄内にあるオブゞェクトず集玄党䜓に察しお、䞍倉条件を匷制したす。
䞍倉条件が満たされるこずで、トランザクション制埡ができるようになりたす。
䞍倉条件ずは、内容が意図した通りであり倉曎されおいないこずの保蚌です。
Page	92/120
集玄の䞍倉条件
集玄党䜓の䞍倉条件匷制ロゞック
集玄は、集玄内郚のメンバ゚ンティティず倀オブゞェクトを集玄の境界に定矩
し、	倖郚から参照できないように隠蔜化したす。
集玄の境界内のメンバは、お互いず他の集玄ルヌトのみ参照できたす。
集玄は、代衚ずする゚ンティティを䞀぀遞び、ルヌト゚ンティティずしたす。
集玄は、ルヌト゚ンティティのみが、集玄倖郚のオブゞェクトからアクセス可胜ず
し、	か぀ルヌト゚ンティティを経由しなければ、集玄の境界内のメンバの操䜜も
できなくしたす。
集玄は、ルヌト゚ンティティに集玄の境界䌚内の䞍倉条件をチェックする責務を
負わせたす。
集玄は、このようにしお集玄の境界内のメンバの意図しない倉曎を防ぎ、
䞍倉条件デヌタの䞀貫性が満たされるようにしおいたす。
Page	93/120
リポゞトリ
リポゞトリ暡範的説明ずは、
ドメむンモデルに同䞀性をも぀オブゞェクトの氞続化の抂念を導入する蚭蚈パタ
ヌン
集玄を䜿い、モデルのロックを可胜にしお、トランザクションを管理できるようにし
たす。	リポゞトリにより、ドメむンにむンフラストラクチャの郜合が挏れださないよう
にしお、	ドメむンロゞックをコアドメむンに集䞭できるようにしたす。
Page	94/120
リポゞトリず氞続化
リポゞトリは、
集玄を抂念䞊の集合のように衚珟しお、コレクションのように操䜜でき、
か぀背埌でのDBぞの氞続化たでできるようにしおくれたす。
集玄のオブゞェクトの远加や削陀が実行されるず、
リポゞトリの背埌にある仕組みが、デヌタベヌスに察しお挿入や削陀を行いたす。
こうしお、ラむフサむクルの始たりから終わりたでを通じお、	集玄のルヌトに察する
アクセスずデヌタベヌスずの透過的同期を提䟛したす。
Page	95/120
リポゞトリのフロヌ䟋
抜象化したリポゞトリのフロヌ䟋
クラむアントから受けた遞択条件をDBむンタヌフェヌスに枡したす。
DBむンタヌフェヌスから受け取ったデヌタを集玄に倉換したす。
集玄の生成にファクトリが介圚する堎合もある
クラむアントに集玄のオブゞェクトを返したす。
Page	96/120
ファクトリ
ファクトリ暡範的説明ずは、
耇雑なオブゞェクトや集玄のむンスタンス生成責務を
別のオブゞェクトに移すパタヌンです。
集玄の各メンバが、自分の䞭栞ロゞックに集䞭できるようにするため、
集玄党䜓をひずたずたりずしお生成しお、むンスタンス生成の耇雑さを隠蔜したす。
Page	97/120
ドメむンむベント
ドメむンむベントは、
ドメむン内で発生した/する、䜕らかの出来事を捉えるためのものです。
メッセヌゞングシステムを䜿い、䜕らかの操䜜を衚すコマンドやク゚リを、
境界づけられたコンテキストを超えおドメむンモデル内の察応する専任者に通知
しお、	察凊しおもらえるようにするパタヌンです。
Page	98/120
ドメむンむベントの䟋
ドメむンむベントのフロヌ䟋
実践ドメむン駆動蚭蚈	第章	ドメむンむベント	図8-1より
集玄がむベントを䜜っお出版し、
サブスクラむバは、そのむベントを栌玍しお、
リモヌトのサブスクラむバに転送するか、栌玍せずに転送しおいたす。
Page	99/120
ドメむンむベントの導入怜蚎条件
組織の文化によっお泚意すべきフレヌズは代わりたすが、
ディスカッションで、以䞋のようなフレヌズが出たきた堎合
ドメむンむベントの導入を怜蚎したす。
䜕かのきっかけで、䜕かをしなければいけないこずがキヌポむント
「 するずきに、」「もしそうなったら、 」
「 の堎合は、私に知らせお欲しい」「 の堎合は、通知しお欲しい」
「 が発生したずきに」
あるいは、
(瀟内の別システムの)あるドメむンで発生したむベントを
別(システム)の境界づけられたコンテキストに通知しなければいけないずき。
Page	100/120
ドメむンむベントの実珟手法
ドメむンむベントでは、
集玄の倉曎成功のむベント通知により、
関係する他の集玄のむンスタンスの同期(別トランザクション)が行えるよう、
結果敎合性(次の曎新たでに同期が保蚌できる)が図れる手法を利甚したす。
これは、むベントの他のコンテキストぞの配送に時間がかかるためです。
結果敎合性には、
スケヌラブルか぀システム間を疎結合に保぀メリットもありたす。
結果敎合性	Eventual	Consistencyは、
デヌタが曎新された際には、即座にデヌタが反映されなくおも、
参照時に曎新結果が埗られば良い 結果的に䞀貫性が保たれればよいずいう考
え方です。
Page	101/120
ドメむンむベントのモデリング
むベントのモデリングの基本
むベントやプロパティの名前には、
むベント発生元の境界付けられたコンテキストのナビキタス蚀語に沿いたす。
むベントの名前には、実行されたコマンドを甚いるのが適切です。
(コマンドがむベントの発生芁因のため)
むベントの発生元や関連するプロパティを远加したす。
むベントが発生した集玄や、関係する他の集玄(およびその識別子)
むベントを発生するために必芁なパラメヌタ
むベントの発生による集玄の状態の掚移
むベントが提䟛するメ゜ッド(挙動の操䜜)を远加したす。
むベントの発生芁因を衚すプロパティを䌝える目的操䜜
Page	102/120
ドメむンむベントのモデリング
むベントのモデリングに぀いおの補足
むベントに远加する振る舞いは、副䜜甚のないものにしたす。
むベントは基本的に䞍倉クラスなのでシンプルになりたす。
Page	103/120
ドメむンむベントのナヌスケヌス
ドメむンむベントの䞀般的な䜿甚䟋では、
パブリッシャヌ(出版)ずサブスクラむバヌ(賌読)ずいうパタヌンを䜿いたす。
集玄が特定のむベントを䜜成し、それをパブリッシャヌが発行出版しお、	シス
テムやコンテキスト境界をたたいだドメむンモデルのそれを察象ずしたサブスク
ラむバヌが捕捉(賌読)するこずで、特定のむベントに必芁な察応を行ないたす。
Page	104/120
ドメむンむベントのコンポヌネント
ドメむンモデル内のむベントを扱うコンポヌネント
パブリッシャヌ
パブリッシャヌは、集玄に察しおシンプルなサヌビスを提䟛し、	集玄がむベント
のサブスクラむバに通知を送れるようにするための	軜量なオブザヌバです。
ドメむンモデルず同じモゞュヌルに属したす。
サブスクラむバヌ
サブスクラむバヌは、察応するむベントが指定され、	むベントハンドリング(捕捉)
時の凊理が実装された	軜量なオブザヌバです。
䞀般的に、アプリケヌションサヌビス(あるいはドメむンサヌビス)から	パブリッシ
ャヌに登録され、	むベントを発行する集玄ず同䞀のスレッドで実行されたす。
Page	105/120
ドメむンむベントのコンポヌネント
ドメむンモデル内のコンポヌネントに぀いおの補足
ドメむンモデルの情報をメッセヌゞング基盀に挏らさないこず。
ドメむンモデルからむンフラストラクチャを間接的に利甚するこずがあっおも	明
瀺的に結合させおはいけたせん。
サブスクラむバでは、指定されたものずは別の集玄のむンスタンスを取埗しお	状
態倉曎をしおはいけたせん。
Page	106/120
ドメむンむベント:メッセヌゞング基盀の利甚
リモヌトにむベントを届けるためにはミドルりェアを䜿いたす。
リモヌトの境界づけられたコンテキストに、
手元のコンテキストで発生したむベントを届けるには、
䞀般的にミドルりェアに分類される、ActivieMQやRabbitMQやAkka などの
メッセヌゞング・コンポヌネントを䜿いたす。
あるいは、RESTリ゜ヌスを䜿った、独自のメッセヌゞング・システムでも察応可
胜でしょう。
Page	107/120
ドメむンむベント:メッセヌゞング基盀の敎合性
モデルずむベントの敎合性を保぀氞続化のパタヌン
1.	 ドメむンモデルずメッセヌゞ基盀の氞続化共有
モデルぞの倉曎ず新しいメッセヌゞの远加を、同䞀のロヌカルトランザクション
内で行えるよう、	ドメむンモデルずメッセヌゞング基盀が、氞続化ストア(デヌタ゜
ヌスなど)を共有したす。
欠点:メッセヌゞングシステムのストレヌゞ領域を	ドメむンモデルず同じデヌタベ
ヌスに配眮しないずいけない。
2.	 ドメむンモデルずメッセヌゞ基盀の氞続化のグロヌバル制埡
モデルずメッセヌゞングのストレヌゞを別々にできるよう、	ドメむンモデルの氞続
化ストアずメッセヌゞングの氞続化ストアを、	グロヌバルなXAトランザクション
(二盞コミット)で制埡したす。
欠点:グロヌバルなトランザクションを考慮しないずいけない。
Page	108/120
ドメむンむベント:メッセヌゞング基盀の敎合性
モデルずむベントの敎合性を保぀氞続化のパタヌン
3.	 むベントストアの利甚
むベントストアは、	モデルずむベントずの敎合性が、単䞀のロヌカルトランザクシ
ョン内で保蚌されるよう、	むベント甚の特別なストレヌゞ領域(デヌタベヌスの
テヌブルなど)を、	ドメむンモデルが䜿っおいるのず同じデヌタストア内に甚意す
る手法です。
ストレヌゞ領域は、境界づけられたコンテキストが所有しお管理したす。
倖郚のコンポヌネントは、このむベントストアを䜿っお、	栌玍枈みのむベントのう
ちただ発行しおいないものを、	メッセヌゞングメカニズムを利甚しお発行したす。
欠点:メッセヌゞングメカニズムを経由しお送信するために、	むベントをそのメカ
ニズムに転送する仕組みを自䜜しないずいけたせん。
補足むベントストアの基本圹割は、シリアラむズしたむベントをその発生順に保
持するこずです。
Page	109/120
ドメむンむベント:むベントストアの䞻目的
むベントストアが提䟛できるもの
リモヌトのサブスクラむバがむベントに反応できる。
むベントストアをメッセヌゞング基盀を通しおすべおのむベントを発行する際のキ
ュヌずするこずで、	リモヌトのサブスクラむバが自分のコンテキストの必芁に応
じおむベントに反応できるようになりたす。
RESTベヌスの通知をクラむアントに提䟛できる。
集玄のコマンドの結果を完党に蚘録できる。
ドメむンモデル䞊で実行された党おのコマンドの結果を履歎ずしお蚘録できた
す。
デヌタを䜿っお、傟向の分析や今埌の予枬などを行なえる。
Page	110/120
ドメむンむベント:むベントストアの䞻目的
むベントストアが提䟛できるもの
集玄のむンスタンスの再構築ができる。
リポゞトリから取埗した時系列のむベントを適甚するこずで、集玄のむンスタンス
が再構築できたす。
集玄に察するある時点の倉曎を取り消せる。
取り消したい過去のある時点を指定しお、	マヌクされたむベントを無芖しお、集
玄のむンスタンスの再構築を行いたす。
Page	111/120
サヌビス
サヌビス暡範的説明ずは、
ドメむンの䞭栞から倖れるが、そのドメむンに必芁なタスクをこなす、
ステヌトレスな操䜜のこず。
どのオブゞェクトにも属さいない操䜜のため、
オブゞェクトずしおモデル化するず䞍自然ですが、
゚ンティティや倀オブゞェクトの責務ずしおも䞍自然なので、
それ甚の独立した操䜜むンタヌフェヌスメ゜ッドのみ提䟛したす。
システムレベルのリモヌトプロシヌゞャ呌び出しRPC)や	メッセヌゞ指向ミドルり
ェアを䜿うような「サヌビス」のこずではありたせん。
Page	112/120
サヌビスの皮類
ドメむンサヌビスは、
ドメむンの䞭栞から倖れるが、そのドメむンに必芁なタスクをこなす、ステヌトレス
な操䜜	であり、	ビゞネスロゞックを持ち、アプリケヌションサヌビスを䜿い、
倚少耇雑になるこずもある粒床が现かいタスクをこなしたす。
アプリケヌションサヌビスは、
ビゞネスロゞックを持たないアプリケヌション党䜓のロゞックを提䟛し、
ドメむンモデルのクラむアントであり、ドメむンサヌビスのクラむアントにもなりたす。
Page	113/120
ドメむンサヌビスの導入怜蚎条件
ドメむンサヌビスを䜿う導入するのを怜蚎する条件は、
操䜜が、既存の゚ンティティや倀オブゞェクトに属さないずみなせる堎合です。
以䞋のような条件が、考えられるそうです。
重芁なビゞネスロゞックを実行する。
ドメむンオブゞェクトを、ひず぀の構成から別の構成に倉換する。
耇数のドメむンオブゞェクトからの入力にもずづいお、倀を算出する。
モデルの䞭栞ではないが、そのモデルに䞍可欠な芁件がある。
䟋アカりント情報のパスワヌドは暗号化する。
アカりント情報に情報保管以倖の暗号化ずいう責務があるこずは、
単䞀責務の原則に違反しおいるためサヌビスに移したす。
Page	114/120
ドメむンサヌビスのモデリング
ドメむンサヌビスのモデリングは、以䞋のようにシンプルです。
ドメむンサヌビスのむンタヌフェヌス宣蚀は、ドメむンのモゞュヌル内で行う。
ドメむンサヌビスの実装は、(アプリケヌションのモゞュヌルなど)ドメむンモデル
の倖郚に配眮する。
ドメむンサヌビスのセパレヌトむンタヌフェヌスは、耇数実装が必芁でなければ
必須ではない。
操䜜名は、必ずナビキタス蚀語の䞀郚(動詞)で呜名するこず。
状態を持たせないこず。
Page	115/120
モゞュヌル
モゞュヌル暡範的説明ずは、
Javaではパッケヌゞず呌ばれおいる抂念のこず。
DDDの文脈におけるモゞュヌルに盞圓する。
DDDの文脈におけるモデル内のモゞュヌルは、
ドメむンオブゞェクト内のひずたずたりのクラス矀をたずめる、名前付きのコンテナ。
同じドメむンオブゞェクト内の他のモゞュヌルのクラス矀ずの結合を少なくするよう
蚭けたす。
Page	116/120
モゞュヌルの䟋
//	トップレベルのモゞュヌル名	䞀般的に所属先の逆むンタヌネットドメむン名
som.saasovation
//	境界付けられたコンテキストを衚すモゞュヌル名
//	実際のコンテキスト名ず䞀字䞀句同じにする必芁はない
com.saasoation.identiyaccess
com.saasovation.collaboration
com.saasovation.agilpm
//	ドメむンのモゞュヌル名
com.saasoation.identiyaccess.domain
com.saasovation.collaboration.domain
com.saasovation.agilpm.domain
//	ドメむンモデルのモゞュヌル名
com.saasoation.identiyaccess.domain.model
com.saasovation.collaboration.domain.model
com.saasovation.agilpm.domain.model
//	ドメむンモデルのサヌビス名
com.saasoation.identiyaccess.domain.servis
com.saasovation.collaboration.domain.servis
com.saasovation.agilpm.domain.servis
Page	117/120
モゞュヌルの䟋
//	ドメむンモデル内のモゞュヌル名
//	ドメむンモデルのコンポヌネントを配眮する
com.saasovation.agilpm.domain.model.tenant
   		<<value	object>>	TenantId
com.saasovation.agilpm.domain.model.team
   		<<servis>>	MemberService
   		<<aggregate	root>>	ProductOwner
   		<<aggregate	root>>	Team
   		<<aggregate	root>>	TeamMember
com.saasovation.agilpm.domain.model.product
   		<<aggregate	root>>	Product
com.saasovation.agilpm.domain.model.product.backlogitem
   		<<aggregate	root>>	BacklogItem
com.saasovation.agilpm.domain.model.product.release
   		<<aggregate	root>>	Release
//	backlogitem	や	release	は、モデル内のモゞュヌル内のモゞュヌルを瀺す
Page	118/120
みなさん、お疲れ様でした。
この発衚は、
゚リック゚バンスのドメむン駆動蚭蚈ず、実践ドメむン駆動蚭蚈の
特城的な䞀郚のパタヌンの衚局をなでただけです。
そしお「意図の明癜なむンタヌフェヌス」のような、
现かいこずですが重芁な基本も抜けおしたっおいたす。
ドメむン駆動蚭蚈は、もっずもっず深いものです。
この発衚が、䜕かのきっかけになりたしたら幞いです。
Page	119/120
ご枅聎、ありがずうございたした。
Page	120/120

More Related Content

What's hot

これっお、ドメむン駆動蚭蚈
これっお、ドメむン駆動蚭蚈これっお、ドメむン駆動蚭蚈
これっお、ドメむン駆動蚭蚈
Michitaka Yumoto
 
ドメむン駆動蚭蚈入門
ドメむン駆動蚭蚈入門ドメむン駆動蚭蚈入門
ドメむン駆動蚭蚈入門
Takuya Kitamura
 
私がドメむン駆動蚭蚈をやる理由
私がドメむン駆動蚭蚈をやる理由私がドメむン駆動蚭蚈をやる理由
私がドメむン駆動蚭蚈をやる理由
増田 亚
 
オブゞェクト指向蚭蚈の原則
オブゞェクト指向蚭蚈の原則オブゞェクト指向蚭蚈の原則
オブゞェクト指向蚭蚈の原則
Toru Koido
 
20160402 JAWS-UG倧分 AWS初心者向け勉匷䌚@おおいた2016春
20160402 JAWS-UG倧分 AWS初心者向け勉匷䌚@おおいた2016春20160402 JAWS-UG倧分 AWS初心者向け勉匷䌚@おおいた2016春
20160402 JAWS-UG倧分 AWS初心者向け勉匷䌚@おおいた2016春
Midori Ikegami
 
䞭の䞋の゚ンゞニアを脱出するための目暙蚭定
䞭の䞋の゚ンゞニアを脱出するための目暙蚭定䞭の䞋の゚ンゞニアを脱出するための目暙蚭定
䞭の䞋の゚ンゞニアを脱出するための目暙蚭定
空宙 小笠原
 
3週連続DDDその2 深いモデルの探求(ドメむン駆動蚭蚈 第郚)
3週連続DDDその2  深いモデルの探求(ドメむン駆動蚭蚈 第郚)3週連続DDDその2  深いモデルの探求(ドメむン駆動蚭蚈 第郚)
3週連続DDDその2 深いモデルの探求(ドメむン駆動蚭蚈 第郚)
増田 亚
 
ぐるぐるDDD(ドメむン駆動蚭蚈に参加しおみたした
ぐるぐるDDD(ドメむン駆動蚭蚈に参加しおみたしたぐるぐるDDD(ドメむン駆動蚭蚈に参加しおみたした
ぐるぐるDDD(ドメむン駆動蚭蚈に参加しおみたした
Takuya Kawabe
 
Rails api way in aiming
Rails api way in aimingRails api way in aiming
Rails api way in aiming
Yasutomo Uemori
 
ドメむン駆動蚭蚈ずは䜕か 【入門線】
ドメむン駆動蚭蚈ずは䜕か 【入門線】ドメむン駆動蚭蚈ずは䜕か 【入門線】
ドメむン駆動蚭蚈ずは䜕か 【入門線】
増田 亚
 
2015-12-16 某S瀟、出盎しDDDっおるっおよ
2015-12-16 某S瀟、出盎しDDDっおるっおよ2015-12-16 某S瀟、出盎しDDDっおるっおよ
2015-12-16 某S瀟、出盎しDDDっおるっおよ
kumake
 
WordPressずわぷヌのGPL 奈良線
WordPressずわぷヌのGPL 奈良線WordPressずわぷヌのGPL 奈良線
WordPressずわぷヌのGPL 奈良線
Shigeki Takai
 
オンラむンゲヌムのRails耇数db戊略
オンラむンゲヌムのRails耇数db戊略オンラむンゲヌムのRails耇数db戊略
オンラむンゲヌムのRails耇数db戊略
Yasutomo Uemori
 
オブゞェクト指向プログラミングの珟圚・過去・未来
オブゞェクト指向プログラミングの珟圚・過去・未来オブゞェクト指向プログラミングの珟圚・過去・未来
オブゞェクト指向プログラミングの珟圚・過去・未来
増田 亚
 
リッチなドメむンモデル 名前探し
リッチなドメむンモデル 名前探しリッチなドメむンモデル 名前探し
リッチなドメむンモデル 名前探し
増田 亚
 
ドメむン駆動蚭蚈 思えば遠くにきたもんだ
ドメむン駆動蚭蚈 思えば遠くにきたもんだドメむン駆動蚭蚈 思えば遠くにきたもんだ
ドメむン駆動蚭蚈 思えば遠くにきたもんだ
増田 亚
 
ドメむン駆動蚭蚈を実践するプログラマヌの悩み
ドメむン駆動蚭蚈を実践するプログラマヌの悩みドメむン駆動蚭蚈を実践するプログラマヌの悩み
ドメむン駆動蚭蚈を実践するプログラマヌの悩み
haljik Seiji
 

What's hot (17)

これっお、ドメむン駆動蚭蚈
これっお、ドメむン駆動蚭蚈これっお、ドメむン駆動蚭蚈
これっお、ドメむン駆動蚭蚈
 
ドメむン駆動蚭蚈入門
ドメむン駆動蚭蚈入門ドメむン駆動蚭蚈入門
ドメむン駆動蚭蚈入門
 
私がドメむン駆動蚭蚈をやる理由
私がドメむン駆動蚭蚈をやる理由私がドメむン駆動蚭蚈をやる理由
私がドメむン駆動蚭蚈をやる理由
 
オブゞェクト指向蚭蚈の原則
オブゞェクト指向蚭蚈の原則オブゞェクト指向蚭蚈の原則
オブゞェクト指向蚭蚈の原則
 
20160402 JAWS-UG倧分 AWS初心者向け勉匷䌚@おおいた2016春
20160402 JAWS-UG倧分 AWS初心者向け勉匷䌚@おおいた2016春20160402 JAWS-UG倧分 AWS初心者向け勉匷䌚@おおいた2016春
20160402 JAWS-UG倧分 AWS初心者向け勉匷䌚@おおいた2016春
 
䞭の䞋の゚ンゞニアを脱出するための目暙蚭定
䞭の䞋の゚ンゞニアを脱出するための目暙蚭定䞭の䞋の゚ンゞニアを脱出するための目暙蚭定
䞭の䞋の゚ンゞニアを脱出するための目暙蚭定
 
3週連続DDDその2 深いモデルの探求(ドメむン駆動蚭蚈 第郚)
3週連続DDDその2  深いモデルの探求(ドメむン駆動蚭蚈 第郚)3週連続DDDその2  深いモデルの探求(ドメむン駆動蚭蚈 第郚)
3週連続DDDその2 深いモデルの探求(ドメむン駆動蚭蚈 第郚)
 
ぐるぐるDDD(ドメむン駆動蚭蚈に参加しおみたした
ぐるぐるDDD(ドメむン駆動蚭蚈に参加しおみたしたぐるぐるDDD(ドメむン駆動蚭蚈に参加しおみたした
ぐるぐるDDD(ドメむン駆動蚭蚈に参加しおみたした
 
Rails api way in aiming
Rails api way in aimingRails api way in aiming
Rails api way in aiming
 
ドメむン駆動蚭蚈ずは䜕か 【入門線】
ドメむン駆動蚭蚈ずは䜕か 【入門線】ドメむン駆動蚭蚈ずは䜕か 【入門線】
ドメむン駆動蚭蚈ずは䜕か 【入門線】
 
2015-12-16 某S瀟、出盎しDDDっおるっおよ
2015-12-16 某S瀟、出盎しDDDっおるっおよ2015-12-16 某S瀟、出盎しDDDっおるっおよ
2015-12-16 某S瀟、出盎しDDDっおるっおよ
 
WordPressずわぷヌのGPL 奈良線
WordPressずわぷヌのGPL 奈良線WordPressずわぷヌのGPL 奈良線
WordPressずわぷヌのGPL 奈良線
 
オンラむンゲヌムのRails耇数db戊略
オンラむンゲヌムのRails耇数db戊略オンラむンゲヌムのRails耇数db戊略
オンラむンゲヌムのRails耇数db戊略
 
オブゞェクト指向プログラミングの珟圚・過去・未来
オブゞェクト指向プログラミングの珟圚・過去・未来オブゞェクト指向プログラミングの珟圚・過去・未来
オブゞェクト指向プログラミングの珟圚・過去・未来
 
リッチなドメむンモデル 名前探し
リッチなドメむンモデル 名前探しリッチなドメむンモデル 名前探し
リッチなドメむンモデル 名前探し
 
ドメむン駆動蚭蚈 思えば遠くにきたもんだ
ドメむン駆動蚭蚈 思えば遠くにきたもんだドメむン駆動蚭蚈 思えば遠くにきたもんだ
ドメむン駆動蚭蚈 思えば遠くにきたもんだ
 
ドメむン駆動蚭蚈を実践するプログラマヌの悩み
ドメむン駆動蚭蚈を実践するプログラマヌの悩みドメむン駆動蚭蚈を実践するプログラマヌの悩み
ドメむン駆動蚭蚈を実践するプログラマヌの悩み
 

Viewers also liked

Android lint-srp-practice
Android lint-srp-practiceAndroid lint-srp-practice
Android lint-srp-practice
cch-robo
 
Firebase Test Lab 無料枠を䜿っおみたした。
Firebase Test Lab 無料枠を䜿っおみたした。Firebase Test Lab 無料枠を䜿っおみたした。
Firebase Test Lab 無料枠を䜿っおみたした。
cch-robo
 
AndroidLint #DroidKaigi
AndroidLint #DroidKaigiAndroidLint #DroidKaigi
AndroidLint #DroidKaigi
Yukiya Nakagawa
 
始めよう! ドメむン駆動蚭蚈マむクロサヌビス開発 C# ず Azure Service Fabric で最高の DDD 開発を
始めよう! ドメむン駆動蚭蚈マむクロサヌビス開発 C# ず Azure Service Fabric で最高の DDD 開発を始めよう! ドメむン駆動蚭蚈マむクロサヌビス開発 C# ず Azure Service Fabric で最高の DDD 開発を
始めよう! ドメむン駆動蚭蚈マむクロサヌビス開発 C# ず Azure Service Fabric で最高の DDD 開発を
貎志 䞊坂
 
党おSになる -RxJavaずLWSを持ち蟌む楜しさ-
党おSになる -RxJavaずLWSを持ち蟌む楜しさ-党おSになる -RxJavaずLWSを持ち蟌む楜しさ-
党おSになる -RxJavaずLWSを持ち蟌む楜しさ-
Ryutaro Miyashita
 
minneにおけるテスト〜リリヌス〜リリヌス埌にやっおいる事の玹介
minneにおけるテスト〜リリヌス〜リリヌス埌にやっおいる事の玹介minneにおけるテスト〜リリヌス〜リリヌス埌にやっおいる事の玹介
minneにおけるテスト〜リリヌス〜リリヌス埌にやっおいる事の玹介
Masataka Kono
 
React Nativeはクロスプラットフォヌムモバむルアプリ開発の倢を芋るか #DroidKaigi
React Nativeはクロスプラットフォヌムモバむルアプリ開発の倢を芋るか #DroidKaigiReact Nativeはクロスプラットフォヌムモバむルアプリ開発の倢を芋るか #DroidKaigi
React Nativeはクロスプラットフォヌムモバむルアプリ開発の倢を芋るか #DroidKaigi
Yukiya Nakagawa
 
アゞャむルっおなにが矎味しいの
アゞャむルっおなにが矎味しいのアゞャむルっおなにが矎味しいの
アゞャむルっおなにが矎味しいの
Yasui Tsutomu
 
Event-driven architecture with Java technology stack
Event-driven architecture with Java technology stackEvent-driven architecture with Java technology stack
Event-driven architecture with Java technology stack
Anna Shymchenko
 
DDD eXchange
DDD eXchangeDDD eXchange
DDD eXchange
Skills Matter
 
Add Some DDD to Your ASP.NET MVC, OK?
Add Some DDD to Your ASP.NET MVC, OK?Add Some DDD to Your ASP.NET MVC, OK?
Add Some DDD to Your ASP.NET MVC, OK?
Steven Smith
 
Strategic design using ddd
Strategic design using dddStrategic design using ddd
Strategic design using ddd
Paul Rayner
 
PHP開発からAndroid開発をするようになっお孊んだWebずモバむルの違い
PHP開発からAndroid開発をするようになっお孊んだWebずモバむルの違いPHP開発からAndroid開発をするようになっお孊んだWebずモバむルの違い
PHP開発からAndroid開発をするようになっお孊んだWebずモバむルの違い
Masataka Kono
 
2016-11-11 UMTP モデリングフォヌラム2016 DDD実践のコツずazureによるモデル実装
2016-11-11 UMTP モデリングフォヌラム2016 DDD実践のコツずazureによるモデル実装2016-11-11 UMTP モデリングフォヌラム2016 DDD実践のコツずazureによるモデル実装
2016-11-11 UMTP モデリングフォヌラム2016 DDD実践のコツずazureによるモデル実装
貎志 䞊坂
 
FirefoxOSで孊ぶJavaScript䜜法
FirefoxOSで孊ぶJavaScript䜜法FirefoxOSで孊ぶJavaScript䜜法
FirefoxOSで孊ぶJavaScript䜜法
cch-robo
 
Titanium 3.3 / 3.4 ず iOS で気を぀けたいこず
Titanium 3.3 / 3.4 ず iOS で気を぀けたいこずTitanium 3.3 / 3.4 ず iOS で気を぀けたいこず
Titanium 3.3 / 3.4 ず iOS で気を぀けたいこず
Ryutaro Miyashita
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVC
Steven Smith
 
ZTE OPEN を日本語化(バヌゞョンアップ)しおみる
ZTE OPEN を日本語化(バヌゞョンアップ)しおみるZTE OPEN を日本語化(バヌゞョンアップ)しおみる
ZTE OPEN を日本語化(バヌゞョンアップ)しおみる
cch-robo
 
Wearable realm
Wearable realmWearable realm
Wearable realm
Ryutaro Miyashita
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)
WSO2
 

Viewers also liked (20)

Android lint-srp-practice
Android lint-srp-practiceAndroid lint-srp-practice
Android lint-srp-practice
 
Firebase Test Lab 無料枠を䜿っおみたした。
Firebase Test Lab 無料枠を䜿っおみたした。Firebase Test Lab 無料枠を䜿っおみたした。
Firebase Test Lab 無料枠を䜿っおみたした。
 
AndroidLint #DroidKaigi
AndroidLint #DroidKaigiAndroidLint #DroidKaigi
AndroidLint #DroidKaigi
 
始めよう! ドメむン駆動蚭蚈マむクロサヌビス開発 C# ず Azure Service Fabric で最高の DDD 開発を
始めよう! ドメむン駆動蚭蚈マむクロサヌビス開発 C# ず Azure Service Fabric で最高の DDD 開発を始めよう! ドメむン駆動蚭蚈マむクロサヌビス開発 C# ず Azure Service Fabric で最高の DDD 開発を
始めよう! ドメむン駆動蚭蚈マむクロサヌビス開発 C# ず Azure Service Fabric で最高の DDD 開発を
 
党おSになる -RxJavaずLWSを持ち蟌む楜しさ-
党おSになる -RxJavaずLWSを持ち蟌む楜しさ-党おSになる -RxJavaずLWSを持ち蟌む楜しさ-
党おSになる -RxJavaずLWSを持ち蟌む楜しさ-
 
minneにおけるテスト〜リリヌス〜リリヌス埌にやっおいる事の玹介
minneにおけるテスト〜リリヌス〜リリヌス埌にやっおいる事の玹介minneにおけるテスト〜リリヌス〜リリヌス埌にやっおいる事の玹介
minneにおけるテスト〜リリヌス〜リリヌス埌にやっおいる事の玹介
 
React Nativeはクロスプラットフォヌムモバむルアプリ開発の倢を芋るか #DroidKaigi
React Nativeはクロスプラットフォヌムモバむルアプリ開発の倢を芋るか #DroidKaigiReact Nativeはクロスプラットフォヌムモバむルアプリ開発の倢を芋るか #DroidKaigi
React Nativeはクロスプラットフォヌムモバむルアプリ開発の倢を芋るか #DroidKaigi
 
アゞャむルっおなにが矎味しいの
アゞャむルっおなにが矎味しいのアゞャむルっおなにが矎味しいの
アゞャむルっおなにが矎味しいの
 
Event-driven architecture with Java technology stack
Event-driven architecture with Java technology stackEvent-driven architecture with Java technology stack
Event-driven architecture with Java technology stack
 
DDD eXchange
DDD eXchangeDDD eXchange
DDD eXchange
 
Add Some DDD to Your ASP.NET MVC, OK?
Add Some DDD to Your ASP.NET MVC, OK?Add Some DDD to Your ASP.NET MVC, OK?
Add Some DDD to Your ASP.NET MVC, OK?
 
Strategic design using ddd
Strategic design using dddStrategic design using ddd
Strategic design using ddd
 
PHP開発からAndroid開発をするようになっお孊んだWebずモバむルの違い
PHP開発からAndroid開発をするようになっお孊んだWebずモバむルの違いPHP開発からAndroid開発をするようになっお孊んだWebずモバむルの違い
PHP開発からAndroid開発をするようになっお孊んだWebずモバむルの違い
 
2016-11-11 UMTP モデリングフォヌラム2016 DDD実践のコツずazureによるモデル実装
2016-11-11 UMTP モデリングフォヌラム2016 DDD実践のコツずazureによるモデル実装2016-11-11 UMTP モデリングフォヌラム2016 DDD実践のコツずazureによるモデル実装
2016-11-11 UMTP モデリングフォヌラム2016 DDD実践のコツずazureによるモデル実装
 
FirefoxOSで孊ぶJavaScript䜜法
FirefoxOSで孊ぶJavaScript䜜法FirefoxOSで孊ぶJavaScript䜜法
FirefoxOSで孊ぶJavaScript䜜法
 
Titanium 3.3 / 3.4 ず iOS で気を぀けたいこず
Titanium 3.3 / 3.4 ず iOS で気を぀けたいこずTitanium 3.3 / 3.4 ず iOS で気を぀けたいこず
Titanium 3.3 / 3.4 ず iOS で気を぀けたいこず
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVC
 
ZTE OPEN を日本語化(バヌゞョンアップ)しおみる
ZTE OPEN を日本語化(バヌゞョンアップ)しおみるZTE OPEN を日本語化(バヌゞョンアップ)しおみる
ZTE OPEN を日本語化(バヌゞョンアップ)しおみる
 
Wearable realm
Wearable realmWearable realm
Wearable realm
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)
 

Similar to Loose and fluffy_ddd_intro

Docker study for beginner in My Company 2017/10/19
Docker study for beginner in My Company 2017/10/19Docker study for beginner in My Company 2017/10/19
Docker study for beginner in My Company 2017/10/19
TearTheSky
 
蚳が欲しい奎ぁ俺んずこ来い
蚳が欲しい奎ぁ俺んずこ来い蚳が欲しい奎ぁ俺んずこ来い
蚳が欲しい奎ぁ俺んずこ来いRyuji Tamagawa
 
Vagrant & Dockerによるむマドキの開発環境構築
Vagrant & Dockerによるむマドキの開発環境構築Vagrant & Dockerによるむマドキの開発環境構築
Vagrant & Dockerによるむマドキの開発環境構築
Nakazawa Yuichi
 
Kvwatcher
KvwatcherKvwatcher
Kvwatcher
ke-m kamekoopa
 
Backlog、Cacoo にみるAWS運甚の勘所 - JAWS UG 䞉郜物語
Backlog、Cacoo にみるAWS運甚の勘所 - JAWS UG 䞉郜物語Backlog、Cacoo にみるAWS運甚の勘所 - JAWS UG 䞉郜物語
Backlog、Cacoo にみるAWS運甚の勘所 - JAWS UG 䞉郜物語Takashi Someda
 
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)odakeiji
 
PlayFramework1.x基瀎線
PlayFramework1.x基瀎線PlayFramework1.x基瀎線
PlayFramework1.x基瀎線
Asami Abe
 
WordPressのロヌカル開発環境構築【WordBench Nagoya 5月床勉匷䌚】
WordPressのロヌカル開発環境構築【WordBench Nagoya 5月床勉匷䌚】WordPressのロヌカル開発環境構築【WordBench Nagoya 5月床勉匷䌚】
WordPressのロヌカル開発環境構築【WordBench Nagoya 5月床勉匷䌚】
masaya yamao
 
フロント゚ンド゚ンジニアがフルスタック゚ンジニアもず゙きになる話
フロント゚ンド゚ンジニアがフルスタック゚ンジニアもず゙きになる話フロント゚ンド゚ンジニアがフルスタック゚ンジニアもず゙きになる話
フロント゚ンド゚ンジニアがフルスタック゚ンジニアもず゙きになる話
Takahiro Maki
 
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い β
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い β20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い β
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い βRyo RKTM
 
C実装から芋るDDD(ドメむン駆動蚭蚈)
C実装から芋るDDD(ドメむン駆動蚭蚈)C実装から芋るDDD(ドメむン駆動蚭蚈)
C実装から芋るDDD(ドメむン駆動蚭蚈)
Takuya Kawabe
 
20120806 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘いα版
20120806 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘いα版20120806 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘いα版
20120806 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘いα版
Ryo RKTM
 
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術抂論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術抂論XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術抂論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術抂論
賢次 海老原
 
ゞヌノ先生の文系的オブゞェクト指向(2) - コンストラクタの匕数
ゞヌノ先生の文系的オブゞェクト指向(2) - コンストラクタの匕数ゞヌノ先生の文系的オブゞェクト指向(2) - コンストラクタの匕数
ゞヌノ先生の文系的オブゞェクト指向(2) - コンストラクタの匕数
Satoru Kodaira
 
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘いRyo RKTM
 
ななめ45°から芋たJavaOne
ななめ45°から芋たJavaOneななめ45°から芋たJavaOne
ななめ45°から芋たJavaOneAdvancedTechNight
 
確認・怜蚎にちょっず圹立぀プラグむン
確認・怜蚎にちょっず圹立぀プラグむン確認・怜蚎にちょっず圹立぀プラグむン
確認・怜蚎にちょっず圹立぀プラグむン
Kawaji Masaki
 
DevLove四囜_LT_yohhatu
DevLove四囜_LT_yohhatuDevLove四囜_LT_yohhatu
DevLove四囜_LT_yohhatuYoh Nakamura
 
RDRA DDD Agile
RDRA DDD AgileRDRA DDD Agile
RDRA DDD Agile
増田 亚
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
Shingo Furuyama
 

Similar to Loose and fluffy_ddd_intro (20)

Docker study for beginner in My Company 2017/10/19
Docker study for beginner in My Company 2017/10/19Docker study for beginner in My Company 2017/10/19
Docker study for beginner in My Company 2017/10/19
 
蚳が欲しい奎ぁ俺んずこ来い
蚳が欲しい奎ぁ俺んずこ来い蚳が欲しい奎ぁ俺んずこ来い
蚳が欲しい奎ぁ俺んずこ来い
 
Vagrant & Dockerによるむマドキの開発環境構築
Vagrant & Dockerによるむマドキの開発環境構築Vagrant & Dockerによるむマドキの開発環境構築
Vagrant & Dockerによるむマドキの開発環境構築
 
Kvwatcher
KvwatcherKvwatcher
Kvwatcher
 
Backlog、Cacoo にみるAWS運甚の勘所 - JAWS UG 䞉郜物語
Backlog、Cacoo にみるAWS運甚の勘所 - JAWS UG 䞉郜物語Backlog、Cacoo にみるAWS運甚の勘所 - JAWS UG 䞉郜物語
Backlog、Cacoo にみるAWS運甚の勘所 - JAWS UG 䞉郜物語
 
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)
 
PlayFramework1.x基瀎線
PlayFramework1.x基瀎線PlayFramework1.x基瀎線
PlayFramework1.x基瀎線
 
WordPressのロヌカル開発環境構築【WordBench Nagoya 5月床勉匷䌚】
WordPressのロヌカル開発環境構築【WordBench Nagoya 5月床勉匷䌚】WordPressのロヌカル開発環境構築【WordBench Nagoya 5月床勉匷䌚】
WordPressのロヌカル開発環境構築【WordBench Nagoya 5月床勉匷䌚】
 
フロント゚ンド゚ンジニアがフルスタック゚ンジニアもず゙きになる話
フロント゚ンド゚ンジニアがフルスタック゚ンジニアもず゙きになる話フロント゚ンド゚ンジニアがフルスタック゚ンジニアもず゙きになる話
フロント゚ンド゚ンジニアがフルスタック゚ンジニアもず゙きになる話
 
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い β
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い β20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い β
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い β
 
C実装から芋るDDD(ドメむン駆動蚭蚈)
C実装から芋るDDD(ドメむン駆動蚭蚈)C実装から芋るDDD(ドメむン駆動蚭蚈)
C実装から芋るDDD(ドメむン駆動蚭蚈)
 
20120806 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘いα版
20120806 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘いα版20120806 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘いα版
20120806 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘いα版
 
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術抂論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術抂論XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術抂論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術抂論
 
ゞヌノ先生の文系的オブゞェクト指向(2) - コンストラクタの匕数
ゞヌノ先生の文系的オブゞェクト指向(2) - コンストラクタの匕数ゞヌノ先生の文系的オブゞェクト指向(2) - コンストラクタの匕数
ゞヌノ先生の文系的オブゞェクト指向(2) - コンストラクタの匕数
 
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い
20130202 ドメむン駆動蚭蚈読曞䌚at名叀屋のお誘い
 
ななめ45°から芋たJavaOne
ななめ45°から芋たJavaOneななめ45°から芋たJavaOne
ななめ45°から芋たJavaOne
 
確認・怜蚎にちょっず圹立぀プラグむン
確認・怜蚎にちょっず圹立぀プラグむン確認・怜蚎にちょっず圹立぀プラグむン
確認・怜蚎にちょっず圹立぀プラグむン
 
DevLove四囜_LT_yohhatu
DevLove四囜_LT_yohhatuDevLove四囜_LT_yohhatu
DevLove四囜_LT_yohhatu
 
RDRA DDD Agile
RDRA DDD AgileRDRA DDD Agile
RDRA DDD Agile
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
 

More from cch-robo

Flutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_SummaryFlutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_Summary
cch-robo
 
go_router が隠しおくれるもの
go_router が隠しおくれるものgo_router が隠しおくれるもの
go_router が隠しおくれるもの
cch-robo
 
Introduction_on_designing_test_in_flutter
Introduction_on_designing_test_in_flutterIntroduction_on_designing_test_in_flutter
Introduction_on_designing_test_in_flutter
cch-robo
 
Google I/O 2021 Flutter 党䜓報告
Google I/O 2021 Flutter 党䜓報告Google I/O 2021 Flutter 党䜓報告
Google I/O 2021 Flutter 党䜓報告
cch-robo
 
Dart / Flutter コヌドファむルゞェネレヌト入門
Dart / Flutter コヌドファむルゞェネレヌト入門Dart / Flutter コヌドファむルゞェネレヌト入門
Dart / Flutter コヌドファむルゞェネレヌト入門
cch-robo
 
フラッタヌ開発におけるシヌクレット情報取扱考察
フラッタヌ開発におけるシヌクレット情報取扱考察フラッタヌ開発におけるシヌクレット情報取扱考察
フラッタヌ開発におけるシヌクレット情報取扱考察
cch-robo
 
Flutterを䜓隓しおみたせんか
Flutterを䜓隓しおみたせんかFlutterを䜓隓しおみたせんか
Flutterを䜓隓しおみたせんか
cch-robo
 
Dart蚀語の進化状況
Dart蚀語の進化状況Dart蚀語の進化状況
Dart蚀語の進化状況
cch-robo
 
明瀺的アニメで、Flutterアニメヌション入門
明瀺的アニメで、Flutterアニメヌション入門明瀺的アニメで、Flutterアニメヌション入門
明瀺的アニメで、Flutterアニメヌション入門
cch-robo
 
DartPadCodePenで、Flutterを䜓隓しおみよう
DartPadCodePenで、Flutterを䜓隓しおみようDartPadCodePenで、Flutterを䜓隓しおみよう
DartPadCodePenで、Flutterを䜓隓しおみよう
cch-robo
 
Dartでサヌバレスサヌビス
DartでサヌバレスサヌビスDartでサヌバレスサヌビス
Dartでサヌバレスサヌビス
cch-robo
 
Pin-point rebuildable and non-rebuild custom widget
Pin-point rebuildable and non-rebuild custom widgetPin-point rebuildable and non-rebuild custom widget
Pin-point rebuildable and non-rebuild custom widget
cch-robo
 
FlutterでのWidgetツリヌぞの状態䌝播ずアクセス制限の基本戊略
FlutterでのWidgetツリヌぞの状態䌝播ずアクセス制限の基本戊略FlutterでのWidgetツリヌぞの状態䌝播ずアクセス制限の基本戊略
FlutterでのWidgetツリヌぞの状態䌝播ずアクセス制限の基本戊略
cch-robo
 
Before lunch オプションを䜿っお Flutterでstaging/release環境を切り替える
Before lunch オプションを䜿っお Flutterでstaging/release環境を切り替えるBefore lunch オプションを䜿っお Flutterでstaging/release環境を切り替える
Before lunch オプションを䜿っお Flutterでstaging/release環境を切り替える
cch-robo
 
Flutter のリアクティブ戊略 set state 〜 redux たお゙
Flutter のリアクティブ戊略 set state 〜 redux たお゙Flutter のリアクティブ戊略 set state 〜 redux たお゙
Flutter のリアクティブ戊略 set state 〜 redux たお゙
cch-robo
 

More from cch-robo (15)

Flutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_SummaryFlutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_Summary
 
go_router が隠しおくれるもの
go_router が隠しおくれるものgo_router が隠しおくれるもの
go_router が隠しおくれるもの
 
Introduction_on_designing_test_in_flutter
Introduction_on_designing_test_in_flutterIntroduction_on_designing_test_in_flutter
Introduction_on_designing_test_in_flutter
 
Google I/O 2021 Flutter 党䜓報告
Google I/O 2021 Flutter 党䜓報告Google I/O 2021 Flutter 党䜓報告
Google I/O 2021 Flutter 党䜓報告
 
Dart / Flutter コヌドファむルゞェネレヌト入門
Dart / Flutter コヌドファむルゞェネレヌト入門Dart / Flutter コヌドファむルゞェネレヌト入門
Dart / Flutter コヌドファむルゞェネレヌト入門
 
フラッタヌ開発におけるシヌクレット情報取扱考察
フラッタヌ開発におけるシヌクレット情報取扱考察フラッタヌ開発におけるシヌクレット情報取扱考察
フラッタヌ開発におけるシヌクレット情報取扱考察
 
Flutterを䜓隓しおみたせんか
Flutterを䜓隓しおみたせんかFlutterを䜓隓しおみたせんか
Flutterを䜓隓しおみたせんか
 
Dart蚀語の進化状況
Dart蚀語の進化状況Dart蚀語の進化状況
Dart蚀語の進化状況
 
明瀺的アニメで、Flutterアニメヌション入門
明瀺的アニメで、Flutterアニメヌション入門明瀺的アニメで、Flutterアニメヌション入門
明瀺的アニメで、Flutterアニメヌション入門
 
DartPadCodePenで、Flutterを䜓隓しおみよう
DartPadCodePenで、Flutterを䜓隓しおみようDartPadCodePenで、Flutterを䜓隓しおみよう
DartPadCodePenで、Flutterを䜓隓しおみよう
 
Dartでサヌバレスサヌビス
DartでサヌバレスサヌビスDartでサヌバレスサヌビス
Dartでサヌバレスサヌビス
 
Pin-point rebuildable and non-rebuild custom widget
Pin-point rebuildable and non-rebuild custom widgetPin-point rebuildable and non-rebuild custom widget
Pin-point rebuildable and non-rebuild custom widget
 
FlutterでのWidgetツリヌぞの状態䌝播ずアクセス制限の基本戊略
FlutterでのWidgetツリヌぞの状態䌝播ずアクセス制限の基本戊略FlutterでのWidgetツリヌぞの状態䌝播ずアクセス制限の基本戊略
FlutterでのWidgetツリヌぞの状態䌝播ずアクセス制限の基本戊略
 
Before lunch オプションを䜿っお Flutterでstaging/release環境を切り替える
Before lunch オプションを䜿っお Flutterでstaging/release環境を切り替えるBefore lunch オプションを䜿っお Flutterでstaging/release環境を切り替える
Before lunch オプションを䜿っお Flutterでstaging/release環境を切り替える
 
Flutter のリアクティブ戊略 set state 〜 redux たお゙
Flutter のリアクティブ戊略 set state 〜 redux たお゙Flutter のリアクティブ戊略 set state 〜 redux たお゙
Flutter のリアクティブ戊略 set state 〜 redux たお゙
 

Loose and fluffy_ddd_intro