后端go高质量代码要求|青训营笔记
一.什么是高质量
- 编写的代码能够达到正确、可靠、简洁、清晰的目标,这样就可以称为高质量。
- 各种边界条件是否考虑完备
- 异常情况处理,稳定性保证
- 可读性高、易维护。
二.编程原则
- 简单性
- 消除多余的复杂性,用简单的逻辑编写代码
- 不理解的代码无法修复改进
- 可读性
- 代码是给人看的,而不是机器
- 编写可维护代码的第一步是确保代码可读
- 生产力
三.编码规范
- 注释
- 任何不明显的公共功能代码必须加以注释
- 对于库中的任何函数都必须进行注释
- 注释必须解释代码作用、代码如何做、代码实现原因、代码什么情况下回报错
- 代码格式
- 团队必须要规范代码格式,go语言官方推荐使用gofmt进行格式化,
- 命名规范
- 简洁好多冗长
- 缩写词全大写
- 变量距离其被使用的地方越远,则携带的信息就要越多,方便我们在使用这个变量时,了解这个变量的意义。
- 对于package,只用小写字母,不能包括大写字母、下划线等。简短但是要包括一定的上下文信息。不能与标准库同名。
- 控制流程
- 尽量保持正常代码路径为最小缩进。
- 线性原则,处理逻辑尽量走直线,避免复杂的嵌套分支
- 错误和异常处理
- 简单的作物指仅出现一次的错误,切在其他地方不需要补货该错误,
- 优先使用errors.New来创建匿名变量来直接表示简单错误
- 如果有格式化的需求,使用fmt.Errorf
- 不建议在业务代码中使用panic
- 调用函数不包括recover会造成程序崩溃
- 如果问题可以被屏蔽,匿名用error替换panic
- recover只能在defer的函数中使用,只当前的goroutine生效,defer的语句是先进后出