ソフトウェアアーキテクチャ
ソフトウェアアーキテクチャとは
ソフトウェア / アプリケーション全体の構造についての設計・意思決定。
cf. デザインパターンとは
コードを書く上でよく現れる設計上の問題に対する典型的な解決策。 (より小規模、局所的な概念)
主要な例
アプリケーション構造
- レイヤードアーキテクチャ
- MVC / MVP / MVVM
- ポート&アダプター(ヘキサゴナルアーキテクチャ)
- オニオンアーキテクチャ
- クリーンアーキテクチャ
- パイプ&フィルター
デプロイ / システム分割
- モノリス
- マイクロサービス
- モジュラーモノリス
- サービス志向アーキテクチャ(SOA)
- サーバーレス(FaaS)
通信 / データフロー
- イベント駆動アーキテクチャ(EDA)
- メッセージキュー / Pub-Sub
- イベントソーシング
- コマンド・クエリ責任分離(CQRS)
- API設計
- REST
- GraphQL
- gRPC
インフラ
- クライアント - サーバー
- P2P
- 分散キャッシュ(スペースベース)