go1.11
- copyright,每个代码文件需要以copyright开头。
// Copyright 2018 The QOS Authors // xxx
- 所有包都要写注释(包包含多个文件只写一份包注释也可以),紧挨包定义之上,要以包定义开头。
// Package pkg comments for pkg xxx // xxx. package pkg
- 所有导出方法都要写注释,紧挨方法之上。注释要以方法名开头。
// FuncName comments for FuncName.
- 注释都使用“//”行注释,兼容godoc。
- 命名尽量简短,包括函数名、变量名、包名。
- 方法变量命名必须使用驼峰命名法,不能使用下划线;包名应全小写,不适用下划线或驼峰命名, 尽量一个单词。
- 任何需要对外暴露的名字必须大写字母开头,不需要暴露在包外的名字必须以小写字母开头。
- 接口的命名,如果接口只有一个方法,则该接口命名为方法名成加上”er“后缀;两个函数的接口名综合两个函数名。
- 文件夹,文件名,只能为a-z字符(不能大写),最好一个单词,组合单词全小写,不能下划线。
-
代码格式IDE一般会自动格式化,gofmt命令可以格式化代码。
gofmt -w xxx.go
-
尽量不要用分号“;”区分语句,单行不要写多行语句。
-
对import的包进行分组管理,而且标准库作为第一组,goimports命令可以自动格式化。
goimports -w xxx.go
- 调用函数返回的错误,一定要检查,不能忽略。
- 函数如果有错误返回,需要单独返回错误,不要通过返回值判断错误。 return value, err
- 错误信息一定要用英文,末尾不需要标点符号。
- 错误处理格式:
//不要使用如下方式
if err != nil {
// error handling
} else {
// normal code
}
//采用下面的方式
if err != nil {
// error handling
return // or continue, etc.
}