高质量编程
前言
真正的开发过程中几乎都是团队一起合作开发的,在开发过程中是需要一起合作共赢的,但是代码不是汉字,许多人的代码都是具有个人编程习惯的,这样的话不管是为了合作便利还是以后的检查,高质量代码编程都是非常重要的,所以这一章就是记录高质量编程。
定义
什么是高质量?
- 编写的代码能够达到正确可靠,简介清晰的目标就可称为高质量代码
但是这只是一个笼统的定义,真正的情况下我们还要考虑很多东西,比如各种边界条件是否考虑完备,异常情况处理,稳定性保证,是否易读易维护等等
编程原则
编程情况千变万化,各种语言的特性和语法各不相同,但是高质量编程遵循的原则是相通的
- 简单性:没有人会喜欢复杂,消除“多余的复杂性”,以简单清晰的逻辑编写代码,如果复杂的无法理解的代码就无法修复改进
- 可读性:代码是写给人看的,能够成功被他人理解及阅读是非常重要的,对团队合作开发,维护也是至关重要的。编写可维护的代码的第一步就是确保代码的可读
- 生产力:团队整体工作效率是非常重要的,编写高效的,可维护的代码,提高开发效率,提高生产力
如何高质量的编写代码
-
代码格式
- 推荐使用gofmt自动格式化代码
- gofmt是Go语言官方提供的工具,能自动格式化Go语言代码为官方统一风格,常见的IDE都支持方便的配置
-
注释
注释的功能:
- 解释代码作用
- 解释代码如何做的
- 解释代码实现的原因
- 解释代码什么情况下会出错
- 公共符号始终要注释
老师引用的名言名句很有深意,我们共勉:好的代码有很多注释,坏的代码需要很多注释。
-
命名规范
- 简洁胜于冗长
- 缩略词全大写,但是当其位于变量开头且不需要导出时,使用全小写
- 变量距离其被使用的地方越远,则需要携带越多的上下文信息
- 函数名不携带包名的上下文信息,因为包名和函数总是成对出现的
- 函数名尽量简短
- 包名只由小写字母组成,不包含大写字母和下划线等字符
- 简短并包含上下文信息
- 不要与标准库同名
-
控制流程
- 避免嵌套,保持正确流程清晰
- 尽量保持正常代码路径为最小缩进,提高代码的可维护性和可读性
- 故障问题大多出现在复杂的条件语句和循环语句中
-
错误和异常处理
- error尽可能的提供简明的上下文信息链,方便定位问题
- panic用于真正异常的情况
- recover生效范围,在当前的goroutine的被defer的函数中生效