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
5.3k
実践DDD ~苦悩と悟り~
実践DDD ~苦悩と悟り~
Tech Leverages
June 30, 2023
Tweet
Share
More Decks by Tech Leverages
See All by Tech Leverages
未来を拓くAI技術〜エージェント開発とAI駆動開発〜
leveragestech
2
200
コンテキストエンジニアリングで変わるAI活用 リファクタリングワークフローの実践から学んだ形式知
leveragestech
0
110
AirflowでDataformを制御するポイント
leveragestech
0
100
古き良き Laravel のシステムは関数型スタイルでリファクタできるのか
leveragestech
1
1.2k
リファクタリングいつやるの? 〜依存の整理〜
leveragestech
0
120
ディメンショナルモデリングを軽く語る
leveragestech
1
5.1k
アクターモデルによる効率的な分散システム設計
leveragestech
0
4.9k
Terraform による運用効率化の取り組みと最新のテストアプローチの紹介
leveragestech
0
4.9k
OpenFGAで拓く次世代認可基盤 〜予告編〜
leveragestech
0
4.9k
Other Decks in Technology
See All in Technology
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
0
260
コスト削減の基本の「キ」~ コスト消費3大リソースへの対策 ~
smt7174
2
320
ソフトウェア エンジニアとしての 姿勢と心構え
recruitengineers
PRO
26
12k
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
4
2.5k
PRDの正しい使い方 ~AI時代にも効く思考・対話・成長ツールとして~
techtekt
PRO
0
330
LLM翻訳ツールの開発と海外のお客様対応等への社内導入事例
gree_tech
PRO
0
430
異業種出身エンジニアが気づいた、転向して十数年経っても変わらない自分の武器とは
macnekoayu
0
260
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
150
生成AI時代のデータ基盤
shibuiwilliam
4
2.1k
ライブサービスゲームQAのパフォーマンス検証による品質改善の取り組み
gree_tech
PRO
0
430
実践データベース設計 ①データベース設計概論
recruitengineers
PRO
4
2k
生成AI時代に必要な価値ある意思決定を育てる「開発プロセス定義」を用いた中期戦略
kakehashi
PRO
1
250
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Building Adaptive Systems
keathley
43
2.7k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Code Reviewing Like a Champion
maltzj
525
40k
Agile that works and the tools we love
rasmusluckow
330
21k
Statistics for Hackers
jakevdp
799
220k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
570
Raft: Consensus for Rubyists
vanstee
140
7.1k
What's in a price? How to price your products and services
michaelherold
246
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
111
20k
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はどの位置付けなの?