LESSON 30分

ストーリー

高橋アーキテクト
10ヶ月前、君はAPI設計の基礎から始めた。今、グローバルECプラットフォームを設計できるところまで来た
高橋アーキテクト
ここで一度立ち止まって、何を学んだかを振り返ろう。そして、L3で何が待っているかを少しだけ覗いてみよう

L2の10ヶ月間の振り返り

const L2_JOURNEY = {
  month1: {
    theme: "API設計とRESTful原則",
    learned: [
      "RESTful APIの設計原則",
      "OpenAPI仕様とAPI First開発",
      "バージョニングと後方互換性",
    ],
    keyTakeaway: "APIは契約。一度公開したら簡単には変えられない",
  },
  month2: {
    theme: "データベース設計と正規化",
    learned: [
      "正規化と非正規化のトレードオフ",
      "インデックス戦略",
      "NoSQLの使い分け",
    ],
    keyTakeaway: "データモデルはシステムの基盤。後から変更するのは非常に高コスト",
  },
  month3: {
    theme: "認証・認可のアーキテクチャ",
    learned: [
      "OAuth2.0 / OIDC",
      "JWT vs Session",
      "RBAC / ABAC",
    ],
    keyTakeaway: "セキュリティは後付けできない。設計段階から組み込む",
  },
  month4: {
    theme: "テスト戦略と品質保証",
    learned: [
      "テストピラミッド",
      "TDD / BDD",
      "テスト自動化戦略",
    ],
    keyTakeaway: "テストはコストではなく投資。長期的に見れば開発速度を上げる",
  },
  month5: {
    theme: "CI/CDとDevOps",
    learned: [
      "CI/CDパイプラインの設計",
      "Infrastructure as Code",
      "デプロイ戦略(Blue/Green, Canary)",
    ],
    keyTakeaway: "自動化とフィードバックループが開発チームの速度を決める",
  },
  month6: {
    theme: "パフォーマンスとスケーラビリティ",
    learned: [
      "レイテンシとスループットの最適化",
      "キャッシュ戦略",
      "水平スケーリング",
    ],
    keyTakeaway: "計測なくして最適化なし。推測ではなくデータに基づく",
  },
  month7: {
    theme: "マイクロサービスと分散システム",
    learned: [
      "サービス分割の基準",
      "サービス間通信(同期/非同期)",
      "分散トランザクション(Saga)",
    ],
    keyTakeaway: "マイクロサービスは銀の弾丸ではない。必要になるまでモノリスでよい",
  },
  month8: {
    theme: "クラウドネイティブ設計",
    learned: [
      "コンテナオーケストレーション",
      "サーバーレスアーキテクチャ",
      "クラウドデザインパターン",
    ],
    keyTakeaway: "クラウドの利点を最大化するには、クラウドネイティブな設計が必要",
  },
  month9: {
    theme: "セキュリティ設計",
    learned: [
      "ゼロトラストアーキテクチャ",
      "暗号化戦略",
      "セキュリティ監査と脅威モデリング",
    ],
    keyTakeaway: "セキュリティは全レイヤーで多層防御する",
  },
  month10: {
    theme: "究極のシステムを設計しよう",
    learned: [
      "システム設計の総合フレームワーク",
      "実世界のケーススタディ",
      "アーキテクチャレビューと技術戦略",
    ],
    keyTakeaway: "全ての知識を統合して初めて、本物の設計ができる",
  },
};

L2で身についた能力

const L2_COMPETENCIES = {
  design: {
    name: "システム設計力",
    before: "個別の機能を実装できる",
    after: "システム全体を設計し、トレードオフを議論できる",
  },
  analysis: {
    name: "要件分析力",
    before: "与えられた要件を理解できる",
    after: "曖昧な要件を構造化し、非機能要件を定量化できる",
  },
  communication: {
    name: "技術コミュニケーション力",
    before: "コードで表現できる",
    after: "図、ADR、プレゼンで設計意図を伝えられる",
  },
  judgment: {
    name: "技術判断力",
    before: "チュートリアル通りに技術を使える",
    after: "複数の選択肢からトレードオフを考慮して選択できる",
  },
};

L3で待っているもの

const L3_PREVIEW = {
  theme: "設計者→リーダーへの進化",
  focus: [
    {
      area: "大規模分散システムの深掘り",
      topics: ["CAP定理の実践的適用", "コンセンサスアルゴリズム", "Eventually Consistentの設計"],
    },
    {
      area: "組織設計とConwayの法則",
      topics: ["チームトポロジー", "プラットフォームエンジニアリング", "Developer Experience"],
    },
    {
      area: "技術戦略とロードマップ",
      topics: ["ADRの組織展開", "技術レーダー運営", "技術的負債の経営層への可視化"],
    },
    {
      area: "SRE / Production Engineering",
      topics: ["SLI/SLO駆動の運用", "カオスエンジニアリング", "インシデントマネジメント"],
    },
  ],
  prerequisites: [
    "L2全月の修了",
    "実務でのシステム設計経験(1年以上推奨)",
    "チームでの技術リード経験",
  ],
};

自己評価チェックリスト

// L2修了時の自己評価
const SELF_ASSESSMENT = [
  { skill: "RESTful API設計", canDo: "OpenAPI仕様を先に定義してAPI開発ができる" },
  { skill: "DB設計", canDo: "正規化/非正規化のトレードオフを判断できる" },
  { skill: "認証設計", canDo: "OAuth2.0フローを選択し実装できる" },
  { skill: "テスト戦略", canDo: "テストピラミッドに基づく戦略を立てられる" },
  { skill: "CI/CD", canDo: "パイプラインを設計しゼロダウンタイムデプロイできる" },
  { skill: "パフォーマンス", canDo: "ボトルネックを特定しキャッシュ戦略を設計できる" },
  { skill: "分散システム", canDo: "マイクロサービスの分割とSagaパターンを設計できる" },
  { skill: "クラウド", canDo: "クラウドネイティブなアーキテクチャを選択できる" },
  { skill: "セキュリティ", canDo: "脅威モデリングとゼロトラスト設計ができる" },
  { skill: "総合設計", canDo: "ケーススタディに対して体系的にシステム設計ができる" },
];

まとめ

ポイント内容
10ヶ月の成長API設計からグローバルシステム設計までの道のり
4つの能力設計力、分析力、コミュニケーション力、判断力
L3への道分散システム深掘り、組織設計、SRE
自己評価10項目のスキルチェックで現在地を確認

チェックリスト

  • L2の10ヶ月間で学んだことを振り返った
  • 身についた4つの能力を自己評価した
  • L3で学ぶ内容の概要を把握した
  • 自己評価チェックリストで現在地を確認した

次のステップへ

次は演習です。アーキテクチャレビューを実際に体験しましょう。


推定読了時間: 30分