Go 项目目录:cmd、internal、pkg 要不要全用
很多 Go 项目一开始就照着大仓库建 cmd、internal、pkg,最后目录很整齐,代码却不知道该放哪。我的经验是:目录结构应该服务边界,而不是服务仪式感。
cmd 适合放入口,入口只做配置加载、依赖组装和启动服务;internal 适合放业务不可被外部复用的代码;pkg 只有在确实要给别的项目 import 时才值得出现。
cmd/api/main.go
internal/order/service.go
internal/order/repository.go
internal/platform/mysql.go如果一个函数只被当前业务调用,先放在 internal。过早放进 pkg 会暗示它是稳定 API,后面每次改签名都要考虑外部依赖。
小项目可以先保持三层以内:入口、业务、基础设施。等边界真的变清楚,再拆包,成本更低。
版权申明
本文系作者 @blogger 原创发布在Go 项目目录:cmd、internal、pkg 要不要全用。未经许可,禁止转载。
评论
-- 评论已关闭 --
全部评论