一尘不染

同一项目在不同文件夹中的相同软件包名称

go

我正在做一个大项目,该项目很可能最终包含成千上万行代码,对于当前结构,我喜欢这样:

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

这样做的问题是controllers和models目录包含很多文件,全部使用package controllerspackage models。因此,我正在考虑将其拆分为:

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

凡在控制器包的用户文件中可能包含的文件routes.goprofile.go等等。

现在,我读到像controllersUser或那样的软件包是不好的做法controllers_user,但是我担心对这两个软件包进行命名可能不是一个好主意,package user因为它们是同一项目的一部分(即使它们位于不同的目录中)。

根据我的情况,您会建议使用哪种命名结构?

我认识到,位于控制器/用户的文件将无法与模型/用户交互甚至通过它们共享相同的package user名称(除非我导入课程的),我也知道,我可以轻松导入这两个为userControllers "controllers/user"userModels "models/user",但我想知道这样做是不好的做法吗?


阅读 204

收藏
2020-07-02

共1个答案

一尘不染

我建议您阅读Go软件包的样式指南。这是一篇很棒的文章,其中包含有关Go中项目布局的最佳建议。我很难建议您为您的特定情况命名,因为它在很大程度上取决于系统所具有的功能。有时,我将其视为“应用程序每个部分的打包”。但我知道我的描述可能会导致过于个人化,并且不会带来太大帮助。

2020-07-02