go编程规范
命名规范
- 只可以使用字母、下划线、数字
- 大写字母开头,可以被包外部引用(需要先导入包)
- 小写字母开头,只可以被包内部调用
包命名
尽量保持package的名字和目录一致,采取有意义的包名,包名使用小写,不要使用下划线和大写字母
package demo
package main
文件命名
使用小写字母,用下划线分割
my_test.go
结构体命名
- 采用驼峰命名法
- struct 声明和初始化用多行
//多行声明
type User struct{
Username string
Email string
}
//多行初始化
u := User{
Username: "ada"
Email: "dsfgsdfg"
}
接口命名
- 命名规范基本和结构体一致
- 单个函数习惯以"er"为后缀
type Reader interface{
Read(p []byte) (n int ,err error)
}
变量命名
-
一般为驼峰命名,遵循以下规则
- 变量为私有,首字母小写
- 变量为公有。首字母大写
- 单词为特有名次,而且是首个单词,则特有名词小写
-
若变量为布尔类型,则名称一般以"Has"、"Is"、"Can"、"Allow"开头
常亮命名
- 全部大写
- 以
_
分割
注释
注释符号
//
/**/
范围
- 包注释
- 接口注释
- 方法注释
- 代码逻辑注释
代码风格
缩进和括号
- go语言默认每一行都会加一个
;
所以前置大括号不能单独一样 - go可以使用go自带的fmt工具格式化代码
- 尽量使用
Tab
,而不是空格
import规范
引入多个包时,按照三中类型区分,标准包,程序内部包,第三方包,建议写的时候有顺序的导入你的包。
错误处理
- 原则是不能丢弃有返回err的调用,不能用
_
丢弃,必须全部处理 - 尽早return
- 采用独立的错误流处理
测试
-
单元测试命名规范example_test.go
-
测试用例必须以Test开头