Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ユビキタス言語の強力さをもっと知ってほしい
Search
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
970
Other Decks in Programming
See All in Programming
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
120
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.4k
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
400
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
4
670
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
340
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
640
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.8k
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
760
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
110
業務時間外もAIに働いてもらう話
colorful12
3
10k
Webの地図
yosuke_furukawa
PRO
3
2.4k
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.6k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Making Projects Easy
brettharned
120
6.7k
How STYLIGHT went responsive
nonsquared
100
6.3k
How to Talk to Developers About Accessibility
jct
2
540
Raft: Consensus for Rubyists
vanstee
141
7.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
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