Go语言高质量编程 | 青训营笔记

65 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天,今天主要学习了Go语言高质量编程与性能调优实战的相关内容。课程主要分为高质量编程和性能调优实战两部分。

image.png

高质量编程

简介

高质量代码是指正确可靠且简洁清晰的代码,它有着以下的三个要求和编程原则。

三个要求: 边界条件考虑是否完备、异常情况处理与稳定性保证、易读易维护

编程原则: 简单性、可读性(代码是给人看的)、生产力

编码规范

编码规范主要分为以下五点,包含代码格式、注释、命名规范、控制流程、错误和异常处理这五点。

代码格式

Go语言工具链中自带的自动格式化代码工具gofmt。类似地,goimports对依赖导入的包格式进行管理。

注释

注释应该在代码不直观的时候出现,从而减少另外的程序员阅读的困惑。注释的作用包含但不仅限于以下几种:

  1. 解释代码作用
  2. 解释代码如何实现
  3. 解释代码实现的原因
  4. 解释代码在什么情况下出错
  5. 解释包中的公共符号(变量、常量、函数以及结构体)

命名规范

命名规范主要针对于变量、函数和包的命名,规范分别如下:

变量:

  1. 缩略词需要大写(ServeHTTP),但其位于变量开头但不需要导出时(xmlHTTPRequest),使用全小写。
  2. 变量距离被调用的地方越远,需要携带越多的上下文信息(全局变量命名需要包含较多的上下文信息)

函数:

  1. 函数名不需要包含包名的信息,因为两者成对出现。
  2. 当返回类型和包类型不一致,则可以在函数名中加入类型信息。

包名:

  1. 简短且只包含小写字母
  2. 不与标准库同名,不与常用变量名同名
  3. 使用单数而不是复数

控制流程:

  1. 避免嵌套、保持正常流程的清晰
  2. 尽量保持最小缩进,有错误尽早返回

错误和异常处理:

1. 简单错误:

image.png

2. 错误链跟踪:

image.png

3. 错误判定:

image.png

image.png

4. panic(慎用):

image.png

5. recover:

image.png