我正在做一个大项目,该项目很可能最终包含成千上万行代码,对于当前结构,我喜欢这样:
main.go controllers/NAME.go models/NAME.go
这样做的问题是controllers和models目录包含很多文件,全部使用package controllers和package models。因此,我正在考虑将其拆分为:
package controllers
package models
main.go controllers/user/NAME.go models/user/NAME.go
凡在控制器包的用户文件中可能包含的文件routes.go,profile.go等等。
routes.go
profile.go
现在,我读到像controllersUser或那样的软件包是不好的做法controllers_user,但是我担心对这两个软件包进行命名可能不是一个好主意,package user因为它们是同一项目的一部分(即使它们位于不同的目录中)。
controllersUser
controllers_user
package user
根据我的情况,您会建议使用哪种命名结构?
我认识到,位于控制器/用户的文件将无法与模型/用户交互甚至通过它们共享相同的package user名称(除非我导入课程的),我也知道,我可以轻松导入这两个为userControllers "controllers/user"和userModels "models/user",但我想知道这样做是不好的做法吗?
userControllers "controllers/user"
userModels "models/user"
我建议您阅读Go软件包的样式指南。这是一篇很棒的文章,其中包含有关Go中项目布局的最佳建议。我很难建议您为您的特定情况命名,因为它在很大程度上取决于系统所具有的功能。有时,我将其视为“应用程序每个部分的打包”。但我知道我的描述可能会导致过于个人化,并且不会带来太大帮助。