Slide 1

Slide 1 text

〜 Laravel で気づいた勘違い 〜 DDD とぼんやり向き合ってみる ミヤギ

Slide 2

Slide 2 text

特徴 ・2023 年 6 月 BABY JOB に入社 ・沖縄 からフルリモートで参画 ・保活サービス を開発中 ・BUMP OF CHICKEN が好き ・PM と保育園のお弁当に挑戦中 自己紹介 宮城 築 ミヤギ@3歳児の父エンジニア|BABYJOB @KizuMiyagi

Slide 3

Slide 3 text

私自身の DDD 経験値 エンジニア暦 9 年(2015 年新卒) ● MVC 8 年 ● DDD 1 年 (=PHP/Laravel暦)

Slide 4

Slide 4 text

つまり 理解が間違ってる可能性大です! 多めにみてください!(言い訳)

Slide 5

Slide 5 text

導入

Slide 6

Slide 6 text

この話は Laravel とどう関係があるの?

Slide 7

Slide 7 text

引用:https://laravel-meetup-okinawa.connpass.com/event/314824/ Laravel MeetUp Okinawa 第16回@ギークハウス沖縄 のイベントページ

Slide 8

Slide 8 text

この文言をちゃんと見たことがありませんでした

Slide 9

Slide 9 text

Laravel で DDD やってるので ちょっと向き合ってみます (つまり Laravel の話はほとんど出てきません)

Slide 10

Slide 10 text

知識のおさらい

Slide 11

Slide 11 text

MVC(モデル・ビュー・コントローラー) ChatGPT先生に聞いてみました

Slide 12

Slide 12 text

MVC(モデル・ビュー・コントローラー)

Slide 13

Slide 13 text

MVC(モデル・ビュー・コントローラー)

Slide 14

Slide 14 text

MVC(モデル・ビュー・コントローラー)

Slide 15

Slide 15 text

MVC(モデル・ビュー・コントローラー) ざっくりいうと ユーザー側 と ロジック側 と コネクタ の 三つに責務を分ける設計思想

Slide 16

Slide 16 text

DDD(ドメイン駆動設計) こちらもChatGPT先生に聞いてみました

Slide 17

Slide 17 text

DDD(ドメイン駆動設計)

Slide 18

Slide 18 text

DDD(ドメイン駆動設計)

Slide 19

Slide 19 text

DDD(ドメイン駆動設計) ざっくりいうと ビジネスで解決したいこと(≒ドメイン)を そのまま反映する設計思想

Slide 20

Slide 20 text

ここで沸いた疑問

Slide 21

Slide 21 text

私自身の DDD 経験値 エンジニア暦 9 年(2015 年新卒) ● MVC 8 年 ● DDD 1 年 (=PHP/Laravel暦) DDD vs MVC この構図ってあってる・・?

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

ざっくりいうと 複雑なデータを適切に構造化し データの整合性を優先する設計思想

Slide 26

Slide 26 text

DDD(ドメイン駆動設計) vs DDD (データ駆動設計) らしい

Slide 27

Slide 27 text

自分なりに整理し直してみる ビュー(V) モデル(M) コントローラー(C) ドメイン層 インフラ層 アプリケーション層 MVC と DDD (ドメイン駆動設計) の共存

Slide 28

Slide 28 text

ということで訂正します🙇

Slide 29

Slide 29 text

私自身の DDD 経験値(最新版) エンジニア暦 9 年(2015 年新卒) ● データ駆動設計 8 年 ● ドメイン駆動設計 1 年 (=PHP/Laravel暦) DDD —

Slide 30

Slide 30 text

・・・本当に?🤔

Slide 31

Slide 31 text

引用:LaravelにDDDを導入する (https://qiita.com/nishiumidaina/items/61921c9e2fc9b4f5ec6e)

Slide 32

Slide 32 text

引用:LaravelにDDDを導入する (https://qiita.com/nishiumidaina/items/61921c9e2fc9b4f5ec6e) V C M あってそう

Slide 33

Slide 33 text

まとめ

Slide 34

Slide 34 text

● Laravel は MVC のWebアプリケーション開発用フレームワーク ○ 疑ってごめんなさい、勉強不足でごめんなさい 🙇 ● MVC と DDD は共存できる (というか共存してた) ○ 勘違いが解消されました 🎉 まとめ

Slide 35

Slide 35 text

ご清聴ありがとうございました Special Thanks ! ChatGPT