关于 code-metrics-analysis
用于衡量和分析代码质量指标的技能,帮助开发者发现复杂度、可维护性问题及改进方向。涵盖 TypeScript、Python、ESLint 与 CI/CD 质量门禁指南。
主要功能
- 01分析圈复杂度与认知复杂度
- 02统计代码行数和函数数量
- 03提供 TypeScript 与 Python 指南
- 04支持 CI/CD 质量门禁实践
适用场景
- 01评估代码质量并监测技术债
- 02筛选重构候选代码
- 03在代码审查中参考指标
- 04为 CI/CD 设置质量门禁
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill code-metrics-analysis安装后在 Claude Code 中输入/code-metrics-analysis确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/cicd-quality-gates.mdeslint-plugin-for-complexity.mdpython-code-metrics-using-radon.mdtypescript-complexity-analyzer.mdscripts/scaffold-tests.shtemplates/test-template.js详细介绍
代码指标分析
目录
概述
衡量并分析代码质量指标,以识别复杂度、可维护性问题和有待改进的方面。
适用场景
- 代码质量评估
- 识别适合重构的代码
- 技术债监控
- 代码审查自动化
- CI/CD 质量门禁
- 团队绩效跟踪
- 遗留代码分析
快速开始
最小可运行示例:
import * as ts from "typescript";
import * as fs from "fs";
interface ComplexityMetrics {
cyclomaticComplexity: number;
cognitiveComplexity: number;
linesOfCode: number;
functionCount: number;
classCount: number;
maxNestingDepth: number;
}
class CodeMetricsAnalyzer {
analyzeFile(filePath: string): ComplexityMetrics {
const sourceCode = fs.readFileSync(filePath, "utf-8");
const sourceFile = ts.createSourceFile(
filePath,
sourceCode,
ts.ScriptTarget.Latest,
true,
);
const metrics: ComplexityMetrics = {
cyclomaticComplexity: 0,
cognitiveComplexity: 0,
// ... (see reference guides for full implementation)
参考指南
references/ 目录中的详细实现:
| 指南 | 内容 |
|---|---|
| TypeScript Complexity Analyzer | TypeScript 复杂度分析器 |
| Python Code Metrics (using radon) | Python 代码指标(使用 radon) |
| ESLint Plugin for Complexity | 用于复杂度分析的 ESLint 插件 |
| CI/CD Quality Gates | CI/CD 质量门禁 |
最佳实践
✅ 应该做
- 随时间监控指标
- 设置合理的阈值
- 关注趋势,而非绝对数值
- 自动收集指标
- 使用指标指导重构
- 结合多项指标
- 在代码审查中纳入指标
❌ 不应该做
- 将指标作为唯一的质量衡量标准
- 设置不切实际的阈值
- 忽略上下文和领域
- 因指标而惩罚开发人员
- 只关注一项指标
- 跳过文档
评论
支持 Markdown