この地図の役割
匠は、知識を動くソフトウェアへ変換するための実践地図です。言語の文法だけでなく、変更を安全に積み重ねる設計、検証、レビュー、リリースの仕組みまでを扱います。
推奨する順序
- 言語ごとの特徴と比較 (Language Features and Comparisons)とコンパイラとインタプリタ (Compilers and Interpreters)で、言語の表現力と実行モデルを押さえる。
- ソフトウェアアーキテクチャの設計判断、アーキテクチャパターン (Architectural Patterns)、SOLID原則など設計原則 (SOLID Principles etc)で、変更に耐える境界を設計する。
- ドメイン駆動設計 (Domain-Driven Design)とAPI設計 (API Design)で、業務の意味と外部契約をコードへ写像する。
- テスト駆動開発 (Test-Driven Development - TDD)、品質保証とテスト戦略 (QA & Testing Strategies)、デバッグとトラブルシューティング (Debugging & Troubleshooting)で、正しさを検証し失敗から学ぶ。
- バージョン管理 (Version Control)とCD (Continuous Integration Continuous Delivery)で、変更を短いフィードバックループに乗せる。
設計と実装を分離しない
設計はコードを書く前の図面ではなく、実装・テスト・運用を含む意思決定です。抽象化が変更点を隠せる一方で、過剰な抽象化は理解コストを増やします。この判断はソフトウェア設計におけるトレードオフと意思決定記録 (ADR)に残します。
詳細マップ
- 言語ごとの特徴と比較 (Language Features and Comparisons)
- コンパイラとインタプリタ (Compilers and Interpreters)
- デザインパターン (Design Patterns)
- アーキテクチャパターン (Architectural Patterns)
- SOLID原則など設計原則 (SOLID Principles etc)
- ドメイン駆動設計 (Domain-Driven Design)
- API設計 (API Design)
- コーディング標準とベストプラクティス (Coding Standards & Best Practices)
- テスト駆動開発 (Test-Driven Development - TDD)
- 品質保証とテスト戦略 (QA & Testing Strategies)
- バージョン管理 (Version Control)
- デバッグとトラブルシューティング (Debugging & Troubleshooting)
- ソフトウェア保守と進化
- ソフトウェア設計におけるトレードオフ
- ソフトウェア品質と検証
- ソフトウェア開発ライフサイクルとプロセス
- セキュアソフトウェア開発