5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ADR(Action-Domain-Responder)について簡潔にまとめてみた

Posted at

はじめに

ADRというソフトウェアアーキテクチャパターンがMVCよりも修正がしやすくて再利用性が高いということで調べてみたら結構良さそうだったからどんなものか忘れないために備忘録として記載する。

ADRとは

Paul M. Jonesさんという方が提案したソフトウェアアーキテクチャパターンの一つです。
MVCと違って1クラス1アクションクラスなのでクラスが持つ責務がはっきりしているため、再利用性が高くて保守もしやすいです。

簡単な流れ

HTTPリクエストから入力を収集(Action)

ドメインを呼び出して入力情報を渡す(Action)

結果を処理する(Domain)

HTTP応答を作成(Responder)

レスポンスを返す(Controller)

Action

HTTPリクエストを受け取り、Domainからの処理結果をResponderに返す役割を果たします。
この中では特に処理を行わずにDomainやResoponderに値を渡したりする役割です。
みんなの橋渡し的な存在ですかね。
Domain層で例外があったとしてもActionでは処理をしないです。
Domainで独自の例外処理を行なって結果をActionに返すイメージです。

Domain

渡されたHTTPリクエストに対して必要な処理を行い、結果を返します。
ビジネスロジックはこちらに書きます。
「この処理はDomainか?」と悩んでしまう場合があるかもですが、
ストレージに触れるものはDomainに書けとだけでも覚えておきましょう!

Responder

Domainの処理結果を受け取り、必要な準備を行ってHTTP応答を構築するレスポンスを返します。

参考

ADRという考えを取り入れてみて
Action–domain–responder
LaravelでのADR(Action-domain-responder)実装

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?