软件工程师完整的代码质量指南

译文
开发 前端
有些人在使用软件时会遇到出错或体验不佳的情况,但可能没有意识到代码质量问题,但是软件工程师查看软件的代码时可能知道这一点。造成这种情况可能是由于编程方式不合理,充满错误,过于冗长,或在使用术语和命名约定时非常不一致。

【51CTO.com快译】有些人在使用软件时会遇到出错或体验不佳的情况,但可能没有意识到代码质量问题,但是软件工程师查看软件的代码时可能知道这一点。造成这种情况可能是由于编程方式不合理,充满错误,过于冗长,或在使用术语和命名约定时非常不一致。幸运的是,软件工程师可以通过多种方法来提高代码质量,使其更易于检查和测试,并减少以后必须修复所有错误的麻烦。

代码质量的基础知识

代码质量是指代码的属性和特征。代码质量可能会根据组织的特定业务和团队的特定需求而有所不同。虽然没有明确的清单,但大致上有几种策略或措施将高质量的代码与劣质的代码区分开。

良好代码的标志:

  • 清洁。
  • 一致。
  • 功能性或有用性—代码应按其将要执行的操作。
  • 易于用户理解,而不仅是编程者自己了解。
  • 高效:简洁的代码。
  • 可测试:良好的代码应进行测试,以确保没有错误或缺陷。
  • 易于维护。
  • 将来易于构建、重用或复制。
  • 有良好的文件记录:编写得很好,并遵守公认的标准或风格指南。

值得注意的是,所有这些标志对于不同的人员或团队来说可能意味着不同的含义。例如某人可能会认为代码写得清晰并且易于理解,而另一个人却认为代码不清楚并且很难维护。但是,使用一些参数会很有帮助。

文档、代码标准和样式指南

正如行业专家Damien Conway所描述的那样:“文档和代码中的注释是编程人员向未来自己传达信息的一种方式,说明了可能以某种方式编写代码的原因。或者为什么团队成员在特定时间做出了特殊决定,这也为其他团队成员提供了做出决策的见解。”

[[394811]]

代码标准也有助于在整个团队中提供统一的代码,这让其使用和维护变得更加容易。行业专家William Moore将它们描述为“特定编码语言的一系列过程,是需要一种编码格式、方法和不同的过程。”

样式指南在一个地方提供了组织的标准约定(例如命名约定)和其他优秀实践。其目的是确保所有团队成员的代码都是一致的,从而更易于使用和审查。如果希望真正拥有并采用它,并且可能需要对团队成员进行一些培训,但是应该得到他们的同意。

谷歌、微软和WebKit等一些公司已经在网上发布了样式指南,这些指南可以帮助用户创建自己的样式指南。此外,还有许多特定于编程语言的指南,例如为RealPython编写Alexander Van Tol,为Python程序员提供了一些很好的资源,其包括特定于Python的样式指南和应用代码校验(Linter)。

代码审查的重要性

代码审查对于确保良好的代码并提供查找问题的方式至关重要,以便可以尽早解决。他们还可以确保所构建软件的一致性和可靠性。对于采用DevOps方式的组织而言,代码评审是理所当然的,并且已经尽早地嵌入到流程中。发现错误越早,解决错误的速度就越快、越容易、代价也就越低。

SmartBear Software公司在2020年6月开展了一项全球在线调查活动,对20个不同行业的740多位软件开发人员、测试人员、IT /运营专业人员以及业务负责人进行调查。受访者认为代码审查是提高代码质量最好的一种方式。

此次调查还表明,提高代码质量是影响代码审查工具需求的业务驱动因素。

此外,接受调查的80%以上的开发人员表示,对代码审查流程的满意度与对软件发布总体质量的信心直接相关。

除了对代码进行审查之外,一些受访者表示,进行单元、连续和功能测试是提高代码质量的有效步骤之一。持续集成和集成也被认为是软件开发的优秀实践。

就频率来说,大约63%的受访者至少每周一次参与某种形式的代码审查。关于频率和使用哪种方法的问题,27%的受访者表示每天进行基于工具的代码审查,而有19%的受访者表示每周进行一次。

全面的代码审查可以确保代码符合良好代码标志​​所提到的属性。代码审查可确保代码高效、无缺陷、符合标准,并且其总体目标是在问题频发之前尽早发现问题。

