cron下面有一个刷新缓存的文件,我原来是refresh_cache.go,标准写法是这样的么?还是refreshCache.go?还是refresh-cache.go
在 Go 语言中,文件命名有一套非常明确的"潜规则"。对于你的 refresh_cache.go,建议如下:
1. 结论:首选 refresh_cache.go (下划线命名)
在 Go 项目中,小写 + 下划线 是最标准、最常见的写法。
refresh_cache.go:推荐。符合 Go 社区主流习惯,清晰易读。refreshCache.go:不推荐。Go 的文件名几乎不使用驼峰式(驼峰通常只用于变量、结构体和函数名)。refresh-cache.go:不推荐。中划线在某些构建工具或特定场景下可能会引起误解,Go 官方标准库中极少见到。
2. 为什么选下划线?
Go 的源码(标准库)几乎统一使用下划线命名法。
- 例如:
runtime/internal/atomic/atomic_test.go,net/http/internal/chunked_test.go。 - 系统适配性:下划线在所有操作系统(Windows, Linux, macOS)的文件系统中兼容性最好,且不会因为大小写敏感问题导致编译失败。
3. 更进阶的"Go 味道"写法
如果你的 cron 目录下有很多文件,Go 开发者有时会追求更短的命名,或者根据功能命名:
- 如果该目录下只有缓存相关的定时任务:可以直接叫
cache.go。 - 如果是一个具体的清理动作:可以叫
clear_cache.go。
4. 目录组织建议
既然你在做微服务,cron 目录下的代码组织通常有两种风格:
-
风格 A(平铺式):
internal/cron/ ├── refresh_cache.go ├── sync_order.go └── scheduler.go // 用于注册所有定时任务的入口 -
风格 B(模块化):如果某个任务特别复杂。
internal/cron/ └── cache_task/ ├── handler.go └── loader.go
总结
直接把文件名定为 refresh_cache.go 即可。
另外提醒一点:在 refresh_cache.go 内部,定义的函数名应该是驼峰式的,例如:
package cron
// 函数名要大写驼峰(如果要被外面调用)
func RefreshCacheHandler() {
// 调用 logic 层的代码
}