ADR(Action-Domain-Responder)パターン
Last Update: 2019.12.09 02:52:29
MVC を ウェブアプリケーション開発に適用した MVC2、MVC2で問題となるファットコントローラー、ファットモデル、ModelってDB操作?的なものを解決するためのパターン。 MVC2をより洗礼させたものなので理解はしやすい。
Action
MVC2のControllerに相当する。 1つのリソースに対して1つのアクションが対応する。 1つのアクションは1つのクラスとして実装する。
コントローラーが複数のリソースへの要求に対応するのに対して1つのリソースに対して1アクション。 クラスの数は増えるがファットコントローラー化を防ぐことができる。
コントローラー分割についてはRuby On Rails 開発者のDHHの考え方はとても参考になる。
Domain
MVC2のModelと同義。
MVC2のModelといえば、データベースのTable操作のクラスを想像してしまうが 本来のModelはビジネスロジックを表していて特定のテーブルクラスを指すものではない。
なので、MVC2のModelとDomainは同義。
- MVCのモデルの誤解を解くためにフレームワークを例に挙げようとしたら誤解してもしゃーないなって思った - Qiita
- お前らがModelと呼ぶアレをなんと呼ぶべきか。近辺の用語(EntityとかVOとかDTOとか)について整理しつつ考える - Qiita
Responder
MVC2のViewに相当するものだが範囲がViewより広い。 ViewではHTTPレスポンスボディのみを扱い、ステータスコード、HTTPレスポンスヘッダの生成は コントローラーの役割だがResponderではステータスコード、HTTPレスポンスヘッダ、HTTPレスポンスボディを含めて扱う。
- ADRパターン実践時のトレードオフとの向き合い方|PHP|開発ブログ|株式会社Nextat(ネクスタット)
- "ビュー"を考えるためのADRパターン @ laravel.osaka #10 - Speaker Deck