这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天,今天课程的内容是高质量编程与性能调优实战,通过本次课,学习到了go语言的代码规范以及性能优化方能的知识,具体细节如下。
高质量编程
简介
所谓高质量编程,就是指所写的代码可读性、可靠性、易维护性、安全性、效率等都优秀。高质量的编程需要注意以下原则:简单性、可读性、生产力。
常见编码规范
代码格式
使用goland编辑器进行go语言编写时,其中内置了gofmt工具,可以自动格式化代码,从而保证代码格式一致。
注释
每个逻辑复杂、不易理解的常量、方法都应该加上合适的注释。一个好的注释应当简明扼要的介绍代码,主要包括:
- 注释应该解释代码的功能
- 注释要解释代码是如何实现的
- 注释应该解释为什么需要这段代码
- 注释应当标明代码的使用规范以及不允许的情况
另外一个好的命名也会大大增加代码的可读性以及减少注释,注释应当是作为补充而不是再解释已有的信息。
错误和异常处理
- 简单错误处理
- 优先使用 errors.New 来创建匿名变量来直接表示该错误。有格式化需求时使用 fmt.Errorf
- 错误的 Wrap 和 Unwrap
- 在 fmt.Errorf 中使用 %w 关键字来将一个错误 wrap 至其错误链中
- 错误判定
- 使用 errors.Is 可以判定错误链上的所有错误是否含有特定的错误。
- 在错误链上获取特定种类的错误,使用 errors.As
- panic
- 不建议在业务代码中使用 panic
- 如果当前 goroutine 中所有 deferred 函数都不包含 recover 就会造成整个程序崩溃
- 当程序启动阶段发生不可逆转的错误时,可以在 init 或 main 函数中使用 panic
总结
通过本次课程学习到了高质量编程与性能调优方面的知识,尤其是代码规范方面得到了比较大的进步。