行之有效的Golang编码规范

本文介绍了遵循Golang编码规范的重要性,包括命名要准确直观,避免使用缩写;控制变量作用域和存活时间,优化布尔判断;限制循环复杂度,提倡单一职责的函数;注释应当高效,避免解释晦涩代码;并引用了《代码大全》和《重构》等书籍作为参考。
摘要由CSDN通过智能技术生成

编码规范

熟悉编码规范可以帮助我们写出可读性高,可测试性高的代码
同时编码规范也是小型重构的利器,现在我们从命名,变量,循环,注释,函数等方面,谈谈如何从编码角度提升整体项目质量。

命名

  1. 命名的首要要求是准确直观地表达意图,次要要求是简短。

除了一些大家比较熟知的缩写外,不推荐使用缩写。
比如:sec 表示 second、str 表示 string、num 表示 number、doc 表示 document。

  1. 命名的技巧是:动词➕宾语,也就是"谁干了什么事"
    比如:AddTopicDynamic => 添加主题动态

动词-Add 宾语-TopicDynamic

  1. 用意义明确的常量代替魔法数字

有一次遇到一个if判断,心里已经MMP了,鬼知道这个 count*5 代表什么意思😝

if (groupCount < count*5) {
   
    // 业务代码
}
  1. 分组命名常量
    比如:redis的key
Dynamics      = "xxx"   // hash
GlobalDynamic = "xxx"   // 全局动态
DynamicPushed = "xxx"   // 用于标记动态是否已推送
-------------------------------------------------
// 使用前缀Key将常量分组,可读性更强
KeyDynamics      = "xxx"   // hash
KeyGlobalDynamic = "xxx"   // 全局动态
KeyDynamicPushed = "xxx"   // 用于标记动态是否已推送

变量

  1. 要控制变量的作用域,应该private的变量绝不public。
  2. 要控制变量的存活时间,变量的存活时间越短,代码越易读,重构起来越简单。
    比如:在变量即将被使用时再初始化
// 优化前
func Demo() {
   
    paramA := "A"
    // 业务代码1
    
    // 业务代码2
    paramA = "B"
}
---------------------------------------
// 在变量即将被使用时再初始化,缩短变量生命周期
func Demo() {
   
    // 业务代码1
    
    // 业务代码2
    paramA := "A"
    paramA 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值