Go 语言最佳实践

Go 语言最佳实践

1.   指导原则

a)   简单性

b)   可读性

c)   生产力

 

2.   标识符

a)   选择标识符是为了清晰,而不是简洁

b)   标识符长度

c)   上下文是关键

d)   不要用变量类型命名你的变量

e)   使用一致的命名方式

f)   使用一致的声明样式

g)   成为团队合作者

 

3.   注释

a)   关于变量和常量的注释应描述其内容而非其目的

b)   公共符号始终要注释

c)   不要注释不好的代码,将它重写

d)   与其注释一段代码,不如重构它

 

4.   包的设计

a)   一个好的包从它的名字开始

b)   好的包名应该是唯一的

c)   避免使用类似 `base`,`common` 或 `util` 的包名称

d)   尽早 `return` 而不是深度嵌套

e)   让零值更有用

f)   避免包级别状态

 

5.   项目结构

a)   考虑更少,更大的包

b)   通过 `import` 语句将代码排列到文件中

c)   优先内部测试再到外部测试

d)   使用 `internal` 包来减少公共API

e)   确保 `main` 包内容尽可能的少

 

6.   API 设计

a)   设计难以被误用的 API

b)   警惕采用几个相同类型参数的函数

c)   为其默认用例设计 API

d)   不鼓励使用 `nil` 作为参数

e)   首选可变参数函数而非 `[]T` 参数

f)   让函数定义它们所需的行为

 

7.   错误处理

a)   通过消除错误来消除错误处理

b)   计算行数

c)   WriteResponse

d)   错误只处理一次

e)   为错误添加相关内容

f)   使用 `github.com/pkg/errors` 包装 `errors`

 

8.   并发

a)   保持自己忙碌或做自己的工作

b)   将并发性留给调用者

c)    永远不要启动一个停止不了的 goroutine

 

全文链接:http://golang.ren/article/7739