编码规范|青训营

98 阅读1分钟

编码规范

1.代码格式

推荐使用gofmt自动格式化代码

2.注释

  • 注释应该解释代码作用(公共符号始终要注释) img_9.png
  • 注释应该解释代码如何做的 img_10.png
  • 注释应该解释代码实现的原因 img_11.png
  • 注释应该解释代码什么情况会出错 img_12.png

3.命名规范

  • 变量命名 img_13.png
  • 函数命名 img_14.png
  • 包命名 img_15.png

4.控制流程

  • 尽量保持正常代码路径为最小缩进
  • 避免复杂的嵌套分支
  • 提升代码的可读性和可维护性
  • 正常代码沿着屏幕向下移动

5.异常处理

  • 简单错误 img_16.png

  • 错误的Wrap和Unwrap img_17.png

  • 错误判定:在错误链上获取特定种类的错误,使用error.As

  • panic

    • 不建议在业务代码中使用panic
    • 调用函数不包含recover会导致程序崩溃
    • 若问题可以被屏蔽或者解决,建议使用error代替panic
    • 当程序在启动阶段发生不可逆转的错误时,可以在init或main函数中使用panic
  • recover

    • recover只能在defer的函数中使用
    • 嵌套无法生效
    • 只在当前goroutine生效
    • 如果需要更多的上下文信息,可以在recover后在log中记录当前的调用栈