译做好这几件事,代码质量可以提升一个档次

Jackeyzhe Jackeyzhe     2022-12-23     268

关键词:

这篇文章又是关于代码质量的,有些同学可能觉得我比较啰嗦。不过我就是想用这种方式让大家重视起来。其实说来说去就那么几种方法,但是实际执行起来真是难于登天。

技术图片

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

为了避免这种情况,你需要注意你的代码质量。尝试在代码质量上花费一些时间,长久来看,这将对你有很大的好处。

无论你是管理者,测试人员或者是开发者都应该去自觉维护代码质量,因为在整个开发流程中,大家的目标都是交付可用的、高质量的代码。

要想提高代码质量,需要做到以下六件事,其中一些是一个人可以完成的,而有些则必须要团队配合。

技术图片

1. 四眼原则

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

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

——Github.com

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

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

2. 持续集成

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

如果希望避免这种问题的争论。持续集成可以给你提供很大的帮助。

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

—— Martin Fowler

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

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

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

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

3. 编码规范

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

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

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

高质量的代码可以加快软件开发的速度,因为它可以被复用,并且开发人员不必花费大量时间修改bug和完善代码。同时新人加入项目也会更快适应。

4. 测试,测试,测试

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

制定清晰的测试策略对于提高代码质量至关重要。至少要保证你的代码可以通过单元测试。如果你以其他方式进行测试就更好了,例如集成测试或回归测试。

根据测试金字塔,项目中数量最多的测试应该是单元测试,因为它们既简单又快速。有很多工具可以帮助你创建单元测试并生成代码覆盖率报告。

技术图片

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

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

如何做好外贸邮件营销?记住这几件不要!

...#xff0c;我相信很多人都会说这个我也会,但是问道如何做好外贸邮件营销,相信不少人都没有像前面那样自信说会了吧。那么,如何做好外贸邮件营销呢?下面就让摩杜云小杜来跟大家详细的介绍一下,希望能... 查看详情

django创建项目时应该要做的几件事(代码片段)

终于可以在假期开始学习Django啦!??安装django1.11.14pipinstalldjango==1.11.14-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com卸载django1.11.14pipuninstalldjango==1.11.14创建django项目django-adminstartproject项目 查看详情

「译」foreach循环中你不知道的3件事(代码片段)

...25字,阅读大约需要7分钟。总括:forEach循环中你不知道的3件事。原文地址:3thingsyoudidn’tknowabouttheforEachloopinJS公众号:「前端进阶学习」,回复「666」,获取一揽子前端技术书籍自弃者扶不起,自强者击不倒。正文你觉得你真的... 查看详情

做一个app前需要考虑的几件事

做一个App前需要考虑的几件事 来源:limboy的博客 随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个App的成本也越来越低了。尽管如此,有些事情最好前期就做起来,避免当App有了一定规模后,再感慨当初... 查看详情

宝塔面板安装完成后必须要做的几件事

...22更改为其他,防止黑客扫描端口暴力破解;最好也做的几件事:4、可以绑定一个域名(子域名),如果采用这个方式最好是绑定一个跟ECS上不相干的域,和不使用IP登录的理由一样,防止被猜出来后进行破坏行为;#绑定的域名仅... 查看详情

4.构造thread对象你也许不知道的几件事

1.Thread类对象只有在调用了start()方法之后,JVM虚拟机才会给我们创建一个真正的线程!否则就不能说是创建了线程!也就是说newThread()之后,此时实际上在计算机底层,操作系统实际上并没有为我们创建线程!在我们newThread();的... 查看详情

人生最重要的几件事

时间是唯一的稀缺资源先听一个故事:有一个国度,每个人早上醒来账户里都有86400元钱,然后每个人都必须花完,否则第二天零点账户自动清零,然后重新给你86400元钱,你会怎么做?你可能会觉得很扯淡,但我们也是这样的... 查看详情

做一个app前需要考虑的几件事

随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个App的成本也越来越低了。尽管如此,有些事情最好前期就做起来,避免当App有了一定规模后,再感慨当初为什么没有多留点心。 完善的日志系统 以iOS为例... 查看详情

开发人员谈测试:做好软件测试才能提升应用质量

相信在国内一些中小型公司,开发者很少会去写软件测试相关的代码,当然这背后有一些原因在,本文就讲讲iOS开发中的软件测试相关的内容。  测试的重要性  测试很重要!测试很重要!测试很重要ÿ... 查看详情

java日志,需要知道的几件事(commons-logging,log4j,slf4j,logback)

...清楚了,可以忽略本文。几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对这块有更深刻理解的同学,也贡献出自己的知识和见解。一、     概念Com... 查看详情

关于代码审核

...如何提高产品质量的方法,其中最重要的一点就是要真正做好“代码审核”,而不是浮于便面只是为完成公司的流程制度,在这点上不仅我自己要做好,要让整个团队也能做好,要让大家真正通过代码审核这个活动提升自... 查看详情

需要打卡的几件事

无1.早起(最晚6:00)2.读书(至少每日3小时)3.学习(至少每日8小时,专业学习、绘画学习、钢琴学习...)4.减肥(健康两/三餐、运动)67891011  6:5  2读书3学习121314151617  6:5  5学习18192021  4:2  2读书 查看详情

断言失败:'纬度!= null':不正确。我已经尝试了几件事

】断言失败:\\\'纬度!=null\\\':不正确。我已经尝试了几件事【英文标题】:Failedassertion:\'latitude!=null\':isnottrue.I\'vetriedseveralthings断言失败:\'纬度!=null\':不正确。我已经尝试了几件事【发布时间】:2020-11-1418:23:47【问题描述... 查看详情

提升代码质量的方法:领域模型设计原则设计模式

简介: 我们可以列举出非常多质量差的代码的表现现象,其中最影响代码质量的两个表现是命名名不副实、逻辑可扩展性差,当一个新人阅读代码时,有时发现方法命名与实际逻辑对不上,这就让人感到非常... 查看详情

提升10倍效率的三件事

 几乎每个软件开发人员或程序员都见过其他人编写的代码,说明了“任何人都可以编码”。但你有没有遇到过所谓的神话般的“10倍效率的开发人员”?作为一个10倍效率的开发人员,在编写代码方面做得很少,更多的是知道... 查看详情

掌握这些知识,你的认知将提升一个档次

上一篇文章《如何在三年内获得十年工作经验》,得到了大家的好评。其实是得益于是成甲老师的《好好学习——个人知识管理精进指南》,我吸取了这本书中自认为的精华。主要讲述了学习临界知识的心态、如何学习临界知识... 查看详情

译如何使用vue过渡效果来提升用户体验(代码片段)

在Vue应用中添加过渡效果是一个可以使你的项目感觉更专业的简单方法。通过提升用户体验,可以使你的网站留住更多的用户以及提高转化率。只需要简单的处理就可以获得巨大的回报,何乐而不为?在这个指南中,我们将带你... 查看详情

新人如何做好功能测试,看这几点就够了

哈喽,我是二黑,这里赠送一份软件测试资料.1、软件测试学习路线2、软件测试视频资料3、软件测试相关文档4、软件测试相关工具、安装包5、高级测试工程师简历模板6、面试题、模拟面试、PDF文档有需要的小伙伴们可... 查看详情