Effective Go – 1

格式化

为了减少格式化问题带来的争议, 可以使用 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.