这是我参与「第三届青训营 -后端场」笔记创作活动的的第2篇笔记
高质量编程
简介
编写的代码既正确可靠又清晰简洁,成为高质量的代码。
高质量的代码,不仅让程序执行正确和稳定,也使得后期对程序的维护过程更高效。
编程原则
简单性:编写的代码在保证功能完整正确下要简单清晰;
可读性:编写的代码要使得自己和后人可以高效地阅读和维护;
生产力:整个团队的整体工作效率。
编码规范
代码格式
对于 go 语言,使用 gofmt 自动格式化工具,当保存代码时就会自动格式化为统一的代码格式。
使用 goimports 工具,可以自动管理对各种包的依赖引用,当引用了某个包后,保存代码时会自动添加导入此包的语句。
统一的代码风格,适合高效阅读,便于后期维护。
注释
注释的目的:
- 解释代码的作用;
- 解释代码是如何做的;
- 解释代码实现的原因,即写此代码的外部原因;
- 解释哪些情况代码会出错。
注释需求:对于公共符号必须有注释,任何函数都要注释。
总的来说,注释应该充分说明代码本身不能很好表达出来的信息。
命名规范
要求:
- 命名要简洁明了;
- 缩略词在不需要导出时全大写;
- 在距离被使用地方越远时,命名中越需要更加详细的上下文信息;
- 对于函数名,可以不包含其包名信息;
- 对于包名,全小写字母,但包含上下文信息,使用单数。
控制流程
- 避免过多嵌套,尽量使流程从上到下依次执行;
- 优先处理特殊/出错情况,尽量提前返回,以此减少嵌套;
- 正常的情况在执行所有流程后返回。
错误和异常
- 使用 error 提供简明的上下文信息,便于定位问题所在;
- 在真正异常的情况才使用 panic;
- 使用 recover 要符合要求,只在被 defer 的函数中使用,只在当前 goroutine 生效。