静态分析与代码质量工具
一、静态分析:不运行代码即可发现问题
静态分析(Static Analysis)在未执行程序的情况下,对源代码(或字节码、中间表示)进行分析,发现潜在错误、违规与坏味道。和「跑测试」不同:测试是动态的,依赖运行结果;静态分析只看结构和模式,速度快、可全量扫、能在提交前就拦下问题。典型能力包括:语法与风格检查、未使用变量、空指针/类型不匹配、安全漏洞模式(如 SQL 注入、硬编码密钥)、复杂度与重复度等。误报会有,可通过规则调优与白名单控制;整体上能显著减少「低级错误」和规范漂移。
二、Linter、类型检查、安全扫描
三类最常用的静态分析工具:
三、质量门禁与度量:复杂度、重复率、覆盖率
除了「有没有报错」,还可以用度量设质量门禁:合并或发布时,若某指标不达标则不允许通过。常见度量包括:
门禁的阈值要合理:过严会阻塞交付、过松形同虚设。建议先统计当前值,再定「不恶化」或「逐步提升」的目标,并在 CI 里自动检查。
四、工具链集成
静态分析与质量度量只有进流水线才会持续生效:本地保存时或提交前跑 Linter/类型检查;CI 里跑全量 Linter、类型、安全扫描与覆盖率,不通过则不允许合并;报告与趋势可接入看板或质量平台。工具链要统一配置(如单份 ESLint/Prettier 配置进仓库),避免每人本地不一致;新规则可先设为「警告」,待清理后再改为「错误」门禁。
工具链集成要点
- 配置进仓库:Linter、类型检查、安全规则等用同一份配置,所有人与 CI 一致。
- CI 门禁:静态分析失败或度量不达标则合并失败;可区分「阻断」与「仅报告」。
- 渐进式收紧:新规则先警告,待存量清理后再改为错误;覆盖率等可设「新增代码」门禁。
- 报告与趋势:把结果接入看板或质量平台,便于跟踪与改进。
一句话: 静态分析不运行代码即可发现问题,与动态测试互补。Linter管风格与可疑写法、类型检查管类型一致、安全扫描管漏洞模式。质量门禁与度量:复杂度、重复率、覆盖率、遗留问题数等,在 CI 中设阈值,不达标则阻断合并。工具链集成:配置进仓库、CI 自动跑、门禁清晰、报告可追溯。
五、小结
静态分析在不运行代码的前提下发现风格、类型、安全等问题。Linter、类型检查、安全扫描是三类常用工具。质量门禁与度量:复杂度、重复率、覆盖率等,在 CI 中设门禁,不达标则阻断。工具链集成:配置进仓库、CI 跑全量、门禁与报告清晰,新规则可渐进收紧。下一章进入敏捷与 Scrum 基础,从质量与工程实践过渡到项目管理与协作方式。