go语言编码规范| 青训营

97 阅读2分钟

编码规范

代码格式

gofmt:go语言官方提供的工具,能够自动格式化go语言代码为官方统一风格

goimports,实际等于gofmt加上依赖包管理,自动增删依赖的包引用,将依赖包按字母序排序并分类。

注释

注释的作用:解释代码作用,解释代码用途,解释代码实现原因,解释代码出错的情况

公共符号要注释

包中声明的每个公共的符号,常量,变量,函数及结构都需要注释

任何既不显示也不简短的公共功能必须予以注释

无论长短或者复杂程度,库中的函数均需要注释

命名规范

variable

缩略词均大写,当其位于变量开头或不需要引用则不需要大写

变量距离其被使用地方越远,所需要携带的上下文信息越多

function

函数名不携带包名的上下文信息

函数名尽量简短

package

只由小写字母组成。不含大写字母和下划线

简短并包含上下文信息

不与标准库同名

控制流程

  • 避免嵌套,保持正常流程清晰

  • 尽量保持正常代码路径为最小缩进

    优先处理错误情况/特殊情况,尽早返回或继续循环减少嵌套

错误和异常输出

简单错误

优先使用erro.New来创建匿名变量直接表示简单错误

若有格式化需求,则使用fmt.Errorf

错误判定

判定一个错误是否为特定错误,使用error.Is

在错误链上获取特定种类的错误,使用error.As

性能优化建议

性能优化的前提是正确可靠,简洁清晰等因素

性能优化是综合评估,有时候时间和空间效率可能对立

普通应用代码,不一味追求性能