别再写屎山了!Go语言代码规范一篇梳理到底!

🧭 为什么要遵守代码规范?

Go语言设计哲学强调简洁、统一、可读。良好的代码风格是专业开发者的“门面”。

🔹 统一代码风格 → 更容易协作 🔹 避免奇技淫巧 → 降低维护成本 🔹 工具自动化支持好(gofmt, go vet


📌 一、缩进与格式化

✅ 使用 Tab 制表符,不是空格!

func main() {
    fmt.Println("Hello, Go!")
}

🔧 强烈建议:使用 gofmt 自动格式化,不需要手动对齐,保持统一。


🧱 二、包结构与导入顺序

✅ 导入顺序应为:

import (
    "fmt"          // 标准库
    "github.com/x" // 第三方包
    "myapp/utils"  // 本地包
)

🧩 分组之间空一行,整洁有序。


🏷️ 三、变量 & 常量命名规范

类型命名示例说明
包名math, net/http小写,简洁
变量名userID, name驼峰风格(小写开头)
常量名MaxUsers, Pi驼峰或全大写(特殊情况)
类型名User, Config首字母大写用于导出
函数名getUser(), Init()驼峰命名

🛑 不要用下划线、匈牙利命名,Go 强调简洁美学。


📚 四、注释规范

✅ 函数/类型 注释应以名字开头

// Add 加法函数,返回 a + b 的值
func Add(a, b int) int {
    return a + b
}

📌 遵守 Godoc 风格,写文档时直接可用


🔄 五、错误处理

✅ 不要忽略错误!

f, err := os.Open("file.txt")
if err != nil {
    log.Fatal(err)
}

🛑 不要直接用 _ 忽略错误,哪怕只是打印出来也好。


🔁 六、空值判断

✅ 使用 len(x) == 0 替代 x == nil(对 slice/map)

if len(users) == 0 {
    fmt.Println("没有用户")
}

📐 七、控制结构

  • 不要加多余的 else,提倡提前 return

if err != nil {
    return err
}
// 正常逻辑
  • 不要使用三元运算符(Go 不支持)


🧼 八、代码整洁原则

  • 每行最大长度建议不超过 100字符

  • 函数不宜过长,保持函数职责单一

  • 避免魔法数字,使用具名常量

  • 删除无用代码 / 注释


🔧 九、常用工具推荐

工具名用途
gofmt格式化代码
go vet语义分析检查
golint风格检查
staticcheck高级静态分析
goimports自动补全 import

🎯 总结

Go语言强调的是:“简洁就是力量”。代码规范不是束缚,而是风格的体现。在 Go 的世界里,风格是统一的,而不是个性的。

Golang全栈开发完整课程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值