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