GO语言优化| 青训营笔记

45 阅读2分钟

编写优质代码

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

简介

好的代码,不应该仅实现功能,还应该能够让其他人明白 高质量是什么, 准确可靠,简洁清晰就是高质量的代码

  1. 边界条件是否考虑到
  2. 异常的处理
  3. 是否易读易维护

编程原则: 简单性, 不编写无法理解的代码 可读性: 人类能够简单的维护 生产力: 团队整体工作效率

编码规范

编写高质量的go代码需要遵顼以下几个点

  1. 代码格式
  2. 注释
  3. 命名规范
  4. 流程控制
  5. 错误和异常处理

代码格式
代码格式可以使用gofmt goimports进行代码格式的管理.
注释
注释需要按照以下几个点

  1. 解释代码的作用
  2. 解释代码如何协程的
  3. 解释实现的原因
  4. 解释什么情况会出错

命名规范
变量
简洁胜于冗长, 缩写一般全部大写或者全部小写(不暴露) 在一些小的代码块,比如说for循环, 用i替代index更佳
函数
函数不携带包名上下文信息,尽可能简短

包只由小写字母组成,包含一定上下文信息,不和标准库同名, 不使用采用变量名,使用单数而非复数,谨慎使用缩写
流程控制
避免嵌套,以代码路径为最小缩进
错误和异常
简单的错误是仅出现一次的错误,其他地方不需要捕获. 这种情况优先使用errors.New创建匿名变量来表示
尽可能使用error替代panic
panic只在main和init使用
recover只能在defer的函数内使用

编码规范参考

package time
func Now() Time //good
func NowTime Time //bad
//调用的是time.now,很明显比time.nowTime更优 
package time
func Parse(s string) (Duration, error)//bad
func ParseDuration(s string) (Duration, error)//good
//返回的是Duration而不是time,所以ParseDuration更佳