Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ユビキタス言語の強力さをもっと知ってほしい
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
plavelo
October 08, 2018
Programming
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ユビキタス言語の強力さをもっと知ってほしい
plavelo
October 08, 2018
More Decks by plavelo
See All by plavelo
コード解析でFlutterプロジェクトを見える化する
plavelo
1
290
AndroidStudio2.0でアプリ爆速開発 / improving the development speed with AndrodStudio 2
plavelo
0
960
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
プロポーザルを書いてもらう
pvcresin
0
460
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
Building a Meta Ray-Ban display app
akkeylab
0
110
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
550
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
200
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
270
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
200
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
4.3k
今さら聞けない .NET CLI
htkym
0
190
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
170
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
Done Done
chrislema
186
16k
It's Worth the Effort
3n
188
29k
Chasing Engaging Ingredients in Design
codingconduct
0
260
A better future with KSS
kneath
240
18k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
250
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
170
Everyday Curiosity
cassininazir
0
270
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
Producing Creativity
orderedlist
PRO
348
40k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Transcript
DDDのユビキタス言語の 強力さをもっと知ってほしい @plavelo
ドメイン駆動設計、知ってますか? • アプリ系の勉強会でも最近ちらほら見かける印象 • ユビキタス言語について掘り下げている発表をあまり見かけない ドメイン駆動設計で大事なことは • ソフトウェアで解決する対象の問題領域(ドメイン)の知識を、 知識を表現したモデル(ドメインモデル)の実装と結びつける •
ドメインを理解している人(ドメインエキスパート)と開発者が協力し、 ユビキタス言語を使ってドメインモデルの探求を繰り返す • チーム全員が普段の会話でユビキタス言語を使って話す
ユビキタス言語の作り方の例 • 要件を箇条書きにして、簡潔なものにリファクタリングしていく コツ: 普段から話す言葉になるので、 テンポが良くて簡潔な言葉を探そう 最初から完璧な言語・モデルを作ろうとしない エンジニアしか分からない言葉は避けよう できるだけみんなで作ろう
ユビキタス言語は強力な設計ツール • ユビキタス言語を使うとこんないいことがあります • 時間がないのでデメリットや、 そもそもDDDが向いていないパターンなどについては話しません
普段の会話がそのまま設計になる • ユビキタス言語を使ったドメインモデルと、その実装は結びついている • ユビキタス言語でチームで話したことが、そのまま設計となる • 普段の会議の時間が、そのまま設計する時間になるので 設計や設計のレビューも普段の会議中にできて一石二鳥
改善のフィードバックループが生まれる • ユビキタス言語を使ったドメインモデルと、その実装は結びついている • 普段の会話で得た気づき・改善は、ダイレクトに実装の改善となる • 実装で得た気づき・改善は、普段の会話(ユビキタス言語)の改善になる • 話せば話すほどダイレクトにコードが改善されていく 改善の
フィードバックループ
Slack上で日本語で設計の相談ができる • チャット上で日本語で設計の相談ができる • 図や実際のコードを見せなくても、日本語の会話だけで 設計に関するコミュニケーションができてしまう • コードを見せるより気楽なので設計に関するコミュニケーションが増え 設計の品質が向上する •
エンジニア以外がいるチャット部屋とかでも話せるため メンバー全員の理解が進んでいく
コードレビューの質が上がる • 普段の会話で設計についてのコミュニケーションが増えるため コードレビューする頃には、レビュワーはロジックのコードについて 大体の流れや構造を把握している状態になっている • コードレビューでコードの本質的な部分をチェックできるようになり コードレビュー時に、バグや間違いが見つかりやすくなる
コードの引き継ぎがしやすくなる • 普段の会話で、開発者は設計について大体の認識を 持った状態になっている • 新しくチームに入った人も、ユビキタス言語を理解すれば 大体の構造はかんたんに理解できる • コードの引き継ぎがしやすくなる •
他人の書いたコードを修正しやすくなる
まとめ • ユビキタス言語は強力な設計ツール! • もっとみんなで掘り下げたい • 書籍「エリック・エヴァンスのドメイン駆動設計」には、 ここまで書いたことを実現するための設計のパターンが たくさん載ってるので興味があれば読んでみてね •
↑の本は鈍器のように厚いのでちょっと、という人は InfoQで配布されているDomain Driven Design Quicklyもおすすめ
ドメイン駆動設計のおすすめ文献 • エリック・エヴァンスのドメイン駆動設計 ◦ DDDのすべての基本がここにある、と思うけど これだけ読んでも実際何をしたらいいのかわからないと思うので、別の本も併せて読むのがおすすめ ◦ https://www.amazon.co.jp/dp/4798121967 • Domain-Driven
Design(ドメイン駆動設計) Quickly 日本語版 ◦ 80ページぐらいで読みやすい。チームメンバーにおすすめするならまずこの本かもしれない ◦ https://www.infoq.com/jp/minibooks/domain-driven-design-quickly • 実践ドメイン駆動設計 ◦ 実際にどう実装していくかが解説されている。 Eric本に無かったドメインイベントについての説明もあり ◦ https://www.amazon.co.jp/dp/479813161X • DDD難民に捧げるDomain-Driven Designのエッセンス ◦ Eric本の日本語版出版以前に書かれた記事だがうまくまとまっている、おすすめ ◦ https://www.ogis-ri.co.jp/otc/hiroba/technical/DDDEssence/chap1.html