Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHPでドメイン駆動設計を浸透するためにやったことと現状

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for mashirou1234 mashirou1234
February 16, 2020

 PHPでドメイン駆動設計を浸透するためにやったことと現状

Avatar for mashirou1234

mashirou1234

February 16, 2020
Tweet

More Decks by mashirou1234

Other Decks in Programming

Transcript

  1. ドメイン領域の理解 (わかる版) • ドメイン領域とは? コア・ドメイン • 経営・事業サイドが抱えている 根本的な問題 • 企業が持つ理念と方針

    サブ・ドメイン • 内部的に必要とされる 対外的には認識されない問題 ◦ 今回は認識する必要のない 課題 境界づけられたコンテキスト • 課題として解決したい モノ・コトを共通化する • 5W1H
  2. ドメイン領域の理解 (わかる版) • ドメイン領域とは? コア・ドメイン • 経営・事業サイドが抱えている 根本的な問題 • 企業が持つ理念と方針

    サブ・ドメイン • 内部的に必要とされる 対外的には認識されない問題 ◦ 今回は認識する必要のない 課題 境界づけられたコンテキスト • 課題として解決したい モノ・コトを共通化する • 5W1H 一番重要
  3. アーキテクチャ選定 • Application ◦ Controller • Domain ◦ UseCase ◦

    Entity • Infrastructure ◦ DB(Eloquent) ◦ ExternalAPI ※ExternalInterface
  4. アーキテクチャ選定 • Application ◦ Controller • Domain ◦ UseCase ◦

    Entity • Infrastructure ◦ DB(Eloquent) ◦ ExternalAPI ※ExternalInterface Our Business Logic
  5. ディレクトリ設計 • 基本はPHPのComposerと フレームワークのLaravelに従う • UMLのクラス図で起こす Product ├─app │ ├─Console

    │ ├─Exceptions │ ├─Http │ │ ├─Controllers │ │ ├─Middleware │ │ ├─Models │ │ ├─Session │ │ └─Validation │ └─Providers ├─Domain │ ├─Models │ │ ├─Entities │ │ │ ├─Applications │ │ └─Repositories │ └─Usecase └─Infra   ├─Eloquent   └─Storage
  6. ディレクトリ設計 • 基本はPHPのComposerと フレームワークのLaravelに従う • UMLのクラス図で起こす Product ├─app │ ├─Console

    │ ├─Exceptions │ ├─Http │ │ ├─Controllers │ │ ├─Middleware │ │ ├─Models │ │ ├─Session │ │ └─Validation │ └─Providers ├─Domain │ ├─Models │ │ ├─Entities │ │ │ └─Applications │ │ └─Repositories │ └─Usecase └─Infra   ├─Eloquent   └─Storage
  7. EoF