组织可以通过多种方式进行代码审查,其中包括人工审查、配对编程、指导以及使用共享文档以方便审查。但是,所有这些方法都可能很耗时,并且代码审查工具提供了一种使过程自动化的方法。

审查代码质量的工具

大多数开发人员已经使用GitHub维护其Git存储库,并习惯于使用pull请求和forks来检查代码。还有许多其他工具可帮助团队实现代码审查过程的自动化:

  • Codacy
  • Code Climate
  • CodeGrip
  • CodeScene
  • Reviewboard
  • Smartbear
  • SonarQube
  • Veracode

有关其他代码检查工具,需要查看在Geekflare公司编译的列表。值得注意的是,安全性是代码质量的关键部分。

代码质量和安全性相似,因为可以通过静态分析来识别这两种类型的问题。开发人员通常使用静态分析方法来设计和测试组件。在这种情况下,代码可能没有运行或执行,但是工具本身使用源代码作为输入数据执行。静态分析使开发人员还可以使用工具早期发现安全问题,通常是在编写代码时实时发现。这些工具在开发人员编写时进行扫描,然后在工程师的集成开发环境(IDE)或编辑器中标记任何的安全问题。通过查看通过应用程序的数据流路径,静态分析工具可以识别应用程序在哪里处理数据或代码会产生意想不到的结果。

静态代码审查软件还可以帮助开发人员了解代码结构和编码标准,并实施自己的编码标准。当开发人员将代码直接投入生产时,静态代码分析还可以验证代码质量,减少以后出现的错误。这些工具可以识别应用程序对数据错误的处理或代码导致意外后果时对数据错误的处理。

代码重构

另一种提高代码质量的方法是重构。源代码重构将杂乱的、不正确的或重复的代码转化为具有较低复杂性的干净代码。它解决了当多个开发人员提交他们自己的代码时可能出现的标准化问题。重构后的代码更易于阅读和维护,它也更容易扩展和添加新功能。删除不必要的部分(如重复项)也会导致代码使用更少的内存,执行速度更快。

减少技术债务

生成不良的代码最初可能看起来很有效,但是一旦需要修复,可能会带来麻烦。从一开始就生成高质量代码的优点之一是减少了技术债务。良好的代码起初可能需要更长的时间才能生成,但是可以减少错误修复和重构的时间,并且消除技术债务带来的长期痛苦。而高质量的代码可以使长期开发和可维护性更加容易。

提高代码质量的方法之一是不断跟踪技术债务并确定其优先级,以便使业务案例能够重构代码库中最重要的部分。

结论

编写高质量的代码不仅可以带来更高质量的软件,而且可以提高团队满意度。当使用工具和框架以及样式指南来消除决策中的许多猜测时,这一点尤其重要,从而使开发人员能够专注于更关键的任务。然而,保持高质量的代码与编写代码一样重要,可以防止出现技术债务问题。

原文标题:The Engineer’s Complete Guide to Code Quality,作者:Cate Lawrence

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:华轩 来源: 51CTO
相关推荐

2022-09-16 08:00:00

软件工程师求职薪酬

2022-07-29 09:12:44

软件硬件开发

2021-07-20 09:00:00

开发软件债务

2022-01-16 07:12:30

软件工程师吵架开发

2013-09-03 09:30:44

软件工程师软件工程师头衔

2009-02-11 13:15:54

软件工程师女工程师google

2017-11-09 14:12:44

大数据软件工程师算法工程师

2010-08-10 13:22:41

2015-06-02 11:29:55

软件工程师程序员

2009-02-12 11:52:23

软件工程师职业规划价值

2023-06-05 10:07:13

软件工程平台工程师

2015-06-02 04:08:42

软件工程师私活

2018-01-09 17:21:18

软件工程师创业代码

2022-04-18 10:13:32

软件开发写作

2009-02-12 14:45:17

软件工程师

2010-08-10 13:29:58

软件工程师

2014-08-20 10:24:11

软件工程师

2009-02-26 10:49:29

软件工程师职业生涯职业规划

2011-05-16 10:05:33

软件工程师Java工程师

2015-05-11 15:06:00

软件工程师写代码
点赞
收藏

51CTO技术栈公众号