知识点滴 - 编码规范

在没有约定和标准的情况下编写代码,对于一个庞大的代码库来说,很容易变得混乱和无法维护。当作为一个团队工作时,制定开发团队中每个成员必须遵守的规则和准则是至关重要的,以确保产品的可靠性和持续维护。为了写出结构良好和干净的代码,开发人员需要与他们团队中使用的标准和惯例保持一致。这样可以让任何使用代码库的开发人员更容易理解代码。

高质量的代码需要一贯的努力和开发人员团队的高度重视,以达到质量目标。如果没有约定,开发人员就很难理解代码库,这可能会增加开发时间以及项目结构的复杂性。

编码标准是什么 / Coding standards

编码标准是针对某种编程语言的,决定编程风格、过程和方法的一系列规则和指导方针的集合。

Coding standards are collections of rules and guidelines that determine the programming style, procedures, and methods for a programming language.

可以把编码标准看作是一套规则、技术和最佳实践,以创建更清爽、更可读、更有效的代码,并将错误降到最低。它们提供了一个统一的格式,软件工程师可以用它来构建复杂和功能强大的代码。

Think of coding standards as a set of rules, techniques, and best practices to create cleaner, more readable, more efficient code with minimal errors. They offer a uniform format by which software engineers can use to build sophisticated and highly functional code.

编码惯例的重要性 / Importance of coding conventions

如果没有编码规范,团队中的每个人都按自己的编码风格来。在不久的将来,维护和调试代码将变得不容易。

编码标准的好处

-- 易于团队合作

-- 有效的提高代码质量,并易于维护

-- 减少代码的复杂性

-- 降低开发成本

-- 为不同工程师创建的代码提供统一规范

-- 创建出可复用的代码

-- 使得检测错误更加容易。

-- 使代码更简单,更可读,更容易维护。

-- 促进更合理的编程实践,提升程序员的效率,更快完成目标

-- 编码指南有助于在早期阶段发现错误,所以它有助于减少软件项目的额外成本。

-- 它减少了开发软件的隐藏成本。

团队没有适当的编码规范的弊端

如果没有预先规定所有团队成员应该遵守的规范,会导致以下情况。

        -- 降低工程师的积极性

        -- 增加开发时间

        -- 复杂的代码结构

编码标准的选择

编码的最佳实践和标准根据产品所属的行业而不同。汽车相关的软件编码和游戏编程的标准将会不同。

例如,MISRA C和C++是为汽车行业编写的,是强调安全性的一个编码标准。目前,它们被认为是该行业编写代码的绝对最佳实践。

遵循行业特定的标准,更容易写出符合产品预期的准确代码。更容易编写满足终端用户和业务需求的代码。

编码标准的通常方面

- 命名规则:命名规则是指你的包、类、方法、变量等应该如何命名。( 例如:camelCase, PascalCase 或 snake_case)

- 文件和文件夹的命名和组织。这是你的文件和文件夹应该如何命名和结构化。

- 格式和缩进:代码应该以标准化的格式和缩进方式书写

- 注释和文档化。这使得你的代码的审查者容易更好地理解代码的方法和声明

- 类和函数。这规定了类和函数应该如何表现。

- 测试。这规定了应该使用何种方法和工具来测试代码。

最佳实践 - 注重代码的可读性

可读性好的代码方便理解,空间和时间也容易优化。以下是实现这一目标的几个方法。

- 尽可能地少写代码

- 使用适当的命名规则

- 将一段代码分割成若干代码块(segment blocks of code)

- 使用缩进来标记控制结构的开始和结束。更好的进行区分。

- Use indentation to marks the beginning and end of control structures. Clearly specify the code between them.

- 不要使用冗长的函数,不好理解。理想情况下,一个函数应该执行一个任务。

