code-checker について
code-checkerは、C/C++コードの保守性を調べる開発者向けのスキルです。大きすぎるファイルや関数をスキャンし、ディレクトリモジュール間の循環依存を検出します。
主な機能
- 01ファイルと関数の規模を分析
- 02モジュール間の循環依存を検出
- 03GNビルドファイルのインクルードパスを解析
- 04しきい値設定とレポート出力
- 05リファクタリングの参考資料
活用シーン
- 01大きすぎるソースファイルや関数の特定
- 02モジュール間の循環インクルードの確認
- 03コードチェックレポートの作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ openharmonyinsight/ openharmony-skills --skill code-checkerインストール後、Claude Code で/code-checkerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/circular-deps.mdrefactoring.mdscripts/circular_header_check.pyscan_cpp_size.py詳細
C/C++ コードチェッカー
C/C++ コードを分析し、保守性に関する問題を特定します。対象は、極端に大きなファイルや関数、モジュール間の循環依存です。
ワークフロー
- スキャン対象を特定する - ユーザーがファイルやディレクトリを指定していない場合は、「スキャンするディレクトリまたはファイルを指定してください」と尋ねます。
- チェックの種類を決める - 実行するチェックを尋ねるか、推測します。
- ファイル/関数のサイズ分析
- 循環依存の検出
- 両方(詳細分析のデフォルト)
- スキャンを実行する - 適切なスクリプトを実行します。
- 結果を提示する - レポートを表示し、主な問題を要約します。
- サポートを申し出る - リファクタリングのサポートが必要か尋ねます。
サイズ分析
極端に大きなファイルや関数をスキャンします。
scripts/scan_cpp_size.py <path> [options]
オプション:
-o, --output <file>- レポートをファイルに出力します-f, --file-threshold <n>- 大きなファイルと判定するしきい値(デフォルト:実効行数 2000 行)-F, --function-threshold <n>- 大きな関数と判定するしきい値(デフォルト:実効行数 50 行)
例:
scripts/scan_cpp_size.py ./src --file-threshold 1500 --function-threshold 40 -o size_report.md
循環依存の検出
ディレクトリモジュール間の循環依存を検出します。
scripts/circular_header_check.py <path> [options]
オプション:
-o, --output <file>- レポートをファイルに出力します-v, --verbose- 詳細な出力を表示します--no-gn- GN ビルドファイルの解析をスキップします
例:
scripts/circular_header_check.py ./src -o circular_report.md
循環依存チェッカーは、以下を実行します。
- GN ビルドファイル(
BUILD.gn、*.gni)を解析してインクルードパスを取得します - ファイルをディレクトリモジュールごとにグループ化します(
src/とinclude/は同じコンポーネントとして扱います) - モジュール A がモジュール B のファイルをインクルードし、モジュール B がモジュール A のファイルをインクルードするケースを検出します
問題が見つかった場合
問題が見つかった場合:
- 影響度に基づいて優先順位を付ける - 最も大きな問題から取り組みます
- 背景を把握する - コードを読み、その責務を理解します
- ユーザーに尋ねる - 「このリファクタリングをお手伝いしましょうか?」
リファクタリングの指針
| 問題の種類 | 参考資料 |
|---|---|
| 大きな関数 | references/refactoring.md |
| 循環依存 | references/circular-deps.md を参照してください |
「大きい」と見なされる基準
| カテゴリ | デフォルトのしきい値 | 理由 |
|---|---|---|
| ファイル | 実効行数 2000 行 | 移動や理解が難しくなります |
| 関数 | 実効行数 50 行 | 認知的な把握の範囲を超え、テストが難しくなります |
実効行数には、空行、コメント、プリプロセッサディレクティブは含まれません。
スキャン対象のファイル拡張子
.c、.cpp、.cc、.cxx、.c++、.h、.hpp、.hh、.hxx、.h++、.inl、.inc
コメント
Markdown 対応