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
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
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.9k
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
240
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
290
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
300
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
小さなアプリを作って公開するまで
onozaty
0
160
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
200
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
250
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
420
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
WCS-LA-2024
lcolladotor
0
990
ラッコキーワード サービス紹介資料
rakko
5
5.8M
What the history of the web can teach us about the future of AI
inesmontani
PRO
3
800
Amusing Abliteration
ianozsvald
1
390
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Paper Plane
katiecoart
PRO
5
55k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
Un-Boring Meetings
codingconduct
0
490
Speed Design
sergeychernyshev
33
2.2k
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