写点什么

最佳实践 | 如何避免一行错误代码造成的血案?

  • 2022 年 2 月 15 日
  • 本文字数:2076 字

    阅读完需:约 7 分钟

最佳实践 | 如何避免一行错误代码造成的血案?

美国电话电报公司(AT&T)是一家总部位于美国的电信公司,1990 年曾面临一场重大危机。他们想加快长途电话的速度,因此发布了一个复杂的软件升级。但这个项目失败了,他们的长途网络面临着大约 9 个小时的停机时间。

此次停机造成的损失估计成本包括 6000 万美元的长途费用;200,000 次机票预订损失;还有 7500 万个未接电话。后来,他们发现软件升级包含了一行错误代码,导致了级联开关故障,并最终演变成一个巨大的问题。


仅仅一行写得不好的代码就可以使企业陷入困境,这意味着您的项目也可能因此而结束。这就是为什么提高代码质量是必要的。下面是帮助生成高质量代码的四个最佳实践。


接受编码约定

开发团队通常会创建一个称为编码约定的指南列表。它们包括针对某种编程语言的推荐样式和实践。有时,团队仅为特定项目制定约定,而其他时候,他们为整个组织编写约定。


使用编码约定鼓励每个人都以相同的风格编写,这意味着您的同事可以更好地理解您的代码。约定还可以帮助您在大型项目中找到文件和类,因此不熟悉代码的开发人员可以轻松找到并使用它们。例如,Java 开发人员在命名约定中使用驼峰式大小写,其中第一个单词小写,后面的单词大写——“employeeLastName”。


编码约定规定了广泛的内容,例如:

  • 命名约定

  • 空间

  • 运营商

  • 声明

  • 评论

  • 缩进

  • 文件组织

  • 架构模式


使用代码检查器

代码检查器是一种自动检查您的代码是否符合您的项目或公司的编码约定的工具。如果不符合约定,检查器会将这些错误显示为警告。 


在软件开发过程中,当开发人员优先考虑速度而不是质量时,这些警告往往会被忽视。但是这些小错误会在短时间内快速累积,从而给您的团队带来巨大的工作量。为了避免这些繁重的工作量,检查器可以快速识别这些错误,以便您的团队也可以快速解决它们。


您使用的检查器类型取决于您使用的编程语言——Java、C#、Python 等。例如,Python 开发人员可以使用 Pylint 进行代码分析和维护代码质量。其他示例包括 JSLint、ESLint 和 Checkstyle。


采用持续集成

开发人员每天数次将他们的变更合并到主分支——这个过程称为持续集成(CI)。每次合并都会启动一个自动化的代码构建和测试序列,这需要花费一些时间来运行。但是,如果出现错误,代码构建就不会运行,CI 系统会阻止它进入下一个步骤。然后团队得到一个报告,可以立即修复错误。


这就是为什么 CI 被现代公司广泛使用的原因。它允许团队将开发过程分解成小的部分,这确保了对细节的更多关注。开发人员可以得到即时的反馈,从而防止在部署阶段出现任何错误。


市场上的一些 CI 工具包括 Jenkins、Bitbucket pipeline、CircleCI 和 Atlassian Bamboo。


现代持续集成工具对于实现高性能的工程团队至关重要。在为您的团队选择 CI 工具时,有一些重要的因素需要考虑,例如 VCS 支持、容器支持以及插件和集成。


点击下方链接了解不同工具的比较。

https://www.atlassian.com/continuous-delivery/continuous-integration/tools


留下有用的评论

开发人员有时会留下一些对于理解代码而言不必要的注释。这种混乱会导致开发人员花费额外的时间来通读代码。另一方面,有些人注释太少,导致代码质量低下,因为程序员必须猜测他们正在阅读的内容。


你的目标应该是找到一个折中办法。只有当你觉得注释有价值并且能给你的代码库带来价值时才添加注释。以下指导原则可以帮助你写出有意义的评论:


  • 为复杂函数编写注释。向具有复杂逻辑的函数添加注释,例如有 100 行代码的函数。这些注释基本上是解释函数应该做什么的快捷方式,因此它们为其他程序员节省了试图弄清楚它的时间。

  • 在每个文件的顶部写一个简短的注释。这种类型的注释不应该超过三行,并且应该提供关于代码目标和范围的简要描述。如果你的同事看了你的文件,他们应该能够在 30 秒内理解它的内容。

  • 在每个类的前面写注释。这条注释解释了类在文件中的用途和作用域。例如,如果你的类名为“LocationService”,你可以在 Java 应用程序中添加如下注释:

/* The class below will help to find a location record with a unique identifier. It returns a location */public class LocationService { rest of the code goes here}
复制代码


通过 Jira 和 Bitbucket 插件实现高质量代码

如果你的团队使用 Jira 来管理开发过程或 Bitbucket 来管理代码,你可以使用来自 Atlassian Marketplace 的代码质量插件来最大化其效率。以下是一些你可以在市场上找到的有用的插件:


  • Awesome Graphs for Bitbucket - 深入的图表和图示可以显示从 Git 仓库中拉出的数据,以显示贡献统计数据。通过这种方式,您可以评估您的团队的表现,确定您的团队最有效率的时间,并确认团队成员的生产力。

  • Yet Another Commit Checker - 设置不同的代码质量检查,可以全局启用,也可以用于已定义的存储库和项目。

  • Sonar for Bitbucket-将 Bitbucket 与 SonarQube 集成,SonarQube 是一个帮助持续检查代码质量的工具,可以发现应用程序中的代码问题。它提供合并检查,以执行配置的质量标准,这样你就不会发布任何低于标准的代码。



想要了解 Atlassian 更多最佳实践,或者获取适合您团队需求的解决方案,请联系 Atlassian 全球白金合作伙伴——龙智。



用户头像

还未添加个人签名 2021.05.18 加入

还未添加个人简介

评论

发布
暂无评论
最佳实践 | 如何避免一行错误代码造成的血案?