可读性是评判好代码的一个标准,好的命名对可读性很重要,现在开始让自己的go代码有一个良好的命名规范吧
好的命名一般具备下面几个特征
- 容易理解和猜测他的含义
- 精简、编写容易不要一大串的命名
- 能准确的表达他的含义
命名使用MixedCase
- 不要使用带有下划线的名称如:my_app_model
- 首字母是缩略词的就全部大写:RASPModel,IDCard
- 局部变量尽可能的简短
- 索引用
i
表示 - reader用
r
表示 - buffer用
b
表示
- 参数也是局部变量,
对于描述性的尽可能简短:
func handle(d Duration, f func()) *Timer
对于不太明确的参数,名称尽量有一定的含义
func Unix(sec, nsec int64) Time
func InStr(s, substr string) bool
- 返回值
返回值也要具备一定的意义 - 接受者
对于接受者名称,在同一个接受者的所有方法上名称要保持一致。
func (r *Receiver)handle1(){
}
func (r *Receiver)handle2(){
}
- 接口类型,
对于只有一个方法的接口,往往接口的名称后面都会带一个“er”,即使有时候不是一个英文单词,也可以这么做
type Reader interface {
Read(b []byte)
}
type Execer interface {
Exec(query string, args []Value) (Result, error)
}
当含有多个方法的时候,我们尽可能选择一个能够准确描述它含义的名称。
- 包名,
1.选择对其导出时候有意思的包名称,尽量避开util、common。
2.包路径的最后一个组件应与包名称相同。
3.避免使用大写字母