- 使用DRY(Don't Repeat Yourself)原则。必要时将重复性的任务自动化。同一段代码不应该在脚本中重复出现。

- 避免深度嵌套。太多的嵌套层次会使代码更难阅读和理解。

- 避免某一行代码过长。人类更容易阅读水平方向短而垂直方向长的行块。

最佳实践 - 对不同模块的头信息实现标准化

当不同模块的头信息格式一致时,更容易理解和维护代码。例如,每个头信息应该包含:

- 模块名称

- 创建日期

- 模块创建者的名字

- 修改历史

- 该模块的功能摘要

- 该模块的功能以及它们的输入输出参数

- 该模块可以被访问或修改的全局变量

最佳实践 - 不要将一个标识符用于多种用途

给每个变量取一个名字,清楚地描述它的用途。当然,一个变量不能被赋予多个值或用于许多功能。这将使阅读代码的人感到困惑,并使未来的增强功能更难实现。始终指定唯一的变量名称。

最佳实践 - 将每日备份变成一种本能

多种事件都可能引发数据丢失--系统崩溃、电池没电、软件故障、硬件损坏等等。为了防止这种情况,每天都要保存代码,而且是在每次修改之后,不管是多么微不足道的修改。在TFS、SVN或任何其他版本控制机制上备份工作流。

最佳实践 -  增加注释并关注文档

不要以为其他人查看代码时都是开发人员,他们就会本能地理解代码,而不需要说明。开发人员也是人,对他们来说,阅读描述代码功能的注释要比扫描代码和进行猜测容易得多。

多花一分钟时间,在脚本的不同位置上写上描述代码功能的注释。确保注释能够引导任何读者了解所实施的算法和逻辑。当然,只有在代码的目的不明显时才需要这样做。不要费心在简单易懂的代码上留下评论。

最佳实践 -  尝试将异常处理正规化

异常指的是在代码运行时发生的问题、情况或不常见的事件,并扰乱了正常的执行流程。这要么暂停,要么终止程序执行,这是必须避免的情况。

然而,当它们真的发生时,请使用以下技巧,减少对整体流程、开发时间和工作量的影响。

- 将代码保持在一个 try-catch 块中。

- 确保自动恢复已经被激活并可以使用。

- 考虑到这可能是一个软件/网络缓慢的问题。等待几秒钟,让所需的元素显示出来。

- 使用实时日志分析。

最佳实践 -  在选择标准时,考虑封闭式与开放式

考虑CERT vs. MISRA。CERT强调社区合作和参与。它提供了一个编码标准,以网络维基的形式免费提供。通过CERT,用户可以对具体的准则进行评论--当标准被审查和更新时,评论会被考虑在内。

另一方面,MISRA是一套由汽车工业软件可靠性协会(MISRA)开发和维护的C和C++编码标准。它主要被认为是嵌入式行业的事实编码标准。

MISRA是由工作组根据预先确定的蓝图创建和更新的。虽然安全和可靠,但它不是免费提供的,尽管它在实施更新时承认一些社区反馈。

自然,CERT更容易工作。但开放标准变化很快,这可能使它们难以跟上。然而,像MISRA这样的封闭式标准对安全关键行业来说是更好的,因为它们在各团队、组织和供应商之间执行统一性。换句话说,它们提供了一个可靠的参考,要求遵守一套强制性的要求。对于像汽车行业创建的产品,标准需要被严格执行,因为关系到生命安全。

尽管遵守上面详述的编码最佳实践,但请记住,所有代码都需要在真实的浏览器和设备上进行广泛的测试。与其处理仿真器和模拟器的许多不足之处,测试人员最好使用真实设备,按需提供真实设备、浏览器和操作系统进行即时测试。

通过在真实设备上运行测试,可以进行性能测试,以确保他们每次都能得到准确的结果。全面和无差错的测试确保没有重大的错误未被发现而进入生产,从而使软件能够提供尽可能高的用户体验水平。

无论是手动测试还是自动测试,真实的设备在测试方程中都是不可缺少的。在没有内部设备实验室的情况下(定期更新新设备并将每个设备的功能保持在最高水平),选择其他可选择的设施。

最佳实践 - 本地变量、全局变量、常量和函数的命名规则

有限使用全局标识符。

有意义的、可理解的变量名称有助于任何人理解使用它的原因。

本地变量应以小写字母开始命名(如localData),而全局变量名称应以大写字母开始(如GlobalData)。常量名称应该只用大写字母组成(如CONSDATA)。

最好避免在变量名中使用数字。

函数的名称应该用小写字母开始的骆驼字母。

函数的名称必须清楚、简要地描述使用该函数的原因。

最佳实践 - 缩进

正确的缩进对于提高代码的可读性非常重要。为了使代码具有可读性,程序员应该正确地使用空白。下面给出了一些间距惯例。

在两个函数参数之间的一个逗号后必须有一个空格。

每个嵌套块都应该有适当的缩进和间距。

在程序中每个块的开头和结尾都应该有适当的缩进。

所有的大括号应从新的一行开始,大括号后面的代码也应从新的一行开始。

最佳实践 - 尽量不要使用GOTO语句

GOTO语句使程序失去结构性,因此它降低了程序的可理解性,也使调试变得困难。

最后

有一套编码标准在手,更容易保持代码的清晰和易于协作。当然,标准因应用、性质、行业、项目、开发人员技能和多种因素而不同。

总而言之,对于一个开发团队来说,在开发过程中拥有适当的编码规范和标准是至关重要的,这将有助于团队保持代码质量,并减少新的开发人员试图理解复杂的代码库所花费的时间。

参考:

https://medium.com/@psengayire/the-importance-of-coding-standards-and-conventions-in-the-software-development-team-how-they-can-5d252556a05

Coding Standards and Best Practices To Follow | BrowserStack

Coding Standards and Guidelines - GeeksforGeeks

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值