PHP

DDD ✖️ Laravel

Laravel

 

  • Laravel におけるリポジトリ実装のポイント
    ・インターフェイスによるリポジトリ抽象化
    ・リポジトリでの複数テーブル
    ・リポジトリでのPaginator
  • Laravel で Service 層を取り入れるときに検討したいこと
    ・Service // Serviceには2種類あって厳格に区別されるよ
    ・アプリケーションService(ユースケース) // アプリの単機能モジュールだよ。コントローラでこれを実行するよ
    ・ドメインService // 仕様による閾値・バリデーション。→コードが仕様を語るよ
  • Laravelでドメイン駆動設計(DDD)を実践し、Eloquent Model依存の設計から脱却する
    ・Entity // 単にModelではないよ。例として、userテーブルがあり権限によって管理者と利用者で振る舞いが異なるなら。→ Entityは管理者、利用者と2つのEntityを作るよ。
    ・ViewObject(値オブジェクト) // 値のバリデーションや制約定義オブジェクト。例としてメールアドレスなど。コードが仕様を雄弁に語るよ
    ・アプリケーションService(ユースケース) の実装

 

DDDは改修や拡張しやすさを目指したシステム設計のノウハウであってそれが大正義ではなくて。

当然パターンは崩して利用して良いということ🐱🌻

予算がなくて短納期だったらEntity, ViewObject実装は省くとか。

 

リポジトリの注意

  • 機械的にCRUDを実装しない
    削除がない場合はremove()メソッドを実装しない

 

ValueObjectの注意

  • 制約があるものだけValueObjectを生成する

 

Entityの注意

  • 一覧の取得はEntityを経由せずに、Queryで行い連想配列で扱う

 

[YouTube] IT速報 よわよわエンジニア優さん

フリーターから正社員 インフラは2か月!

童貞を救いたい ナンパのすすめ 最強ナンパ師優さん

恥ずかしい?それ、ゴミだからwww

失恋の話 ニューハーフだけど彼氏になった話 ナンパ再開で思うこと

LGBTの就職戦略 トランス・X ジェンダー向け ( トランスジェンダー)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)