Slide 1

Slide 1 text

© 2023 Levtech Department All Rights Reserved. 実践DDD ~苦悩と悟り~ テックフェス2023春 レバテック開発部 前原 宗太朗

Slide 2

Slide 2 text

© 2023 Levtech Department All Rights Reserved. 自己紹介
 
 前職: DPS(広告配信)サーバーの開発 
 入社: 2022/06/01
 好きな言語: Rust
 趣味: League of Legendsを愛しています 
 面白いけど人に薦めれないゲームランキング1位(自分調べ)
 最近一番泣いたのは、幕張で行われたlolのオフイベのオープニング
 その前はlol worlds 2022の決勝のオープニング
 前原 宗太朗(29)

Slide 3

Slide 3 text

© 2023 Levtech Department All Rights Reserved. 我々は何
 Revtech-PJとは(略称:リバプロ)
 
 レバテックの「データ」「プロダクト」「オペレーション」「システム」を、
 再設計(ReDesign)、再構築(ReArchitect)し、
 非連続な事業成長へ向けて再始動(Restart)するプロジェクトの総称。
 Revtech-PJというプロジェクトやってます

Slide 4

Slide 4 text

© 2023 Levtech Department All Rights Reserved. 我々は何
 Revtech-PJとは(略称:リバプロ)
 
 レバテックの「データ」「プロダクト」「オペレーション」「システム」を、
 再設計(ReDesign)、再構築(ReArchitect)し、
 非連続な事業成長へ向けて再始動(Restart)するプロジェクトの総称。
 Revtech-PJというプロジェクトやってます → 要はレバテックの作り直しをしようとしてます

Slide 5

Slide 5 text

© 2023 Levtech Department All Rights Reserved. 本日のストーリー 今日話すこと
 DDDに夢見る前原少年(29)が 
 DDDを実践し
 苦悩の末、悟りの境地に達し 
 新たなる一歩を踏み出す


Slide 6

Slide 6 text

© 2023 Levtech Department All Rights Reserved. ドメイン駆動設計とは ドメイン駆動設計とは
 ソフトウェアの設計と開発プロセスにおいて、ビジネスのニーズや目標(ドメイン)を 中心に据え、それを直接的に反映したソフトウェアを開発するアプローチ
 
 要は、、、
 ビジネスの目標を中心に添えましょう
 目標を達成するシステムを作りましょう


Slide 7

Slide 7 text

© 2023 Levtech Department All Rights Reserved. ドメイン駆動設計のイメージ ドメイン駆動設計とは
 ● 内部品質が上がる
 ○ ビジネスに理解のある人間と開発者間で共通の言語を使える 
 ■ 認識の齟齬が起きにくくなる 
 
 ○ 目的ごとにシステムが分解される(境界づけられたコンテキスト) 
 ■ システムが単一責務になるので、認知負荷も下がってアジリティも上がってみんなハッ ピー
 ■ システムの境界がわかるので、自然とマイクロサービスを構築できる 


Slide 8

Slide 8 text

© 2023 Levtech Department All Rights Reserved. 実際にやってみた (これだけで5分以上話せる内容なので割愛) ドメイン駆動設計やってみた
 サービスの目的 システムの 大目的 システムの中 目的 コアドメインの 特定 流れ

Slide 9

Slide 9 text

© 2023 Levtech Department All Rights Reserved. ドメイン駆動設計やってみた


Slide 10

Slide 10 text

© 2023 Levtech Department All Rights Reserved. 苦悩 実際やってみて
 ● アウトプットがあっているかどうかがわからない
 ○ どうなっていれば正解? 
 ○ 別の切り口もあるんじゃない? 
 ○ システムが単一目的になっている?疎結合になりそう? 


Slide 11

Slide 11 text

© 2023 Levtech Department All Rights Reserved. 悟り DDDは銀の弾丸ではない 実際やってみて
 ● ドメインを継続的に改善していく意識が大事
 ○ どうなっていれば正解? 
 ■ 計測して継続的に改善する 
 ○ 別の切り口もあるんじゃない? 
 ■ 開発していく中で、ドメインの解像度を上げていく 
 ○ システムが単一目的になっている?疎結合になりそう? 
 ■ 粗くドメインを定義して、モジュラモノリスで構築 


Slide 12

Slide 12 text

© 2023 Levtech Department All Rights Reserved. よかったと思うこと 実際やってみて
 ● 草案となるドメインが定義できた
 ○ 開発を進める上でも、議論の土台となる 
 ● コアドメインの共通認識がとれた
 ○ どの領域が競争優位となり、 
 自社でリソースを投下して開発すべきか 
 ○ 逆にどの領域では既製品を使うべきか 


Slide 13

Slide 13 text

© 2023 Levtech Department All Rights Reserved. 本当にやりたかったことは?   DDDの夢から覚めて、初心に立ち返る
 ● 品質の向上
 ○ 品質には副特性があって、 
 達成手段の一つとしてDDDがある 
 
 大事なのは、、、
 どの品質を、どの水準まで達成したいの?
 その中でDDDはどの位置付けなの?