SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
ドメイン駆動設計の
すごく一部の話と
DDD 名古屋の話
DDD 名古屋 #25
2013/08/03
@RKTM
自己紹介
●
Twitter : @RKTM
●
コミュニティ
– ドメイン駆動設計読書会@名古屋
– 名古屋 Scala 勉強会(休止中)
– 名古屋アジャイル勉強会
●
山登りと映画
今日お話すること
●
「ドメイン駆動設計」って?のすごく一部な
話
●
DDD の情報源など
● ※ オブジェクト指向設計的なことは話さない
『ドメイン駆動設計』?
● エリック・エヴァンスの
『ドメイン駆動設計』 原著は 2003 年
– http://amzn.to/eLaKbm
– 価格: ¥ 5,460
– 発売から 10 年も経ってるが十分価値があ
る。
– リアルワールドでの政治や体制や契約や
レガシーコードといかに折り合いを付けるかと
いう文脈でも染みる本。
ソフトウェア開発の
現場が抱える問題
ソフトウェア開発の現場が抱える問題
● “ ソフトウェアを書き始める時、
我々は対象を十分に理解しているわけでは
ない。”
– ソフトウェア開発の伝言ゲームの中で、我々開発者は、ビジネ
スの実態をどれだけ理解しているのか。
– 顧客が話していることをこちら側が間違って理解しているかも。
ソフトウェア開発の現場が抱える問題
● “ 一方、すべてのプロジェクトから知識は流
出している”
– 業務をヒアリングした上級 SE() は上流フェーズ () を終え、得
た知識を断片的に設計書に残して離脱。
– プロジェクトが終われば、チームは解体。
– 業務を熟知していた顧客側担当者も別の部署に異動になっ
たり。
– そんな状況で保守要員 or 二次開発要員 or 顧客企業がこ
の先生きのこるには・・。
ソフトウェア開発の現場が抱える問題
● コードが設計書?
– 顧客と話す際に『翻訳』しないといけない
●
ほぼコードのような詳細すぎる設計書?
– 『ほぼ 1 分の 1 スケールの地図』は無価値
●
コードには表しきれない知識
そこで
ドメイン駆動設計
ですよ!
ドメインって?
● domain
– 「活動、思考、影響」の分野・領域
●
ユーザー / 顧客の
– ビジネスの領域、活動の領域、業務の領域
●
ソフトウェア開発の『対象』
● 色々な立場から見た色々なドメインがある
– 受注した人から見た『商品』
– 倉庫の人から見た『在庫』
ドメイン駆動設計って?
● ドメインとドメインロジックに
フォーカスする。
● 複雑なドメインの設計はモデルに
基づく。
ドメイン駆動設計で大事なこと
● 『適切な地図』としての
”ユビキタス言語” ( 共通言語)
– 顧客と開発者がワンテーブルで話せる
『地図』としてのモデル。
– コードレベルにも落としこむ。
● レイヤー分け、責務の分割など様々。
– 新しく PRJ に入ってきた開発者に
古参メンバーが説明するのにも使える。
最初から完璧なモデルは厳しい
● 『モデル探索のうずまき』
– http://domainlanguage.com/ddd/whirlpool/
– http://www.slideshare.net/kiroh/dddscru
m-scrumddd
●
完璧なモデルを探求しすぎて実装が遅れて
も良くない。
– 実装からモデルへのフィードバックも大切。
● 「なんか実装しづらい・・・」
ドメイン駆動設計を学びつつ
● 楽しい!
– モデルをみながらあれやこれやと議論して
● ドメインの新たな視点が得られる
● モデルが洗練されていく
– のが気持ち良い。
– 今日の午後に体験できる(?)
『ドメイン駆動設計』読書会@名古屋
● 毎月第3金曜:
– 本の内容について議論
●
毎月第2金曜:
– 本の内容をベースにモデリング・実装
●
DDD 本も残すところあと 3 章半
● サイト・ ML
– https://sites.google.com/site/dddnagoya/home
– https://groups.google.com/forum/#!forum/dddnagoya
今後何しましょう?
● Implementing Domain-Driven Design を読
む?(英語)
– www.amazon.co.jp/dp/0321834577
●
ぐるぐる DDD-Scrum のワークショップ
– https://twitter.com/haradakiro/status/362587742800
068609
– https://twitter.com/haradakiro/status/36259768548
9963009
– https://twitter.com/kawaji_scratch/status/3625979
81138075651
– https://twitter.com/RKTM/status/3626037128935505
93
色々な情報源
● 『 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
色々な情報源
● 『ちいさなオブジェクトでドメインモデルを組み立てる』
– オブジェクト指向設計の参考に
– 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
● ご静聴ありがとうございました。

Más contenido relacionado

Destacado

ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
Mao Ohnishi
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
 

Destacado (20)

ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
Swiftにおけるclassとstructの使い分けをDDDから考える
Swiftにおけるclassとstructの使い分けをDDDから考えるSwiftにおけるclassとstructの使い分けをDDDから考える
Swiftにおけるclassとstructの使い分けをDDDから考える
 
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
 
概念モデリング再入門 + DDD
概念モデリング再入門 + DDD概念モデリング再入門 + DDD
概念モデリング再入門 + DDD
 
A Framework for LightUp Applications of Grani
A Framework for LightUp Applications of GraniA Framework for LightUp Applications of Grani
A Framework for LightUp Applications of Grani
 
ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私
 
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place - ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
ドメイン駆動設計の実践例 - 経営管理基盤 fusion_place -
 
ドメイン駆動設計 at DDD.rb #5
ドメイン駆動設計 at DDD.rb #5ドメイン駆動設計 at DDD.rb #5
ドメイン駆動設計 at DDD.rb #5
 
ドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩みドメイン駆動設計を実践するプログラマーの悩み
ドメイン駆動設計を実践するプログラマーの悩み
 
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
 
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3  ドメイン駆動設計 戦略的設計3週連続DDDその3  ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
 
実践的な設計って、なんだろう?
実践的な設計って、なんだろう?実践的な設計って、なんだろう?
実践的な設計って、なんだろう?
 
ちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てるちいさなオブジェクトでドメインモデルを組み立てる
ちいさなオブジェクトでドメインモデルを組み立てる
 
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
 
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)3週連続DDDその2  深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
 
ドメイン駆動設計入門
ドメイン駆動設計入門ドメイン駆動設計入門
ドメイン駆動設計入門
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 

Más de Ryo RKTM

20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い
Ryo RKTM
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
Ryo RKTM
 
20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋
Ryo RKTM
 
20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment
Ryo RKTM
 
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
Ryo RKTM
 
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
Ryo RKTM
 
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
Ryo RKTM
 
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
Ryo RKTM
 

Más de Ryo RKTM (14)

NGK2014 ヤマオススメ
NGK2014 ヤマオススメNGK2014 ヤマオススメ
NGK2014 ヤマオススメ
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
 
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
 
Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介Play framework 2.0のちょっとした紹介
Play framework 2.0のちょっとした紹介
 
20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋
 
20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋
 
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
 
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
 
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
 
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
 
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
 
名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料
 

Último

Último (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

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