这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天,今天主要学习了Go语言高质量编程与性能调优实战的相关内容。课程主要分为高质量编程和性能调优实战两部分。
高质量编程
简介
高质量代码是指正确可靠且简洁清晰的代码,它有着以下的三个要求和编程原则。
三个要求: 边界条件考虑是否完备、异常情况处理与稳定性保证、易读易维护
编程原则: 简单性、可读性(代码是给人看的)、生产力
编码规范
编码规范主要分为以下五点,包含代码格式、注释、命名规范、控制流程、错误和异常处理这五点。
代码格式
Go语言工具链中自带的自动格式化代码工具gofmt。类似地,goimports对依赖导入的包格式进行管理。
注释
注释应该在代码不直观的时候出现,从而减少另外的程序员阅读的困惑。注释的作用包含但不仅限于以下几种:
- 解释代码作用
- 解释代码如何实现
- 解释代码实现的原因
- 解释代码在什么情况下出错
- 解释包中的公共符号(变量、常量、函数以及结构体)
命名规范
命名规范主要针对于变量、函数和包的命名,规范分别如下:
变量:
- 缩略词需要大写(ServeHTTP),但其位于变量开头但不需要导出时(xmlHTTPRequest),使用全小写。
- 变量距离被调用的地方越远,需要携带越多的上下文信息(全局变量命名需要包含较多的上下文信息)
函数:
- 函数名不需要包含包名的信息,因为两者成对出现。
- 当返回类型和包类型不一致,则可以在函数名中加入类型信息。
包名:
- 简短且只包含小写字母
- 不与标准库同名,不与常用变量名同名
- 使用单数而不是复数
控制流程:
- 避免嵌套、保持正常流程的清晰
- 尽量保持最小缩进,有错误尽早返回
错误和异常处理:
1. 简单错误:
2. 错误链跟踪:
3. 错误判定:
4. panic(慎用):
5. recover: