【译】作好这几件事,代码质量能够提高一个档次

这篇文章又是关于代码质量的,有些同窗可能以为我比较啰嗦。不过我就是想用这种方式让你们重视起来。其实说来讲去就那么几种方法,可是实际执行起来真是难于登天。 函数

Photo by Clem Onojeghuo on Unsplash

低质量的代码真的是一种灾难。当你的代码变得愈来愈混乱,维护起来就会花费大量的时间。在最坏的状况下,代码将变得不可维护,而且项目会慢慢终止。工具

为了不这种状况,你须要注意你的代码质量。尝试在代码质量上花费一些时间,长久来看,这将对你有很大的好处。单元测试

不管你是管理者,测试人员或者是开发者都应该去自觉维护代码质量,由于在整个开发流程中,你们的目标都是交付可用的、高质量的代码。学习

要想提升代码质量,须要作到如下六件事,其中一些是一我的能够完成的,而有些则必需要团队配合。测试

GoodCode&BadCode

1. 四眼原则

四眼原则是易于理解和执行的。它的意思是必需要有至少两我的(包括做者)检查过代码,目前最流行的方法是Pull request。编码

Pull request是让你告诉别人你已经在GitHub上向分支push了一些代码改动。在开启Pull request以后,你就能够和协做者讨论潜在的问题,而且能够在你的代码被merge以前继续对它进行修改。code

——Github.comblog

在代码审查期间,有几件事须要考虑。其中之一是检查代码是否违反了约定的代码规则。这一过程能够经过在管道中使用linter来实现自动化,但有时也须要手动执行。ip

另一个须要检查的是代码的可维护性和错误处理。这件事还没办法自动化。最后,须要检查的是代码的完整性。这一修改是否完成了须要完成的所有功能?开发

2. 持续集成

“开发环境是好的。”这是某些开发人员常说的,还有就是:“在我电脑上没问题”。

若是但愿避免这种问题的争论。持续集成能够给你提供很大的帮助。

持续集成是一种软件开发实践,团队的开发人员常常集成他们的工做,一般每人至少天天集成一次——这使得天天须要集成不少次。每次集成都应该由自动构建(包括测试)尽快确认是否存在集成错误。

—— Martin Fowler

持续集成的意义在于,它能够快速的向开发者提供结果反馈。

持续集成的两个基本做用是:

  1. 保持快速构建,没什么比一次耗时一小时的构建更让人沮丧的了。
  2. 快速修复损坏的构建。持续集成会让你始终在一个稳定的版本的基础上进行开发。

持续集成经过快速向开发者提供反馈来帮助提升代码质量。若是测试不经过,那么构建就会失败,此时开发者就会注意到。此外,最好在构建脚本中添加linter来检查是否符合编码规范。毫无疑问,这也是用于提升代码质量的。

3. 编码规范

拥有一系列的代码规约是很是重要的。可是在你开始制定代码规约以前,团队的每一个人都应该参与。由于这期间可能存在大量的关于最优约定的讨论。

编码规范中应该包括怎样声明和命名一个变量等等。规则的数量是没有限制的,而且之后能够继续调整,前提是这些规则对你和你的团队有帮助。

当编码规范制定好之后,请务必遵照。就像我前面提到的,最好的检查办法是在管道中增长linter,这样就不须要人工干预了。若是不这样作,也能够选择在本地安装linter。但要保证在每次提交以前规范使用linter。这样你的团队的代码风格将很是统一,有利于提高代码的可读性和可维护性。

高质量的代码能够加快软件开发的速度,由于它能够被复用,而且开发人员没必要花费大量时间修改bug和完善代码。同时新人加入项目也会更快适应。

4. 测试,测试,测试

代码质量越高,bug就越少。咱们一般经过测试过滤出严重的bug,确保代码按照预期执行。

制定清晰的测试策略对于提升代码质量相当重要。至少要保证你的代码能够经过单元测试。若是你以其余方式进行测试就更好了,例如集成测试或回归测试。

根据测试金字塔,项目中数量最多的测试应该是单元测试,由于它们既简单又快速。有不少工具能够帮助你建立单元测试并生成代码覆盖率报告。

Test pyramid

跑单元测试和生成代码覆盖率报告能够经过持续集成自动进行。当代码覆盖率达不到要求时,持续集成也会构建失败。

5. 分析bug

代码中有bug是必然的事情,如何处理这些bug才是关键。若是你想要提高本身,学会从错误中学习相当重要。这也是为何你要分析bug。

发现bug后,先分析bug的影响。是一个低优先级的仍是高优先级的?若是是高优先级的,就须要尽快解决。

分析bug时,你须要问本身一些问题。是什么致使了错误?为何没有测出来?其余地方也有可能发生吗?以及咱们应该怎样避免相似的bug产生?

固然,咱们也要学会使用工具追踪bug。目前市面上有许多可用的bug追踪工具,你能够根据须要选择适合本身的工具。

6. 开始量化

在开始量化时,能够用几个指标来衡量代码的质量。

缺陷指标

缺陷的数量和缺陷的严重程度是衡量代码质量的重要指标。若是你想追踪bug,可使用bug燃尽图。bug燃尽图和软件敏捷开发中的正常燃尽图同样。惟一不一样的是bug燃尽图包含未修复的bug,而不是事故点。

复杂度指标

复杂度一般由圈复杂度衡量,它是程序的源代码线性独立路径数量的一个衡量。

圈复杂度数和缺陷频率之间存在必定的相关性:

许多研究调查了函数或方法中圈复杂度数和缺陷频率数之间的相关性。有些研究发现了圈复杂度和缺陷数的正相关性:函数和方法越复杂,缺陷也就会越多。然而,圈复杂度和程序大小之间的相关性已被屡次证实。

从理论上来说,下降代码的复杂度会使缺陷更少。

原文地址

https://medium.com/better-programming/things-that-you-can-do-to-improve-code-quality-c746c30e7521

相关文章
相关标签/搜索