众所周知,业界常把低质量的程序代码称为“技术债”。它们不但会影响软件构建的效率,而且会在软件交付和运行中,出现严重的服务质量问题。可见,软件质量的重要性是不言而喻的。本文将和您讨论在自动化的代码质量控制流程中,有关代码样式、正确性、复杂度、设计、安全性、覆盖率、以及审查等关键要素。
成都创新互联公司是一家以重庆网站建设、网页设计、品牌设计、软件运维、成都网站营销、小程序App开发等移动开发为一体互联网公司。已累计为成都塑料袋等众行业中小客户提供优质的互联网建站和软件开发服务。
常言道:您的代码观感,直接反映了您对代码的关心程度。此言不虚,即使是那些代码段上的缩进不一致,也可能为代码的后期分析带来一场噩梦。更不用说由此产生的,不同开发团队在联调程序过程中的各种冲突了。
幸运的是,我们可以使用诸如Idea和Eclipse之类IDE工具,来自动化检查代码样式的方式,进而修复并提高代码的准确性。具体而言,开发团队中的每个成员首先应当使用相同的代码样式定义,将其设置为共享的.editorconfig文件、或特定于某个IDE的配置之中。其次,我们需要通过将样式检查集成到构建的过程中,以确保每个成员都能遵循代码样式规则。我们可以在每次将代码的更改推送到存储库时,通过Checkstyle的方式,采用Jenkins插件、Maven、以及Gradle的脚本来实现。
代码扫描向来是一项耗时且繁琐的工作,有时甚至难免有所疏漏。对此,我们可以使用一些免费的工具,其中包括:SpotBugs(它是已废弃的FindBugs项目的继承者)、PMD、Error Prone、以及SonarQube。其中的一些还可以识别出重复性的代码,并发现潜在的性能问题。与Checkstyle相似,我们可以将这些工具集成到自己的IDE中,轻松地检查出目标代码中的缺陷。
此外,您也可以使用Checker Framework来增强Java系统的代码检查,以及防范潜在问题的能力。当然,您可能需要对其进行一些额外的手工配置。
值得注意的是,我们需要让这些工具在项目构建的过程中就事先运行起来,以免在将代码推送到存储库之前,忘记让它们“把关”了。
在前面的讨论中,我们主要关注的是发现代码中的常见编程缺陷。下面,让我们聚焦代码的复杂度。显然,没有人愿意阅读和使用那些难以推理、维护和扩展的代码。通常,我们可以使用如下指标,来衡量代码的复杂度:
下面,让我们来看看如何使用静态代码分析工具,来发现目标代码在设计上的缺陷。目前,许多面向对象的设计实践,都可以通过自动化的源检查(source checks),以发现继承层次(inheritance hierarchy)过高、以及上帝类(God class)等设计问题。对此,Checkstyle和PMD都提供了一整套检查工具。其中包括:Source code file、Class、Method、以及Parameter list。它们都能够根据基本设计规则,对代码进行全面检查。
除了上述基本的设计检查,我们还可以通过如下静态分析工具实现更深层次的检查:
值得注意的是,最后两款工具仅对于开源项目是免费的。
在开发过程中,为了确保代码的安全性、可扩展性、以及可维护性,我们需要持续检索CVE数据库,以避免第三方的依赖项出现安全漏洞。此外,您也可以从如下资源处获取有关代码安全的各种实践:
作为补充,下面是几种具有自动化执行功能的,代码安全性检查工具:
此外,各种第三方的依赖项和Docker镜像,也能够在代码质量控制的过程中,实现各项安全性的扫描。
常言道:如果没有大量的自动化测试,就无法验证代码是否能够按期运行;如果没有自动化的回归测试,就无法安全地重构代码。那么,我们又该如何在保证具有高质量的代码置信度的基础上,尽可能涵括更多的流程,检查并提高代码的覆盖率呢?显然,我们需要事先充分地准备好如下不同的测试覆盖率相关指标:
在工具方面,我们可以使用IntelliJ IDEA的Coverage、Eclipse的JaCoCo等具有IDE的流行工具。
在整个代码管控的过程中,最复杂、且最难实现自动化的环节,当属代码审查。由于部分需要依赖手动来实现,因此该过程往往取决于审查者的技能、资历、甚至是态度,而且其结果也不尽相同。
例如,SonarQube仅在其付费版本中,提供了针对合并与拉取式请求的静态自动化分析。据此,您可以在打开某个合并式请求(Merge Request)时,登录到SCM,并在代码中直接查看到静态代码分析的结果。
而开发人员则主要会从如下方面开展代码审查:
因此,为了使代码审查的过程更能保持一致性,我们应准备好一份代码审查清单,以事先约定好手动代码验证的详细内容。对此,您可以参考Google的《代码审查之开发者指南,Code Review Developers Guide》。它在“代码审查”部分给出了一个简短的审查清单,以便实现整个团队在审查过程中的统一性。
网站标题:七招掌控软件的代码质量
转载注明:http://www.shufengxianlan.com/qtweb/news49/279899.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联