ソフトウェアアーキテクチャ

システム全体の構造・設計方針を定める工学上の概念。品質・保守性・スケーラビリティ・チームの開発効率に大きな影響を与える。「正解のない設計」である点が特徴で、トレードオフを理解した上で判断軸を持つことが重要。

概要

ソフトウェアアーキテクチャは以下を決定する:

  • 構造: コンポーネントの分割方法・配置・相互依存関係
  • 方針: 設計上の制約・原則・パターン
  • 品質特性: パフォーマンス・スケーラビリティ・保守性・セキュリティとのバランス

なぜ重要か

  • 初期のアーキテクチャ選択が後から変更しにくい「技術的負債」につながりやすい
  • チーム全体の開発スタイル・スピードに直結する
  • 品質特性間にはトレードオフが存在し、ビジネス要件に合わせた選択が必要

代表的なアーキテクチャパターン

パターン特徴適するケース
モノリシック単一のデプロイ単位。シンプルで開発が速い小〜中規模・スタートアップ
マイクロサービスサービスを独立して分割・デプロイ大規模・チーム独立性が必要
レイヤードアーキテクチャPresentation / Business / Data の3層分離一般的なWebアプリ
クリーンアーキテクチャビジネスロジックが外部依存から独立テスタビリティ・保守性重視
イベント駆動非同期メッセージングで疎結合高スケーラビリティ要件

MIXI での位置づけ

MIXI の「ソフトウェアアーキテクチャ研修」(2025年度新規科目)は、現場エンジニアの提案により追加された。

目標: 「正解のない設計」において自分なりの考えや判断軸を持てるようになること

学習内容:

  • ソフトウェアアーキテクチャとは何か・なぜ意識する必要があるか
  • 設計の考え方・判断のポイント
  • 配属後のチーム内設計・技術的議論への参加基盤

配属前の新卒段階でアーキテクチャの基礎概念を理解しておくことで、チームの設計議論に積極的に参加できるようになることを目指している。

詳細: エンジニア新卒研修(MIXI 2025年版)


関連概念

関連エンティティ

  • MIXI — 2025年度に新規科目として「ソフトウェアアーキテクチャ研修」を追加