一、变量命名规范

    变量命名一般采用驼峰式,当遇到特有名词(缩写或简称,如DNS)的时候,特有名词根据是否私有全部大写或小写。例子:

二、常量命名规范

    同变量规则,力求语义表达完整清楚,不要嫌名字长。
    如果模块复杂,为避免混淆,可按功能统一定义在package下的一个文件中。

const todayNews = "Hello"
 
// 如果超过了一个常量应该用括号的方法来组织
 
const (
  systemName = "What"
  sysVal = "dasdsada"
)

三、接口命名规范

    单个函数的接口名以 er 为后缀

 

 

四、结构体命名规范

    结构体名应该是名词或名词短语,如Account,Book,避免使用Manager这样的。如果该数据结构需要序列化,如json, 则首字母大写, 包括里面的字段。

五、receiver命名规范

    golang 中存在receiver 的概念 Receiver 的名称应该缩写,应该尽量保持一致, 避免this, super,等其他语言的一些语义关键字如下

 

 

六、函数/方法命名规范

 

由于Golang的特殊性(用大小写来控制函数的可见性),除特殊的性能测试与单元测试函数之外, 都应该遵循如下原则

 

  1. 采用驼峰式。将功能及必要的参数体现在名字中, 不要嫌长, 如updateById,getUserInfo.
  2. 如果包外不需要访问请用小写开头的函数
  3. 如果需要暴露出去给包外访问需要使用大写开头的函数名称

 

一个典型的函数命名方法如下:

 

 

七、注释命名规范

 

每个包都应该有一个包注释,位于 package 之前。如果同一个包有多个文件,只需要在一个文件中编写即可;如果你想在每个文件中的头部加上注释,需要在版权注释和 Package前面加一个空行,否则版权注释会作为Package的注释。如:

 

每个以大写字母开头(即可以导出)的方法应该有注释,且以该函数名开头。如:

 

大写字母开头的方法以为着是可供调用的公共方法,如果你的方法想只在本包内掉用,请以小写字母开发。如:

 

注释应该用一个完整的句子,注释的第一个单词应该是要注释的指示符,以便在 godoc 中容易查找。

 

注释应该以一个句点 . 结束。

 

八、package命名规范

    包名用小写,使用短命名,尽量和标准库不要冲突。包名统一使用单数形式。

九、文件命名规范 

    由于文件跟包无任何关系, 而又避免windows大小写的问题,所以推荐的文件规范如下:

    文件名应一律使用小写, 不同单词之间用下划线分割, 不用驼峰式,命名应尽可能地见名知意。尽量见名思义,看见文件名就可以知道这个文件下的大概内容.其中测试文件以_test.go结尾,除测试文件外,命名不出现_。