go - 同一项目的不同文件夹中的相同包名称

标签 go

我正在从事一个可能最终包含数万行代码的大项目,对于我目前的结构,我是这样的:

main.go
controllers/NAME.go
models/NAME.go

问题是 Controller 和模型目录包含很多文件,所有文件都使用package controllerspackage models。因此,我正在考虑像这样拆分它:

main.go
controllers/user/NAME.go
models/user/NAME.go

Controller 包中的用户文件可能包含 routes.goprofile.go 等文件。

现在,我读到将包命名为 controllersUsercontrollers_user 是不好的做法,但我担心将两者都命名为 package 可能不是一个好主意user 因为它们是同一个项目的一部分(即使它们位于不同的目录中)。

根据我的情况,您会推荐哪种命名结构?

我意识到位于 Controller /用户中的文件将无法与模型/用户交互,即使它们共享相同的 package user 名称(当然除非我导入),而且我也我知道我可以轻松导入 userControllers "controllers/user"userModels "models/user",但我想知道这样做是否是一种不好的做法?

最佳答案

我建议你阅读 style guideline for Go packages .这是一本很棒的读物,包含了我在 Go 中的项目布局方面找到的关于该主题的最佳建议。尽管我很难建议您为您的特定案例命名,因为它在很大程度上取决于您的系统具有的功能类型。有时,我将其视为“应用程序的每个部分的一个包”。但我知道我的描述可能会过于个人化并且没有太大帮助。

关于go - 同一项目的不同文件夹中的相同包名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43295691/

相关文章:

go - 如果关键测试失败如何中止测试

networking - 以编程方式模拟数据包丢失和延迟

go - 在 Go 中直接在堆上构造原始类型?

go - 如何检查套接字是否正在监听

go - 检测重命名失败的原因

go - 将 Jenkins Freestyle Golang 作业转换为 Jenkinsfile

go - 指向值略有不同的结构的指针 slice 重复

go - 将内容 append 到特定部分中的 Go 模板

json - 在golang中处理json继承

regex - golang如何处理复杂的正则表达式模式