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

fis*_*ker 4 go

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

main.go
controllers/NAME.go
models/NAME.go
Run Code Online (Sandbox Code Playgroud)

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

main.go
controllers/user/NAME.go
models/user/NAME.go
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

luc*_*tte 6

我建议你阅读Go 包的风格指南。这是一本非常棒的读物,其中包含了我在 Go 中的项目布局方面找到的关于该主题的最佳建议。不过,我很难建议您为您的具体情况命名,因为它很大程度上取决于您的系统具有的功能类型。有时,我将其视为“应用程序的每个部分的包”。但我知道我的描述可能过于个人化并且没有太大帮助。