【れいやーどあーきてくちゃ】

レイヤードアーキテクチャ とは?

最終更新:
💡 画面・業務・データを、役割ごとの層に整理する

ソフトウェアを画面、業務ルール、データアクセスなどの責務ごとの層に分ける設計。層の間に利用・依存のルールを設け、変更の影響を整理する。論理的な層分けと、別のサーバーへ配置することは同じではない。

📌 このページのポイント
役割ごとの層:閉じた3層の例画面の層表示・操作を受け付ける業務ルールの層注文金額などを判断するデータアクセスの層データを読み書きする矢印:上の層が下の層を利用層を分けても、別サーバーとは限らないよ
役割と利用方向を示す3層の例。さらに下の層を利用できる構成もあり、層の数や配置は設計によります。
ひよこ ひよこ
どんな役割に、分けるの?
ペンギン先生 ペンギン先生
たとえば画面の表示、注文金額などの業務ルール、データの読み書きだよ。これをプレゼンテーション層、ビジネスロジック層、データアクセス層と呼ぶ例がある。層の数や名前は設計によるんだ。
ひよこ ひよこ
必ず、隣の層しか呼べない?
ペンギン先生 ペンギン先生
隣の下位層だけを利用する閉じた構成と、さらに下の層も利用できる開いた構成があるよ。この図は閉じた3層の例。どの層を使えるかを決め、ルールを守ることが大切なんだ。
ひよこ ひよこ
層ごとに、サーバーが必要?
ペンギン先生 ペンギン先生
必要とは限らないよ。層はコードの役割を分ける論理的な区分で、物理的な配置はtierと呼んで区別する。複数の層を、一つのアプリやサーバーへまとめて配置できるんだ。
ひよこ ひよこ
画面を変えても、他は直さなくてよい?
ペンギン先生 ペンギン先生
境界が適切なら影響を限定しやすいよ。ただし画面の変更が新しい業務ルールやデータ項目を必要とすれば、他の層も変わる。層があるだけで、すべての変更が独立になるわけではないね。
ひよこ ひよこ
クリーンアーキテクチャとは、どう違う?
ペンギン先生 ペンギン先生
従来の例では画面から業務、データアクセスへ依存する。クリーンアーキテクチャでは業務の中心を守るため、インターフェースなどで依存の方向を変えるよ。単に層が多い・新しいという違いではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「レイヤードアーキテクチャ」って出てきたら「ソフトウェアを役割ごとの層に分けて整理する設計」と思えばだいたいOK!
📖 おまけ:英語の意味
「Layered architecture」 = 層に分けた設計
💬 Layerは層。ケーキの層のように、役割の違う部分を重ねて整理するイメージだよ。

参考資料

← 用語集にもどる