编码规范
熟悉编码规范可以帮助我们写出可读性高,可测试性高的代码
同时编码规范也是小型重构的利器,现在我们从命名,变量,循环,注释,函数等方面,谈谈如何从编码角度提升整体项目质量。
命名
- 命名的首要要求是准确直观地表达意图,次要要求是简短。
除了一些大家比较熟知的缩写外,不推荐使用缩写。
比如:sec 表示 second、str 表示 string、num 表示 number、doc 表示 document。
- 命名的技巧是:动词➕宾语,也就是"谁干了什么事"
比如:AddTopicDynamic => 添加主题动态
动词-Add 宾语-TopicDynamic
- 用意义明确的常量代替魔法数字
有一次遇到一个if判断,心里已经MMP了,鬼知道这个 count*5 代表什么意思😝
if (groupCount < count*5) {
// 业务代码
}
- 分组命名常量
比如:redis的key
Dynamics = "xxx" // hash
GlobalDynamic = "xxx" // 全局动态
DynamicPushed = "xxx" // 用于标记动态是否已推送
-------------------------------------------------
// 使用前缀Key将常量分组,可读性更强
KeyDynamics = "xxx" // hash
KeyGlobalDynamic = "xxx" // 全局动态
KeyDynamicPushed = "xxx" // 用于标记动态是否已推送
变量
- 要控制变量的作用域,应该private的变量绝不public。
- 要控制变量的存活时间,变量的存活时间越短,代码越易读,重构起来越简单。
比如:在变量即将被使用时再初始化
// 优化前
func Demo() {
paramA := "A"
// 业务代码1
// 业务代码2
paramA = "B"
}
---------------------------------------
// 在变量即将被使用时再初始化,缩短变量生命周期
func Demo() {
// 业务代码1
// 业务代码2
paramA := "A"
paramA