アーキテクチャ
上級システム全体の構造をどう組み立てるか。層の分け方から分散システムへの分割まで、規模に応じた設計判断を学びましょう
全6レッスン
レイヤードアーキテクチャ
プレゼンテーション・ビジネスロジック・データアクセスなど層に分けてシステムを構成するレイヤードアーキテクチャの原則を学ぶ
クリーンアーキテクチャとヘキサゴナル
ドメインを中心に据え外部依存を切り離すクリーンアーキテクチャとヘキサゴナルアーキテクチャの考え方を学ぶ
モノリスとマイクロサービス
単一デプロイ単位のモノリスと、サービス単位で分割するマイクロサービスそれぞれの利点とトレードオフを学ぶ
イベント駆動アーキテクチャ
イベントの発行と購読でサービス間を疎結合につなぐイベント駆動アーキテクチャの仕組みを学ぶ
API設計
REST・GraphQLなどのAPIスタイルの違いと、一貫性・拡張性のあるAPIを設計するための指針を学ぶ
アーキテクチャ決定とADR
重要な設計判断とその理由を記録するArchitecture Decision Record(ADR)の書き方と活用法を学ぶ
アーキテクチャを学ぶ意味
アーキテクチャとは、システムをどのような単位に分割し、 それぞれがどう責任を持ち、どう連携するかという全体構造の設計です。個々のクラスやメソッドの設計原則 (SOLIDなど)がミクロな視点だとすれば、アーキテクチャはシステム全体を俯瞰するマクロな視点にあたります。
このコースで扱うアーキテクチャに「唯一の正解」はありません。どれもトレードオフを伴う選択肢であり、 プロジェクトの規模・チームの体制・将来の変化に対する要求によって適切な答えが変わります。 それぞれの利点だけでなく、代償として何を引き受けることになるかを合わせて理解していきましょう。
構造を分ける
層・境界・サービス単位で責任を分割する考え方
トレードオフで選ぶ
どの構造にも利点と代償があることを踏まえて判断する
決定を記録する
ADRなどで判断の背景を残し、後から見直せるようにする
このコースの学習の流れ
レイヤードアーキテクチャ
層に分けてシステムを構成する最も基本的な考え方
クリーンアーキテクチャとヘキサゴナル
ドメインを外部技術から切り離す設計
モノリスとマイクロサービス
デプロイ単位をどう分割するかのトレードオフ
イベント駆動アーキテクチャ
Pub/Subでサービス間を疎結合につなぐ
API設計
REST/GraphQLなどAPIスタイルの選び方
アーキテクチャ決定とADR
設計判断の理由を記録し、後から振り返れるようにする
確認クイズ
1 / 8レイヤードアーキテクチャにおける依存の向きのルールとして正しいものはどれか?