这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
ps:由于最近春节事务较多,走亲访友的,还有实验室布置的任务,所以一直是咕咕鸟,本来打算日更的。本文是对于高质量编程的知识介绍。
1. 简介
在当代的代码开发中,对于一个企业而言,无论是代码编写亦或是变量取名等,都有着非常严格的编写规范。也正是这样的代码规范,才有助于代码的阅读和合作进行项目的开发。在本课关于高质量编程学习中,我们首先就会从编写规范入手,进行对于高质量编程的理解和学习。
2. 编写原则
虽然各种语言具有不同的特性以及语法,但高质量的代码编程遵循的原则是非常相同的。简单来说有以下三个原则:
- 简单性
- 可读性
- 生产力
简单性是指以最简单清晰的逻辑编写代码。作为一名合格的码农,我们需要将代码的逻辑和编写做到尽可能的简洁明了,因为不能理解的代码是无法进行修复改进,并且在团队开发中,复杂的代码容易带来其他成员编写上的难度。
可读性是因为代码是写给人看的,是要用于团队的开发协作的,而不是仅仅让机器进行运行的。所以编写可以维护的代码的第一步就是我们要确保代码可读。
生产力则是团队整体工作效率非常重要,在现实的代码编程中,高质量编程也需要注意编程的速度。
3. 编码规范
在本节中将会介绍关于五种的代码规范:
- 代码格式
- 注释
- 命名规范
- 控制流程
- 错误和异常处理
3.1 代码格式
对于代码格式,推荐使用 gofmt 进行自动格式化代码。gofmt为官方提供工具,能支持自动格式化go代码为官方统一风格。
3.2 注释
对于注释,注释应当做到以下几点:
- 解释代码作用
- 解释代码怎么做的
- 解释这段代码实现原因
- 解释代码的出错情况,会在什么情况下出错
对于其解释代码作用这个功能,适合用于注释公共符号。而公共符号即是指会被对外使用的函数和变量等。如对外提供的函数注释描述其功能和用途等。
对于其解释代码怎么做的这个功能,适合注释代码实现过程。用于介绍一段代码它的编写逻辑等。
对于其解释代码实现原因的这一功能,适合用于解释代码外部因素,提供额外上下文,让其他人员便于理解这段代码的作用是什么。
对于其解释代码出错情况,适用于解释代码的限制条件,介绍代码无法处理的一些情况等。
3.3 命名规范
对于命名规范,主要分为变量命名规范、函数命名规范、包命名规范
变量命名规范:
- 简洁的命名胜于冗长的命名
- 缩略词需要全部大写,但如果其位于变量开头并且不需要导出时,我们需要使用小写
- 变量距离使用处越远,则我们需要令其命名携带越多的上下文信息
函数命名规范:
- 函数名不能包含包名上下文信息,因为他们总是成对出现的
- 函数名应当尽可能简短
包命名规范:
- 只能由小写字母构成
- 需尽可能简短,并且包含上下文信息
- 不可与标准库名相同
- 尽量不使用常用变量作为包名
- 使用单数而不是复数
- 谨慎使用缩写,防止难以理解
3.4 控制流程
对于控制流程,主要则是以下几点:
- 避免嵌套,令代码流程清晰明了
- 尽量保持代码路径为最小缩进
3.5 错误和异常处理
而对于错误和异常处理,我们需要注意error、panic以及recover的用法:
- error:对于使用error进行错误异常处理,我们需要尽可能简短地提供上下文信息链,方便阅读代码的人进行定位
- panic:panic被用于真正的异常情况
- recover:recover只在当前groutine的被defer的函数中才会生效
4. 后记
本文只介绍了高质量编程中的编写规范相关问题,在下一篇文章中我们将介绍性能优化相关知识。