LESSON 15分

ストーリー

佐藤CTO
設計ができる

ある日、CTOの 佐藤CTO があなたをミーティングルームに呼びました。

佐藤CTO
L2、見事にクリアしたね。設計力が確実に上がっているのが、コードを見ればわかる
あなた
ありがとうございます。デザインパターンもアーキテクチャパターンも、実務で使えるようになってきた実感があります

佐藤CTOは頷いたあと、ホワイトボードに大きな図を描き始めました。フロントエンド、API Gateway、マイクロサービス群、メッセージキュー、データベース、CDN — システム全体の構成図です。

佐藤CTO
君がL2で学んだのは、この中の一つひとつのコンポーネントをどう設計するかだ。でもL3で求められるのは、この全体をどう構成するか
あなた
全体…ですか?
佐藤CTO
そう。どのサービスをどう分割するか、どのデータベースを選ぶか、どこにキャッシュを入れるか、どうやって10倍のトラフィックに耐えるか。一つの判断ミスがシステム全体の命運を分ける。それがアーキテクチャ設計だ

こうして、あなたの L3 — システムアーキテクト への旅が始まります。


L2からL3へ:何が変わるのか

L2では「コンポーネントの設計力」を鍛えました。L3では「システム全体の設計力」を身につけます。

観点L2(設計者)L3(アーキテクト)
設計対象クラス・モジュール・コンポーネントシステム全体・サービス間連携
判断基準「この設計は保守しやすいか」「このアーキテクチャはビジネスを支えられるか」
視野コードベース内部インフラ・運用・コスト・組織構造を含む全体
スキルSOLID、パターン、リファクタリングNFR分析、トレードオフ判断、技術選定
影響範囲自分のモジュールチーム全体・プロダクト全体
思考法「正解を選ぶ」「トレードオフの中で最善を選ぶ」
// L2の視点:コンポーネント内部の設計
class OrderService {
  constructor(
    private readonly orderRepo: OrderRepository,
    private readonly paymentGateway: PaymentGateway,
  ) {}

  async createOrder(dto: CreateOrderDto): Promise<Order> {
    // ドメインロジック、依存性の注入、テスト容易性...
  }
}

// L3の視点:システム全体の設計
// - OrderService はどのサービスに属するか?
// - PaymentGateway との通信は同期か非同期か?
// - 注文データはどのDBに保存するか? RDB? NoSQL?
// - 障害時のフォールバック戦略は?
// - 10倍のトラフィックに耐えるスケーリング戦略は?

L3全体の10ヶ月ロードマップ

佐藤CTOが、L3の全体像を示しました。

Monthテーマ主なスキル
1システム全体のアーキテクチャを設計しようアーキテクチャ設計、NFR分析、トレードオフ
2スケーラブルなシステムを構築しよう水平スケーリング、負荷分散、キャパシティプランニング
3データアーキテクチャを設計しようデータモデリング、CQRS、イベントソーシング
4クラウドネイティブを実践しようコンテナ、Kubernetes、IaC
5マイクロサービスを設計しようサービス分割、API設計、サービスメッシュ
6信頼性エンジニアリングを実践しようSRE、カオスエンジニアリング、インシデント対応
7セキュリティアーキテクチャを設計しようゼロトラスト、脅威モデリング、暗号化戦略
8パフォーマンスエンジニアリングを極めようプロファイリング、チューニング、負荷テスト
9技術戦略とリーダーシップを発揮しよう技術選定、ADR、チーム設計
10総合設計プロジェクトシステム設計面接、ポートフォリオ

「10ヶ月後、君にはチームの技術的な意思決定をリードできるエンジニアになってもらう。それがL3の到達点だ」 — 佐藤CTO


Month 1 の3つの柱

この最初の1ヶ月では、アーキテクチャ設計の土台となる3つの柱を学びます。

柱1:アーキテクチャ設計の基礎

「そもそもアーキテクチャとは何か」を正確に理解します。アーキテクチャと詳細設計の境界、アーキテクトの役割、コンウェイの法則など、設計の前提知識を固めます。

柱2:非機能要件(NFR)の分析

「速い」「安全」「落ちない」— こうした曖昧な要件を、品質属性シナリオとして定量化する技術を学びます。ISO 25010の品質モデルを道具として使いこなします。

柱3:トレードオフ判断

完璧なアーキテクチャは存在しません。すべてはトレードオフです。要件からアーキテクチャへの変換プロセスと、判断の根拠を明確にする方法を身につけます。

// Month 1 で身につける思考プロセス
interface ArchitectureDesignProcess {
  step1: "ビジネス要件を分析する";
  step2: "品質属性を特定し、優先順位をつける";
  step3: "アーキテクチャドライバーを決定する";
  step4: "トレードオフを評価し、アーキテクチャを選定する";
  step5: "判断理由を記録する(ADR)";
}

学習の進め方

各ステップは以下の流れで進みます:

  1. LESSON — 概念と理論を学ぶ
  2. EXERCISE — 手を動かして実践する
  3. QUIZ — 理解度を確認する

佐藤CTOが要所でアドバイスをくれます。L2の高橋アーキテクトが「コードの美学」を教えてくれたように、佐藤CTOは「システム設計の哲学」を教えてくれます。

「アーキテクチャに正解はない。でも、“なぜその判断をしたのか”を説明できるかどうかで、プロとアマチュアの差が決まる」 — 佐藤CTO


まとめ

ポイント内容
L3の目標コンポーネント設計からシステム全体の設計へ
視点の変化「正解を選ぶ」から「トレードオフの中で最善を選ぶ」へ
Month 1の柱アーキテクチャ基礎、NFR分析、トレードオフ判断
メンター佐藤CTOが導く

チェックリスト

  • L2とL3の違いを理解した
  • L3全体の10ヶ月ロードマップを把握した
  • Month 1で学ぶ3つの柱を理解した

次のステップへ

次は「アーキテクチャの役割と重要性」を学びます。そもそもソフトウェアアーキテクチャとは何か、なぜ重要なのか、アーキテクトは何をする人なのか — L3の出発点となる基本概念を深掘りしましょう。


推定読了時間: 15分