ストーリー
高橋アーキテクトが、壁一面のホワイトボードの前に立っていた。10ヶ月前には白紙だったそのボードには、無数のアーキテクチャ図が描かれていた。
L2最終月。これまで学んだ全てを結集して、究極のシステムを設計する旅が始まります。
システム設計とは何か
システム設計の本質
システム設計とは、ビジネス要件を満たす技術的なソリューションを構築するプロセスです。
// システム設計の構成要素
interface SystemDesign {
// 機能要件: 何をするか
functionalRequirements: FunctionalRequirement[];
// 非機能要件: どれくらいうまくやるか
nonFunctionalRequirements: NonFunctionalRequirement[];
// アーキテクチャ: どう構成するか
architecture: Architecture;
// データモデル: どうデータを扱うか
dataModel: DataModel;
// API設計: どうインターフェースを定義するか
apiDesign: APIDesign;
// 運用設計: どう運用するか
operationalDesign: OperationalDesign;
}
interface NonFunctionalRequirement {
category: 'availability' | 'performance' | 'scalability' | 'security' | 'maintainability';
metric: string; // 例: "p99 latency"
target: string; // 例: "< 200ms"
priority: 'must' | 'should' | 'nice-to-have';
}
L2で学んだ技術の全体マップ
Month 1: API設計とRESTful原則
Month 2: データベース設計と正規化
Month 3: 認証・認可のアーキテクチャ
Month 4: テスト戦略と品質保証
Month 5: CI/CDとDevOps
Month 6: パフォーマンスとスケーラビリティ
Month 7: マイクロサービスと分散システム
Month 8: クラウドネイティブ設計
Month 9: セキュリティ設計
Month 10: 【今月】全てを統合する総合設計
設計者に求められる力
4つの設計能力
const ARCHITECT_CAPABILITIES = {
// 1. 分析力: 曖昧な要件を構造化する
analysis: {
description: "曖昧なビジネス要件を技術要件に変換する",
skills: ["要件定義", "ドメイン分析", "ステークホルダー管理"],
},
// 2. 設計力: 適切なアーキテクチャを選択する
design: {
description: "トレードオフを理解し最適な構成を決める",
skills: ["パターン選択", "技術選定", "トレードオフ分析"],
},
// 3. 伝達力: 設計を他者に説明する
communication: {
description: "図やドキュメントで設計意図を共有する",
skills: ["ダイアグラム作成", "ADR作成", "プレゼンテーション"],
},
// 4. 検証力: 設計が要件を満たすか確認する
validation: {
description: "設計の妥当性を多角的に検証する",
skills: ["レビュー手法", "PoC実施", "リスク分析"],
},
};
Month 10で学ぶこと
| Step | テーマ | 学ぶこと |
|---|---|---|
| Step 1 | システム設計の総合力 | 要件分析、非機能要件、設計フレームワーク |
| Step 2 | URL短縮&チャットシステム | 代表的Webサービスの設計ケーススタディ |
| Step 3 | 大規模データ処理 | 検索エンジン、レコメンデーション、分析基盤 |
| Step 4 | ミッションクリティカル | 決済、予約、IoT、マルチリージョン |
| Step 5 | レビューとキャリア | ATAM、技術戦略、設計者のキャリアパス |
| Step 6 | 最終試験 | グローバルECプラットフォーム設計&L2修了認定 |
まとめ
| ポイント | 内容 |
|---|---|
| 統合力 | 個々の技術を組み合わせてシステムを設計する力 |
| 4つの能力 | 分析力・設計力・伝達力・検証力 |
| Month 10の目標 | L2の総まとめとして究極のシステム設計に挑む |
| メンター | 高橋アーキテクトが最後の旅を導く |
チェックリスト
- システム設計の本質を理解した
- L2で学んだ10ヶ月間の技術マップを確認した
- 設計者に求められる4つの能力を把握した
次のステップへ
次は「要件分析からアーキテクチャへ」を学びます。曖昧なビジネス要件をどのように技術的なアーキテクチャに落とし込むのか、その体系的な方法を身につけましょう。
推定読了時間: 15分