高质量编程课程笔记 | 青训营

81 阅读2分钟

Go语言高质量编程

一、高质量编程简介

1.1 定义

高质量:代码正确可靠、简洁清晰

  • 边界条件考虑完备
  • 异常情况处理,稳定性保证
  • 易读易维护

1.2 原则

  • 简单性:逻辑简单清晰
  • 可读性:确保代码可读,便于功能迭代修改
  • 生产力:保证团队整体工作效率

二、编码规范

  • 代码格式
  • 注释
  • 命名规范
  • 控制流程
  • 错误和异常处理

2.1 代码格式

自动化格式工具:

  • gofmt
  • goimports

2.2 注释

注释位置:
  • 公共符号( 公共变量、常量、函数、结构 )始终要注释
  • 既不明显也不简短的公共功能必须予以注释
  • 对外提供的库中的任何函数
  • 实现接口的方法不需要注释
注释内容:
  • 解释代码作用
  • 解释如何代码做的
  • 解释代码实现原因( 提供额外上下文,解释外部因素
  • 解释什么情况会出错( 便于掌握调用时的限制条件

2.3 命名规范

variable命名:
  • 缩略词全大写,若位于开头则全小写( ServeHTTPxmlHTTPRequest
  • 距离被使用地方越远,需要携带越多上下文信息
function
  • 不携带包名的上下文信息
  • 尽量简短
  • 函数返回类型与包名相同时,可省略类型信息而不导致歧义
package
  • 全部小写字母,不包含大写字母、下划线
  • 简短并包含一定上下文信息
  • 不与标准库同名
  • 一般使用单数而非复数
  • 不破坏上下文信息的情况下使用缩写

2.4 控制流程

  • 避免嵌套,保持正常流程清晰
  • 保持正常代码路径为最小缩进,优先处理错误/特殊情况
  • 线性原理,处理逻辑尽量走直线,避免复杂的嵌套分支

2.5 错误和异常处理

  • 简单错误:使用errors.New()创建匿名变量来表示
  • 复杂错误:WrapUnwrap,或fmt.Errorf()
  • 错误判定:errors.Is()
  • 重大错误:panic()一般用于程序没办法正常工作时,不建议在业务代码中使用