格式化
为了减少格式化问题带来的争议, 可以使用 gofmt程序对源码进行格式化。
gofmt -w .\src\ch1\main\hello_world.go
注释
每个包都应有一个Package comment 包注释, 对于多文件程序包,程序包注释仅需要出现在一个文件中,任何一个都可以。 注释中应介绍介绍并包整体功能及有关的信息。
Doc comment文档注释最好作为完整的句子使用,它可以进行各种各样的自动演示。 第一句应为单句摘要,以声明的名称开头。
go doc
工具会从 Go 程序和包文件中提取注释以并生成相关文档。
godoc 可以启动本地web服务
godoc -http=:12345 -goroot f:\\go\\gotest
浏览器输入http://127.0.0.1:12345, 即可查看本地f:\go\gotest由注释生成的文档。
命名
包名;当一个包被导入后,包名就会成了内容的访问器。按照惯例, 包应当以小写单词来命名,且不应使用下划线或驼峰记法。如 import “bytes”, 如果包名发生冲突可以使用别名方式来解决
另外就是包名应为其源码目录的名称。如:src/pkg/encoding/base64 中的包应作为 “encoding/base64”
包的导入者可通过包名来引用其内容,避免冲突,bufio.Reader 不会与 io.Reader 发生冲突
Getters go不自动支持getter和setter, 有个名为 owner 的字段,其getter应当名为 Owner(大写,可导出)而非 GetOwner, sett而没有这方面约定
owner := obj.Owner() if owner != user { obj.SetOwner(user) }
接口, 包含一个方法的接口应当以该方法的名称加上 -er 后缀来命名,如 Reader、Writer、 Formatter、CloseNotifier 等。不要用Read、Write、Close、Flush、 String 等请不要用这些名称为自己的方法命名。
书写格式, MixedCaps or mixedCaps 首字母大写或小写的驼峰记法,而不是用下划线链接。
参考及引用
图片来自 twitter Ines B @moraimauy
https://golang.org/doc/effective_go
Comments are closed.