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
実践DDD ~苦悩と悟り~
Search
Tech Leverages
June 30, 2023
Technology
0
4.2k
実践DDD ~苦悩と悟り~
実践DDD ~苦悩と悟り~
Tech Leverages
June 30, 2023
Tweet
Share
More Decks by Tech Leverages
See All by Tech Leverages
より快適なエラーログ監視を目指して
leveragestech
4
1.2k
絶賛設計中!参画者のエンゲージメントを最大化する体験重視のオンボーディング
leveragestech
1
45
SREが強化するべき組織のケイパビリティ
leveragestech
0
36
DevOps実現のための私たちのSREのあり方
leveragestech
1
40
アウトプット=アウトカムではない世界で開発生産性を考える
leveragestech
4
450
ビジネス貢献を目指して 〜開発者体験から始める開発生産性向上~
leveragestech
2
190
中規模・ミドルTier開発組織におけるDevRelの戦略と実行と成果 - DevRel Guild Conference Mini -
leveragestech
3
290
RealFace技術広報への処方箋 - 技術広報の集い #5 納涼祭!-
leveragestech
0
56
SREチームの立ち上げから1年の取り組みとこれからの課題
leveragestech
1
56
Other Decks in Technology
See All in Technology
SAVEPOINT α版
savepoint
0
620
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
13k
Swift Testingのconfirmationを コードリーディング/Dive into Swift Testing confirmation
laprasdrum
1
220
なぜクラウドサービスで Web コンソールを提供するのか
shuta13
4
2k
標準ライブラリの奥深アップデートを掘り下げよう!
logica0419
2
450
デジタル化・DX推進あるある
y150saya
0
240
四国クラウドお遍路 2024 in 高知 エンディング
yukataoka
0
180
ナレッジグラフとLLMの相互利用
koujikozaki
0
290
20240906_JAWS_Yamanashi_#1_leap_beyond_the_AWS_all_certifications
tsumita
1
270
SORACOMで実現するIoTのマルチクラウド対応 - IoTでのクリーンアーキテクチャの実現 -
kenichirokimura
0
340
Fediverse Discovery Providers overview
andypiper
0
110
Oracle Exadata Database Service(Dedicated Infrastructure):サービス概要のご紹介
oracle4engineer
PRO
0
9.5k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.1k
Optimising Largest Contentful Paint
csswizardry
29
2.8k
Creatively Recalculating Your Daily Design Routine
revolveconf
215
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
25
1.3k
Designing for Performance
lara
604
68k
Learning to Love Humans: Emotional Interface Design
aarron
270
40k
Automating Front-end Workflow
addyosmani
1365
200k
Practical Orchestrator
shlominoach
185
10k
VelocityConf: Rendering Performance Case Studies
addyosmani
322
23k
5 minutes of I Can Smell Your CMS
philhawksworth
201
19k
Side Projects
sachag
451
42k
For a Future-Friendly Web
brad_frost
174
9.3k
Transcript
© 2023 Levtech Department All Rights Reserved. 実践DDD ~苦悩と悟り~ テックフェス2023春
レバテック開発部 前原 宗太朗
© 2023 Levtech Department All Rights Reserved. 自己紹介 前職:
DPS(広告配信)サーバーの開発 入社: 2022/06/01 好きな言語: Rust 趣味: League of Legendsを愛しています 面白いけど人に薦めれないゲームランキング1位(自分調べ) 最近一番泣いたのは、幕張で行われたlolのオフイベのオープニング その前はlol worlds 2022の決勝のオープニング 前原 宗太朗(29)
© 2023 Levtech Department All Rights Reserved. 我々は何 Revtech-PJとは(略称:リバプロ)
レバテックの「データ」「プロダクト」「オペレーション」「システム」を、 再設計(ReDesign)、再構築(ReArchitect)し、 非連続な事業成長へ向けて再始動(Restart)するプロジェクトの総称。 Revtech-PJというプロジェクトやってます
© 2023 Levtech Department All Rights Reserved. 我々は何 Revtech-PJとは(略称:リバプロ)
レバテックの「データ」「プロダクト」「オペレーション」「システム」を、 再設計(ReDesign)、再構築(ReArchitect)し、 非連続な事業成長へ向けて再始動(Restart)するプロジェクトの総称。 Revtech-PJというプロジェクトやってます → 要はレバテックの作り直しをしようとしてます
© 2023 Levtech Department All Rights Reserved. 本日のストーリー 今日話すこと DDDに夢見る前原少年(29)が
DDDを実践し 苦悩の末、悟りの境地に達し 新たなる一歩を踏み出す
© 2023 Levtech Department All Rights Reserved. ドメイン駆動設計とは ドメイン駆動設計とは ソフトウェアの設計と開発プロセスにおいて、ビジネスのニーズや目標(ドメイン)を
中心に据え、それを直接的に反映したソフトウェアを開発するアプローチ 要は、、、 ビジネスの目標を中心に添えましょう 目標を達成するシステムを作りましょう
© 2023 Levtech Department All Rights Reserved. ドメイン駆動設計のイメージ ドメイン駆動設計とは •
内部品質が上がる ◦ ビジネスに理解のある人間と開発者間で共通の言語を使える ▪ 認識の齟齬が起きにくくなる ◦ 目的ごとにシステムが分解される(境界づけられたコンテキスト) ▪ システムが単一責務になるので、認知負荷も下がってアジリティも上がってみんなハッ ピー ▪ システムの境界がわかるので、自然とマイクロサービスを構築できる
© 2023 Levtech Department All Rights Reserved. 実際にやってみた (これだけで5分以上話せる内容なので割愛) ドメイン駆動設計やってみた
サービスの目的 システムの 大目的 システムの中 目的 コアドメインの 特定 流れ
© 2023 Levtech Department All Rights Reserved. ドメイン駆動設計やってみた
© 2023 Levtech Department All Rights Reserved. 苦悩 実際やってみて •
アウトプットがあっているかどうかがわからない ◦ どうなっていれば正解? ◦ 別の切り口もあるんじゃない? ◦ システムが単一目的になっている?疎結合になりそう?
© 2023 Levtech Department All Rights Reserved. 悟り DDDは銀の弾丸ではない 実際やってみて •
ドメインを継続的に改善していく意識が大事 ◦ どうなっていれば正解? ▪ 計測して継続的に改善する ◦ 別の切り口もあるんじゃない? ▪ 開発していく中で、ドメインの解像度を上げていく ◦ システムが単一目的になっている?疎結合になりそう? ▪ 粗くドメインを定義して、モジュラモノリスで構築
© 2023 Levtech Department All Rights Reserved. よかったと思うこと 実際やってみて •
草案となるドメインが定義できた ◦ 開発を進める上でも、議論の土台となる • コアドメインの共通認識がとれた ◦ どの領域が競争優位となり、 自社でリソースを投下して開発すべきか ◦ 逆にどの領域では既製品を使うべきか
© 2023 Levtech Department All Rights Reserved. 本当にやりたかったことは? DDDの夢から覚めて、初心に立ち返る •
品質の向上 ◦ 品質には副特性があって、 達成手段の一つとしてDDDがある 大事なのは、、、 どの品質を、どの水準まで達成したいの? その中でDDDはどの位置付けなの?