- 指导原则
a) 简单性
b) 可读性
c) 生产力
- 标识符
a) 选择标识符是为了清晰,而不是简洁
b) 标识符长度
c) 上下文是关键
d) 不要用变量类型命名你的变量
e) 使用一致的命名方式
f) 使用一致的声明样式
g) 成为团队合作者
- 注释
a) 关于变量和常量的注释应描述其内容而非其目的
b) 公共符号始终要注释
c) 不要注释不好的代码,将它重写
d) 与其注释一段代码,不如重构它
- 包的设计
a) 一个好的包从它的名字开始
b) 好的包名应该是唯一的
c) 避免使用类似 base
,common
或 util
的包名称
d) 尽早 return
而不是深度嵌套
e) 让零值更有用
f) 避免包级别状态
- 项目结构
a) 考虑更少,更大的包
b) 通过 import
语句将代码排列到文件中
c) 优先内部测试再到外部测试
d) 使用 internal
包来减少公共API
e) 确保 main
包内容尽可能的少
- API 设计
a) 设计难以被误用的 API
b) 警惕采用几个相同类型参数的函数
c) 为其默认用例设计 API
d) 不鼓励使用 nil
作为参数
e) 首选可变参数函数而非 []T
参数
f) 让函数定义它们所需的行为
- 错误处理
a) 通过消除错误来消除错误处理
b) 计算行数
c) WriteResponse
d) 错误只处理一次
e) 为错误添加相关内容
f) 使用 github.com/pkg/errors
包装 errors
- 并发
a) 保持自己忙碌或做自己的工作
b) 将并发性留给调用者
c) 永远不要启动一个停止不了的 goroutine
网友评论