メインコンテンツまでスキップ

「clean-architecture」タグのついた11記事

全てのタグを見る

Laravel × DDD × クリーンアーキテクチャ実践入門

Laravel 未経験でも大丈夫。Vue/React など SPA 開発者を対象に、API バックエンドとしての Laravel とドメイン駆動設計 (DDD)・クリーンアーキテクチャをステップバイステップで解説する全 20 章のガイド。値オブジェクト・エンティティ・集約・リポジトリの理論から、Laravel プロジェクトでの実装パターン・トランザクション・テスト・認証までを網羅します。

Laravel での DDD アーキテクチャ — 4 層構成と依存性逆転

従来の Laravel MVC とクリーンアーキテクチャを比較し、プレゼンテーション / アプリケーション / ドメイン / インフラの 4 層構成、依存性逆転の原則 (DIP)、ディレクトリ構成、Eloquent Model とドメインエンティティの分離を解説します。

ドメインサービス — エンティティに属さないビジネスロジック

DDD のドメインサービス (Domain Service) を割引計算・在庫引当・送料計算の実装例で解説。複数集約にまたがりインフラ非依存のロジックを配置する判断基準、ユースケース (アプリケーションサービス) との違い、貧血ドメインモデルを避ける設計指針をまとめます。

なぜ DDD か — Fat Controller / Fat Model の限界

従来の Laravel MVC で複雑なビジネスロジックを扱うと生じる Fat Controller・Fat Model・ロジック散在の問題を整理し、DDD を採用することで得られる「ビジネスルールの明確化・変更対応力・テスタビリティ・チームコミュニケーション」の 4 つのメリットを解説します。

まとめと次のステップ — DDD の段階的導入

本ガイド全 20 章の要点 (DDD の戦術的設計 / クリーンアーキテクチャ / 実践テクニック / 総合実践) を整理し、値オブジェクト → ユースケース層 → リポジトリ → ドメインイベントという段階的導入のロードマップ、よくある質問、推奨書籍・コミュニティ・学習パスをまとめます。

ユースケース層の設計 — Command / Query 分離と DTO

アプリケーション層 (ユースケース層) の設計を解説。ドメインオブジェクトの調整・トランザクション管理・入出力変換の責務、CQS 原則による Command / Query 分離、Command オブジェクトと DTO、Query 専用サービス、単一責任などの設計指針をまとめます。

実践:注文システムの実装 — 全層を貫く実装例

これまで学んだ DDD・クリーンアーキテクチャを統合し、注文作成・確定 API を題材に 4 層 (プレゼンテーション / アプリケーション / ドメイン / インフラ) を実装。各層の責務、データ変換の流れ、層別テスト (ドメイン / UseCase / Repository) を通して全体像をまとめます。

集約 — 整合性の境界と集約ルート

DDD の集約 (Aggregate) を Order 集約を題材に解説。集約ルートを唯一のアクセス起点とする理由、集約境界の決め方 (ライフサイクル / 整合性 / トランザクション / 参照)、即時整合性と結果整合性の使い分け、集約間は ID 参照、スナップショットの考え方をまとめます。