我正在开展一个大型项目,最终可能包含数万行代码,对于我喜欢的当前结构:
main.go
controllers/NAME.go
models/NAME.go
问题在于控制器和模型目录包含大量文件,所有文件都使用package controllers
和package models
。因此,我正在考虑将其拆分:
main.go
controllers/user/NAME.go
models/user/NAME.go
控制器包中的用户文件可能包含routes.go
,profile.go
等文件。
现在,我读到了为controllersUser
或controllers_user
这样的软件包命名的不良做法,但我担心将这两个软件包命名为package user
可能不是一个好主意。他们是同一个项目的一部分(即使他们位于不同的目录中)。
根据我的情况,您会推荐什么样的命名结构?
我意识到控制器/用户中的文件将无法与模特/用户交互,即使他们共享相同的package user
名称(除非我导入当然),我也知道我可以很容易导入userControllers "controllers/user"
和userModels "models/user"
,但我不知道这样做是不是很糟糕?
答案 0 :(得分:4)
我建议你阅读style guideline for Go packages。这是一本精彩的读物,包含了我在Go中的项目布局中找到的关于这个主题的最佳建议。我很难建议您为特定情况命名,因为它过分依赖于您的系统所具有的功能。有时,我认为它是应用程序的每个部分的"包#。但我理解我的描述可能过于个人化而且没有多大帮助。