高质量编码 | 青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
文章简介
- 如何编写简洁清晰的代码
- 常用Go程序优化手段
如何编写简洁清晰的代码
高质量代码
- 各种边界条件是否考虑
- 异常情况处理,稳定性保证
- 易读易维护
注释应该做什么
- 注释应该解释代码的作用
- 注释应该解释代码是如何做的
- 注释应该解释代码实现的原因
- 注释应该解释代码什么情况会出错
代码是最好的注释,注释以哦那个该提供代码未表达出的上下文信息。
变量-命名规范
- 简洁胜于冗长
- 缩略词全大写,但当期位于变量开头且不需要导出的时候,需要小写
- 例如使用ServeHTTP而不是ServeHttp
- 使用XMLHTTPRequest或者xmlHTTPRequest
- 变量距离其被使用的地方越远,则需要携带越多的上下文信息
- 全局变量在其名字中需要更多的上下文信息,使得在不同地方可以轻易辨认出其含义
函数-命名规范
- 函数名不携带包名的上下文信息,因为包名和函数名总是承兑出现的
- 函数名尽量简短
- 当名未foo的包某个函数返回类型Foo时,可以省略类型信息而不导致歧义
- 当名未foo的包某个函数返回类型T(不是Foo)时,可以在函数名中加入类型信息
包名-命名规范
- 只由小写字母组成。不包含大写字母和下划线等字符
- 简短并包含一定上下文信息
- 不要与标准库同名
控制流程
- 避免嵌套,保持正常流程清晰
- 尽量保持正常代码路径未最小缩进
简单错误-错误与异常处理
- 简单的错误指的是仅出现一次的错误,且在其他地方不需要捕获该错误
- 有限使用errors.New来创建匿名变量来直接表示简答错误
- 如果有格式化要求,使用fmt.Rrrorf