7.3 静态分析与重构
静态分析在不运行程序的情况下检查代码。它可以发现重复模式、复杂条件、未使用代码、潜在空值、安全规则违规、风格不一致等问题。
重构则是在不改变外部行为的前提下改善内部结构。二者结合起来,可以把“感觉这段代码不舒服”变成更可执行的改进路径。
正在加载交互实验...
正在加载概念检查...
静态分析适合自动化
人类评审最宝贵的注意力应该花在设计、风险、需求理解和可维护性判断上。格式、未使用变量、简单安全规则、复杂度阈值这类机械检查,应该尽量交给工具。
静态分析常见用途包括:
- 格式化和 lint。
- 类型检查。
- 复杂度和重复代码检测。
- 安全扫描。
- 依赖漏洞扫描。
- 架构边界规则检查。
工具不理解所有业务语境,所以它不是最终裁判。它更像雷达:指出哪里值得人类看一眼。
正在加载概念检查...
重构要小步、安全、可回滚
重构最常见的危险,是把结构变化和行为变化混在一起。这样一旦出错,很难判断是新规则错了,还是整理代码时改变了旧行为。
安全重构通常遵循:
- 先补特征测试或回归测试。
- 一次只做一个结构变化。
- 每一步都能通过测试。
- 每个提交范围清晰。
- 行为变化单独提交。
代码气味是信号,不是罪名
长函数、重复逻辑、复杂条件、过多参数、神类、过度耦合,都是代码气味。气味不等于必须立刻重写,但它提示未来修改会更贵、更危险。
重构的目标不是让代码看起来“高级”,而是降低未来变化成本:
- 更容易理解。
- 更容易测试。
- 更容易替换。
- 更容易定位缺陷。
- 更少影响无关模块。
当静态分析指出风险,测试提供保护,小步提交提供回滚路径,重构才真正成为工程能力。
正在加载本节练习...