Go 高质量编程| 青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
本文为青训营课程笔记,配合原课程食用效果更佳哦~
高质量编程
常见编码规范
-
高质量代码是什么?
-
编写的代码能够达到正确可靠、简洁清晰、无性能隐患的目标就能称之为高质量代码
• 各种边界条件是否考虑完备
• 异常情况处理,稳定性保证
• 易读易维护
-
实际应用场景千变万化,各种语言的特性和语法各不相同,但是高质量编程遵循的原则是相通的
-
高质量的编程需要注意以下原则:简单性、可读性、生产力
-
-
为什么要写高质量代码?
- 提升可读性,风格一致的代码更容易维护、需要更少的学习成本、团队合作成本,同时可以降低 Review 成本
-
高质量代码规范
-
格式
- 使用 gofmt 自动格式化代码
- 可以用快捷键Ctrl+Alt+L
-
注释应该
- 解释代码作用结果:适合注释公共符号
- 解释代码运作方式:适合注释方法
- 解释代码实现的原因:解释代码的外部因素
- 解释代码什么情况会出错
- 公共符号始终要注释(包中声明的公共变量、常量、函数以及结构都要加注释)
- 代码是最好的注释
- 注释应该提供代码未表达出的上下文信息
-
Good code has lots of comments, bad code requires lots of comments
好的代码有很多注释,坏代码需要很多注释
—— Dave Thomas and Andrew Hunt
-
命名规范
- 尽量简洁
- 越远则需要携带越多的上下文信息
- 全局变量在其名字中需要更多的上下文信息
-
控制流程
-
尽量保持正常代码路径为最小缩进
- 优先处理错误情况/特殊情况,尽早返回或继续循环来减少嵌套
-
-
错误处理
- 错误的 Wrap 实际上是提供了一个 error 嵌套另一个 error的能力,从而生成一个 error 的跟踪链
- 判定一个错误是否为特定错误,使用 errors.Is
- 在错误链上获取特定种类的错误,使用errors.As
- 不建议在业务代码中使用 panic
- recover 只能在被 defer 的函数中使用(处理panic),嵌套无法生效
-
总结收获
通过样例与知识点结合的方式,学到了go的高质量编程方式;
通过项目样例的讲解,更了解go项目的诞生过程;
又是收获满满的一天,继续努力吧!