编码规范
1.代码格式
推荐使用gofmt自动格式化代码
2.注释
- 注释应该解释代码作用(公共符号始终要注释)
- 注释应该解释代码如何做的
- 注释应该解释代码实现的原因
- 注释应该解释代码什么情况会出错
3.命名规范
- 变量命名
- 函数命名
- 包命名
4.控制流程
- 尽量保持正常代码路径为最小缩进
- 避免复杂的嵌套分支
- 提升代码的可读性和可维护性
- 正常代码沿着屏幕向下移动
5.异常处理
-
简单错误
-
错误的Wrap和Unwrap
-
错误判定:在错误链上获取特定种类的错误,使用error.As
-
panic
- 不建议在业务代码中使用panic
- 调用函数不包含recover会导致程序崩溃
- 若问题可以被屏蔽或者解决,建议使用error代替panic
- 当程序在启动阶段发生不可逆转的错误时,可以在init或main函数中使用panic
-
recover
- recover只能在defer的函数中使用
- 嵌套无法生效
- 只在当前goroutine生效
- 如果需要更多的上下文信息,可以在recover后在log中记录当前的调用栈