| name | code-reading |
| description | コードリーディングを行う場合にこのスキルを使用してください。
効果的にコードを理解するための手法、観点、アプローチを提供します。
|
コードリーディングスキル
このスキルは、効果的にコードを理解し、解析するための包括的な手法とガイドラインを提供します。
有効化するタイミング
- ユーザーがコードリーディング・解析を要求した場合
- 既存コードベースの理解が必要な場合
- 新しいプロジェクトへの参画時
- バグ調査・原因特定が必要な場合
- レガシーコードの理解が必要な場合
階層的アプローチ
- 詳細を避けて全体像を把握
- 重要な部分から深く理解していく
- 必要に応じて詳細レベルを調整
- 目的に応じて読む深さを変える
プロジェクト理解
- プロジェクト全体の目的と要件を把握する
- ビジネスドメインと問題領域を理解する
- ユースケースや仕様書があれば事前に確認
技術的背景の確認
- 使用している技術スタック・フレームワークの確認
- アーキテクチャ図、設計ドキュメント、テーブル定義の確認
- コーディング標準・慣習の把握
- 依存関係の確認
全体構造の把握
- プロジェクト構造(ディレクトリ・ファイル構成)を確認
- エントリーポイントを特定
- 主要なモジュール・パッケージの役割を理解
- 設定ファイルの内容を確認
データフローの理解
- データフローやビジネスロジックの把握
- リクエスト・レスポンスの処理の流れを追跡
- 状態管理の仕組みを理解
- データの永続化・取得の仕組みを確認
ドキュメントの活用
コメントの活用
- コメントから設計意図や注意点を把握
- TODO・FIXMEコメントを確認して未解決の課題を把握
- ドキュメントコメントを活用して関数・クラスの役割を理解
ログ・トレーシングの活用
- ログを分析して実行フローを把握
- ログのレベルやフォーマットから重要な情報を特定
テストコードの活用
- テストコードから仕様や期待動作を理解
- 単体テスト・統合テスト・E2Eテストを確認
- テストケースから境界条件や例外処理を把握
- テストカバレッジの確認
変更容易性
- 変更に対する影響範囲が限定的か
- 新機能追加時の拡張性があるか
- 設定変更が容易に行えるか
- デプロイ・リリース手順が整備されているか
実装追加および変更時の観点
- 修正が必要な場合に影響範囲を調査する
- 機能追加時の実装方針の検討
- 潜在的な問題点を指摘できるか
パターン認識
- 既知のデザインパターンを特定する
- フレームワーク特有の慣習を理解する
- 業界のベストプラクティスとの比較
段階的な理解
- インターフェース・型定義から内部実装へ
- 公開API・外部インターフェースから開始
- 依存関係の少ないモジュールから理解を進める
- 複雑な部分は後回しにして、全体像を先に把握
機能理解
主要機能の特定
- システムの核となる機能を特定
- ユーザーが実際に使用する機能の理解
- 内部的な補助機能の把握
処理フローの追跡
- 典型的な使用パターンでの処理追跡
- 異常系・エラー処理の流れの確認
- 分岐条件とその意味の理解
エラー処理
- 例外処理が適切に実装されているか
- エラーメッセージが有用で適切か
- リソースの解放が適切に行われているか
- 障害時の挙動が予測可能か
セキュリティの観点
入力値検証
- すべてのユーザー入力が適切に検証されているか
- SQLインジェクション対策が実装されているか
- XSS対策が実装されているか
- ファイルアップロード制限が適切か
認証・認可
- 認証メカニズムの把握
- 権限チェックやロールベースのアクセス制御の把握
- セッション管理の把握
機密情報管理
- 機密情報のハードコード
- 環境変数で適切にシークレットが管理されているか
- ログ出力に機密情報が含まれていないか
- 暗号化が適切に実装されているか
現況の実装に対する評価
アルゴリズム効率
- アルゴリズムの時間計算量・空間計算量を評価
- 適切なデータ構造が選択されているか
- ボトルネックとなりうる箇所の特定
- 無駄な処理や重複処理がないか
データベース・外部API
- N+1問題が発生していないか
- SQLクエリが最適化されているか
- インデックスが適切に使用されているか
- 外部API呼び出しが効率的か
リソース管理
- メモリリークの可能性があるか
- データベース接続が適切に管理されているか
- キャッシュが効果的に使用されているか
- 並行処理が適切に実装されているか
テストコード
- テストの網羅性(カバレッジ)が適切か
- テストが仕様を適切に表現しているか
- テストが保守しやすい構造になっているか
- 回帰テストが効果的に実装されているか
質問・議論
- チームメンバーに確認するべきポイントをリストアップ
- 実装判断・設計判断の背景