Go开发规范
包名称
包名应该为小写单词,不要使用下划线或者混合大小写。
1 | package domain |
文件命名
应该为小写单词,使用下划线分隔各个单词。
1 | approve_service.go |
结构体命名
采用驼峰命名法,首字母根据访问控制大写或者小写
struct 申明和初始化格式采用多行,例如下面:
1 | type MainConfig struct { |
接口命名
- 命名规则基本和上面的结构体类型
- 单个函数的结构名以 “er” 作为后缀,例如 Reader , Writer
1 | type Reader interface { |
变量命名
变量命名和结构体类似,变量名称一般遵循驼峰法,首字母根据访问控制原则大写或者小写,但遇到特有名词时,需要遵循以下规则:
- 如果变量为私有,且特有名词为首个单词,则使用小写,如 appService
- 若变量类型为 bool 类型,则名称应以 Has, Is, Can 或 Allow 开头
1 | var isExist bool |
常量命名
常量均需使用全部大写字母组成,并使用下划线分词。
1 | const APP_URL = "https://www.baidu.com" |
如果是枚举类型的常量,需要先创建相应类型:
1 | type Scheme string |
错误处理
- 错误处理的原则就是不能丢弃任何有返回 err 的调用,不要使用 _ 丢弃,必须全部处理。接收到错误,要么返回 err,或者使用 log 记录下来
- 尽早 return:一旦有错误发生,马上返回
- 尽量不要使用 panic,除非你知道你在做什么
- 错误描述如果是英文必须为小写,不需要标点结尾
- 采用独立的错误流进行处理
1 | // 错误写法 |
单元测试
单元测试文件名命名规范为 example_test.go 测试用例的函数名称必须以 Test 开头,例如:TestExample 每个重要的函数都要首先编写测试用例,测试用例和正规代码一起提交方便进行回归测试。