ソフトウェアアーキテクチャ
システム全体の構造・設計方針を定める工学上の概念。品質・保守性・スケーラビリティ・チームの開発効率に大きな影響を与える。「正解のない設計」である点が特徴で、トレードオフを理解した上で判断軸を持つことが重要。
概要
ソフトウェアアーキテクチャは以下を決定する:
- 構造: コンポーネントの分割方法・配置・相互依存関係
- 方針: 設計上の制約・原則・パターン
- 品質特性: パフォーマンス・スケーラビリティ・保守性・セキュリティとのバランス
なぜ重要か
- 初期のアーキテクチャ選択が後から変更しにくい「技術的負債」につながりやすい
- チーム全体の開発スタイル・スピードに直結する
- 品質特性間にはトレードオフが存在し、ビジネス要件に合わせた選択が必要
代表的なアーキテクチャパターン
| パターン | 特徴 | 適するケース |
|---|---|---|
| モノリシック | 単一のデプロイ単位。シンプルで開発が速い | 小〜中規模・スタートアップ |
| マイクロサービス | サービスを独立して分割・デプロイ | 大規模・チーム独立性が必要 |
| レイヤードアーキテクチャ | Presentation / Business / Data の3層分離 | 一般的なWebアプリ |
| クリーンアーキテクチャ | ビジネスロジックが外部依存から独立 | テスタビリティ・保守性重視 |
| イベント駆動 | 非同期メッセージングで疎結合 | 高スケーラビリティ要件 |
MIXI での位置づけ
MIXI の「ソフトウェアアーキテクチャ研修」(2025年度新規科目)は、現場エンジニアの提案により追加された。
目標: 「正解のない設計」において自分なりの考えや判断軸を持てるようになること
学習内容:
- ソフトウェアアーキテクチャとは何か・なぜ意識する必要があるか
- 設計の考え方・判断のポイント
- 配属後のチーム内設計・技術的議論への参加基盤
配属前の新卒段階でアーキテクチャの基礎概念を理解しておくことで、チームの設計議論に積極的に参加できるようになることを目指している。
関連概念
- エンジニア新卒研修(MIXI 2025年版) — ソフトウェアアーキテクチャ研修(2025年新規科目)を含む研修体系
- TDD(テスト駆動開発) — テスタビリティを高める設計と密接に関連する開発手法
- SDD(仕様駆動開発) — 仕様書ベースで実装を進めるアーキテクチャ的アプローチ
関連エンティティ
- MIXI — 2025年度に新規科目として「ソフトウェアアーキテクチャ研修」を追加