Go命名规则【2】全场景命名避坑指南

好乱呀,文件名是下划线分隔,函数名是大小写,那么URL呢?是中划线吗?

Go 语言初学者最容易在这些"起名规范"里绕晕,因为 Go 在不同场景下的审美标准完全不一样。

我帮你整理了一张"全场景命名避坑指南",你按这个表来就不会乱了:

1. 开发中的四大命名规则

场景 推荐格式 示例 理由
文件名 下划线 refresh_cache.go Go 官方标准库风格,兼容性最强。
Go 函数/变量 驼峰式 GetUserInfo / isReady Go 语言强制规范,导出变量首字母必须大写。
URL 路径 中划线 /api/v1/user-profile SEO 友好,且在浏览器地址栏最易读,也是 RESTful 标准。
JSON 字段 下划线 {"user_id": 1} 跨语言标准,前端 JavaScript/Python 处理最顺手。

2. 深度解析:为什么 URL 推荐中划线?

在 HTTP API 设计中,URL 路径(Path)推荐使用 kebab-case(中划线),原因如下:

  • RFC 规范:域名是不区分大小写的,虽然路径区分,但为了统一,大家习惯全部小写。
  • 可读性:/api/user_profile(下划线)在带有下划线的超链接里,下划线会被链接本身的横线遮住,看不清是空格还是符号。而 /api/user-profile 永远清晰。
  • 大厂惯例:Google、GitHub 等主流 API 几乎全部采用中划线。

3. 一个典型的代码片段(串联所有规范)

看这段代码,你就知道它们是怎么共存的了:

复制代码
// 文件名: internal/handler/user_handler.go (下划线)

package handler

// 结构体字段用 JSON 标签定义下划线 (JSON规范)
type UserResponse struct {
    UserName string `json:"user_name"` 
}

// 函数名用驼峰 (Go规范)
func GetUserHandler(c *gin.Context) {
    // 逻辑...
}

// 路由注册 (URL规范)
// 浏览器访问: http://api.com
r.GET("/get-user-info", GetUserHandler) 

4. 总结你的疑惑

  1. 文件:refresh_cache.go
  2. 函数:func RefreshCache()
  3. URL:/api/refresh-cache ✅(如果是内部 API,/api/refresh_cache 也能用,但不标准)

心态建设:

Go 是一门"强迫症"语言。你只需要记住:"给电脑看的文件名用下划线,给人看的网址用中划线,给 Go 编译器看的函数用驼峰"。

相关推荐
妙码生花2 天前
从 PHP 到 AI + Golang,程序员自救转型手记(八):设计管理员模型、热重载配置
前端·后端·go
tyung3 天前
Go 手写 Wait-Free MPSC 无界队列:SwapPointer 实现多生产者无锁入队
后端·go
陈明勇3 天前
Go 1.26 新特性回顾:语言增强、工具升级与 Green Tea GC 默认启用
后端·go
妙码生花4 天前
从 PHP 到 AI + Golang,程序员自救转型手记(二):目录结构、初始化 GIT、设计并开发配置系统
前端·后端·go
leeyi4 天前
Deer-Go:字节 Deer-Flow 的 Go 移植,深度研究 Agent 全拆解
go·aigc·agent
Bolt5 天前
TypeScript 7.0 来了:当 tsc 用 Go 重写之后
javascript·typescript·go
Go_error5 天前
Datatypes:Go 轻松支持数据库JSON类型
后端·go
任沫6 天前
Agent之Function Call
javascript·人工智能·go
唐青枫6 天前
别再把 interface 当万能盒子:Go 接口从隐式实现到项目解耦
go
tyung9 天前
Go 手写有界 SPSC 环形队列:无 CAS、无锁、Cache 友好的无锁模型
后端·go