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
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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ユビキタス言語の強力さをもっと知ってほしい
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
120
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
740
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
110
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
5.5k
パーソナライズPodcastを作った話
repunit11
0
130
Domain-Driven Transformation
hschwentner
2
2.3k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
320
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
21
21k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The browser strikes back
jonoalderson
0
1.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
The Invisible Side of Design
smashingmag
301
52k
The SEO Collaboration Effect
kristinabergwall1
1
590
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
400
Making the Leap to Tech Lead
cromwellryan
135
10k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Technical Leadership for Architectural Decision Making
baasie
3
600
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
510
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