静态分析的作用不仅仅是发现缺陷,还可以通过静态分析将最佳实践编写成规则,帮助保持代码与现代API版本一致,防止或减少技术债。这些分析的例子包括验证是否遵守了命名惯例,标识出那些过时API的使用,或者指出更简单但等价的表达方式,使代码更容易阅读。静态分析可以教育开发人员,防止反模式进入代码库。
有效静态分析的特点:
一、可扩展性。现代软件变得越来越大,分析工具必须明确解决可扩展性问题,以便及时产生结果,同时不拖慢软件开发过程。分析工具是可分片和增量的。
二、易用性。重要的是考虑用户的成本收益权衡。成本可以是开发人员的时间,也可以是代码质量。为了进一步降低评审静态分析结果的成本,注重与开发者工作流的顺畅整合。
让静态分析发挥作用的关键经验:
一、关注开发者的体验。只部署误报率低的分析工具。从使用静态分析工具的开发人员那里实时征集反馈意见并采取行动。
二、让静态分析成为核心开发者工作流的一部分。通过与代码评审工具集成,将静态分析融合到核心工作流程中,分析工具提供修复建议并让代码评审者参与。代码评审是展现分析结果的最佳时机。。
三、赋予用户贡献的权力。静态分析是一个机会,通过让领域专家编写新的分析工具或工具中的个别检查,让他们的知识得到大规模的运用。
静态分析可以改善代码库,尽早发现缺陷,并让人工评审和测试这些更昂贵的流程专注于不可由机器验证的问题。通过提高静态分析基础设施的可扩展性和易用性,静态分析成为软件开发的一个有效组成部分。
关注开发者的幸福感,建立用户反馈渠道,积极调整分析以减少误报。开发人员不断添加新的分析器和检查,使他们的生活更轻松,使我们的代码库会更好。