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

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

公開:
💡 ミルフィーユのように重ねて整理する、ソフトウェアの定番設計
📌 このページのポイント
レイヤードアーキテクチャ(3層構成) プレゼンテーション層 画面表示・ユーザー操作の受付 ビジネスロジック層 業務ルール・計算・判定 データアクセス層 データベースとの読み書き ユーザーに近い データに近い 依存の方向 上の層は下の層を使えるが、下の層は上の層を知らない
レイヤードアーキテクチャのイメージ
ひよこ ひよこ
レイヤードアーキテクチャって何なの?
ペンギン先生 ペンギン先生
ソフトウェアを「層」に分けて設計する方法だよ。たとえばケーキのスポンジ・クリーム・フルーツみたいに、それぞれ役割が違う層を積み重ねるイメージだね。
ひよこ ひよこ
具体的にはどんな層があるの?
ペンギン先生 ペンギン先生
よくある3層構成だと、一番上が「プレゼンテーション層」で画面表示を担当、真ん中が「ビジネスロジック層」で計算や判定を担当、一番下が「データアクセス層」でデータベースとのやり取りを担当するよ。
ひよこ ひよこ
層に分けると何がうれしいの?
ペンギン先生 ペンギン先生
変更の影響範囲が小さくなるんだ。たとえば画面のデザインを変えたいときはプレゼンテーション層だけ直せばいい。ビジネスロジックやデータベースに触る必要がないから、安全に変更できるよ。
ひよこ ひよこ
層と層のルールってあるの?
ペンギン先生 ペンギン先生
大事なルールが一つ。上の層は下の層を使えるけど、下の層は上の層を知らない。プレゼンテーション層がビジネスロジック層を呼ぶのはOKだけど、逆はNGなんだ。この一方通行の依存がコードの整理に効くよ。
ひよこ ひよこ
デメリットはないの?
ペンギン先生 ペンギン先生
あるよ。層を通過するたびにデータの変換が入るから、層が多すぎるとパフォーマンスが落ちたり、コードの量が増えたりする。「ただ下の層に渡すだけ」の中間層ができちゃう問題は、よく議論されるポイントだね。
ひよこ ひよこ
ペンギン先生 ペンギン先生
クリーンアーキテクチャはレイヤードアーキテクチャを進化させたものと言えるね。レイヤードは上から下への一方通行だけど、クリーンアーキテクチャは依存の方向を内側(ビジネスルール)に向ける。「依存性逆転の原則」を活用して、より変更に強い構造にしているんだよ。
ひよこ ひよこ
どういうプロジェクトに向いているの?
ペンギン先生 ペンギン先生
業務システムやWebアプリのバックエンドには定番中の定番だよ。チームメンバーが理解しやすく、役割分担もしやすい。ただし、リアルタイム処理やマイクロサービスなど複雑な要件では別のアーキテクチャの方が合う場合もあるから、プロジェクトの特性に合わせて選ぶことが大事だね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「レイヤードアーキテクチャ」って出てきたら「ソフトウェアを役割ごとの層に分けて積み重ねる設計」と思えればだいたいOK!
📖 おまけ:英語の意味
「Layered Architecture」 = 層状の設計構造
💬 建築の「層(Layer)」から来ていて、各階が別の役割を持つビルのイメージだよ
← 用語集にもどる