20130803 ddd名古屋 ドメイン駆動設計の一部の話とddd名古屋の話

22
ドメイン駆動設計の すごく一部の話と DDD 名古屋の話 DDD 名古屋 #25 2013/08/03 @RKTM

Upload: ryo-rktm

Post on 28-May-2015

375 views

Category:

Technology


2 download

DESCRIPTION

DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

TRANSCRIPT

Page 1: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

ドメイン駆動設計のすごく一部の話とDDD名古屋の話

DDD名古屋 #25

2013/08/03@RKTM

Page 2: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

自己紹介

● Twitter : @RKTM● コミュニティ

– ドメイン駆動設計読書会@名古屋– 名古屋Scala勉強会(休止中)– 名古屋アジャイル勉強会

● 山登りと映画

Page 3: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

今日お話すること

● 「ドメイン駆動設計」って?のすごく一部な話

● DDDの情報源など

● ※オブジェクト指向設計的なことは話さない

Page 4: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

『ドメイン駆動設計』?

● エリック・エヴァンスの『ドメイン駆動設計』 原著は2003年

– http://amzn.to/eLaKbm – 価格: ¥ 5,460– 発売から 10年も経ってるが十分価値がある。

– リアルワールドでの政治や体制や契約やレガシーコードといかに折り合いを付けるかという文脈でも染みる本。

Page 5: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

ソフトウェア開発の現場が抱える問題

Page 6: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

ソフトウェア開発の現場が抱える問題

● “ ソフトウェアを書き始める時、我々は対象を十分に理解しているわけではない。”

– ソフトウェア開発の伝言ゲームの中で、我々開発者は、ビジネスの実態をどれだけ理解しているのか。

– 顧客が話していることをこちら側が間違って理解しているかも。

Page 7: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

ソフトウェア開発の現場が抱える問題

● “一方、すべてのプロジェクトから知識は流出している”

– 業務をヒアリングした上級SE() は上流フェーズ () を終え、得た知識を断片的に設計書に残して離脱。

– プロジェクトが終われば、チームは解体。

– 業務を熟知していた顧客側担当者も別の部署に異動になったり。

– そんな状況で保守要員or二次開発要員or顧客企業がこの先生きのこるには・・。

Page 8: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

ソフトウェア開発の現場が抱える問題

● コードが設計書?– 顧客と話す際に『翻訳』しないといけない

● ほぼコードのような詳細すぎる設計書?– 『ほぼ 1分の 1スケールの地図』は無価値

● コードには表しきれない知識

Page 9: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

そこでドメイン駆動設計ですよ!

Page 10: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

ドメインって?

● domain– 「活動、思考、影響」の分野・領域

● ユーザー/顧客の– ビジネスの領域、活動の領域、業務の領域

● ソフトウェア開発の『対象』●色々な立場から見た色々なドメインがある

–受注した人から見た『商品』–倉庫の人から見た『在庫』

Page 11: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

ドメイン駆動設計って?

● ドメインとドメインロジックにフォーカスする。

●複雑なドメインの設計はモデルに基づく。

Page 12: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

ドメイン駆動設計で大事なこと

● 『適切な地図』としての”ユビキタス言語” (共通言語)

– 顧客と開発者がワンテーブルで話せる『地図』としてのモデル。

– コードレベルにも落としこむ。● レイヤー分け、責務の分割など様々。

–新しく PRJに入ってきた開発者に古参メンバーが説明するのにも使える。

Page 13: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

最初から完璧なモデルは厳しい

● 『モデル探索のうずまき』– http://domainlanguage.com/ddd/whirlpool/– http://www.slideshare.net/kiroh/dddscrum-scrumddd

●完璧なモデルを探求しすぎて実装が遅れても良くない。

– 実装からモデルへのフィードバックも大切。● 「なんか実装しづらい・・・」

Page 14: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

ドメイン駆動設計を学びつつ

●楽しい!–モデルをみながらあれやこれやと議論して

● ドメインの新たな視点が得られる●モデルが洗練されていく

– のが気持ち良い。– 今日の午後に体験できる(?)

Page 15: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

『ドメイン駆動設計』読書会@名古屋

●毎月第3金曜:– 本の内容について議論

●毎月第2金曜:– 本の内容をベースにモデリング・実装

● DDD本も残すところあと 3章半● サイト・ ML

– https://sites.google.com/site/dddnagoya/home

– https://groups.google.com/forum/#!forum/dddnagoya

Page 16: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話
Page 17: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話
Page 18: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話
Page 19: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

今後何しましょう?

● Implementing Domain-Driven Design を読む?(英語)

– www.amazon.co.jp/dp/0321834577● ぐるぐる DDD-Scrumのワークショップ

– https://twitter.com/haradakiro/status/362587742800068609

– https://twitter.com/haradakiro/status/362597685489963009

– https://twitter.com/kawaji_scratch/status/362597981138075651

– https://twitter.com/RKTM/status/362603712893550593

Page 20: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

色々な情報源

● 『 Domain Modeling in a Functional World 』– Scala で関数型を活かした DDDの実装例

– http://www.slideshare.net/debasishg/qconny-12● 『 Domain-Driven Designのエッセンス』

– DDD本全体をまとめてある

– http://www.ogis-ri.co.jp/otc/hiroba/technical/DDDEssence/chap1.html

Page 21: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

色々な情報源

● 『ちいさなオブジェクトでドメインモデルを組み立てる』– オブジェクト指向設計の参考に

– http://www.slideshare.net/masuda220/ss-14905948

● 『ドメイン駆動設計 実践ガイド』– DDD本をなぞりつつ実装例まで記載

– http://www.slideshare.net/masuda220/ss-13428134

● ぐるぐる DDD/Scrum - モデリングと実装のうずまきをまわそう

– DDD と Scrumの組み合わせ– http://www.slideshare.net/kiroh/scrum-andddd-tdc2013distss

Page 22: 20130803 DDD名古屋 ドメイン駆動設計の一部の話とDDD名古屋の話

● ご静聴ありがとうございました。