go 语言开发规范
1、长度问题
一行最长不超过80个字符,超过的使用换行展示,尽量保持格式优雅。
2、注释问题
注释必须是完整的句子,句子的结尾应该用句号作为结尾(英文句号)。注释推荐用英文,可以在写代码过程中锻炼英文的阅读和书写能力。而且用英文不会出现各种编码的问题。 在编码阶段应该同步写好 变量、函数、包 的注释,最后可以利用 godoc 命令导出文档
每个包都应该又一个注释, 块注释 或行注释
// ping包实现了常用的ping相关的函数
package ping
3、命名
- 函数命名规则:驼峰式命名,名字可以长但是得把功能,必要的参数描述清楚,函数名应当是动词或动词短语,如 postPayment、deletePage、save。并依 Javabean 标准加上 get、set、is前缀。例如:xxx + With + 需要的参数名 + And + 需要的参数名 + …..
- 结构体命名规则:结构体名应该是名词或名词短语,如 Custome、WikiPage、Account、AddressParser,避免使用 Manager、Processor、Data、Info、这样的类名,类名不应当是动词。
- 包名命名规则:包名应该为小写单词,不要使用下划线或者混合大小写。
- 接口命名规则:单个函数的接口名以”er”作为后缀,如 Reader,Writer。接口的实现则去掉“er”
-
type Reader interface { Read(p []byte) (n int, err error) } // 多个函数接口 type WriteFlusher interface { Write([]byte) (int, error) Flush() error }
- 4 常量
- 常量均需使用全部大写字母组成,并使用下划线分词:
5、参数传递
- 对于少量数据,不要传递指针
- 对于大量数据的 struct 可以考虑使用指针
- 传入的参数是 map,slice,chan 不要传递指针,因为 map,slice,chan 是引用类型,不需要传递指针的指针