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

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

💡 ミルフィーユのように重ねて整理する、ソフトウェアの定番設計
📌 このページのポイント
レイヤードアーキテクチャ(3層構成) プレゼンテーション層 画面表示・ユーザー操作の受付 ビジネスロジック層 業務ルール・計算・判定 データアクセス層 データベースとの読み書き ユーザーに近い データに近い 依存の方向 上の層は下の層を使えるが、下の層は上の層を知らない
レイヤードアーキテクチャのイメージ
ひよこ ひよこ

レイヤードアーキテクチャって何なの?

ペンギン先生 ペンギン先生

ソフトウェアを「層」に分けて設計する方法だよ。たとえばケーキのスポンジ・クリーム・フルーツみたいに、それぞれ役割が違う層を積み重ねるイメージだね。

ひよこ ひよこ

具体的にはどんな層があるの?

ペンギン先生 ペンギン先生

よくある3層構成だと、一番上が「プレゼンテーション層」で画面表示を担当、真ん中が「ビジネスロジック層」で計算や判定を担当、一番下が「データアクセス層」でデータベースとのやり取りを担当するよ。

ひよこ ひよこ

層に分けると何がうれしいの?

ペンギン先生 ペンギン先生

変更の影響範囲が小さくなるんだ。たとえば画面のデザインを変えたいときはプレゼンテーション層だけ直せばいい。ビジネスロジックやデータベースに触る必要がないから、安全に変更できるよ。

ひよこ ひよこ

層と層のルールってあるの?

ペンギン先生 ペンギン先生

大事なルールが一つ。上の層は下の層を使えるけど、下の層は上の層を知らない。プレゼンテーション層がビジネスロジック層を呼ぶのはOKだけど、逆はNGなんだ。この一方通行の依存がコードの整理に効くよ。

ひよこ ひよこ

デメリットはないの?

ペンギン先生 ペンギン先生

あるよ。層を通過するたびにデータの変換が入るから、層が多すぎるとパフォーマンスが落ちたり、コードの量が増えたりする。「ただ下の層に渡すだけ」の中間層ができちゃう問題は、よく議論されるポイントだね。

ひよこ ひよこ
ペンギン先生 ペンギン先生

クリーンアーキテクチャはレイヤードアーキテクチャを進化させたものと言えるね。レイヤードは上から下への一方通行だけど、クリーンアーキテクチャは依存の方向を内側(ビジネスルール)に向ける。「依存性逆転の原則」を活用して、より変更に強い構造にしているんだよ。

ひよこ ひよこ

どういうプロジェクトに向いているの?

ペンギン先生 ペンギン先生

業務システムやWebアプリのバックエンドには定番中の定番だよ。チームメンバーが理解しやすく、役割分担もしやすい。ただし、リアルタイム処理やマイクロサービスなど複雑な要件では別のアーキテクチャの方が合う場合もあるから、プロジェクトの特性に合わせて選ぶことが大事だね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「レイヤードアーキテクチャ」って出てきたら「ソフトウェアを役割ごとの層に分けて積み重ねる設計」と思えればだいたいOK!
📖 おまけ:英語の意味
「Layered Architecture」 = 層状の設計構造
💬 建築の「層(Layer)」から来ていて、各階が別の役割を持つビルのイメージだよ
← 用語集にもどる