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

时间:2017-04-08 15:05:37

标签: go

我正在开展一个大型项目,最终可能包含数万行代码,对于我喜欢的当前结构:

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

问题在于控制器和模型目录包含大量文件,所有文件都使用package controllerspackage models。因此,我正在考虑将其拆分:

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

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

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

根据我的情况,您会推荐什么样的命名结构?

我意识到控制器/用户中的文件将无法与模特/用户交互,即使他们共享相同的package user名称(除非我导入当然),我也知道我可以很容易导入userControllers "controllers/user"userModels "models/user",但我不知道这样做是不是很糟糕?

1 个答案:

答案 0 :(得分:4)

我建议你阅读style guideline for Go packages。这是一本精彩的读物,包含了我在Go中的项目布局中找到的关于这个主题的最佳建议。我很难建议您为特定情况命名,因为它过分依赖于您的系统所具有的功能。有时,我认为它是应用程序的每个部分的"包#。但我理解我的描述可能过于个人化而且没有多大帮助。