アーキテクチャ
ソフトウェアシステムの構造、コンポーネント間の関係性、設計原則の集合。
認知負荷との関係
アーキテクチャ設計は認知負荷の各源泉に対応する:
分割の基準
Team Topologiesでは「チームが認知的に扱える範囲」を分割の基準とする。一人の開発者(または一つのチーム)がプロダクションモデルとして保持できる複雑さには限界がある。
フラクタル構造
システム全体を認知可能な単位に分割し、各単位の内部もまた認知可能な単位に分割する。各レベルで同じ認知構造が現れる。
代表的なパターン
- レイヤードアーキテクチャ: 責務ごとに層を分離
- マイクロサービス: サービス単位で独立したデプロイ
- ヘキサゴナルアーキテクチャ: ドメインロジックを中心に据える