我是一名 NodeJS / PHP 开发人员,并且是 Go 的初学者。经过一些研究后,我为我的 REST API 项目提出了这样的 MVC 风格文件夹结构。.+- bin/+- controllers/ +- userController/ +- userController.go+- models/ +- userModel/ +- userModel.go+- main.go因此,我可以让我的代码看起来像这样:import "github.com/gin-gonic/gin"import "controllers/userController"router := gin.Default()router.GET("/user", userController.handleSomeLogicHere)但后来我发现根据GoLang官网的说法,不建议使用camel case和snake case进行封装。我想知道在 Go 中使用 MVC 是否不是一个好习惯(因为我知道有人建议基于模块/依赖项的文件夹结构)?或者我应该将所有控制器和模型更改为一个词,例如 usercontroller 或 userctrl (但这对我来说似乎有点连接)?
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
我会稍微改变一下你的文件夹结构。我不会为每个控制器提供单独的包,而是将它们作为包的一部分controllers(当我谈论控制器时,同样的思路也适用于模型)。
.
+- bin/
+- controllers/
+- user.go
+- models/
+- user.go
+- main.go
为此,我还会稍微更改代码结构以实例化控制器实例,如下所示:
import "models"
import "controllers"
import "github.com/gin-gonic/gin"
userController := controllers.UserController{
Users: models.UserModel{}, //DO your stuff here
}
router := gin.Default()
router.GET("/user", userController.GetUser)
您可以按照自己的意愿为每个控制器创建一个新包,但它很容易会增长为大量包。通过将所有控制器保存在一个包中,可以更轻松地使用。
注意:随着您的应用程序的增长,可能需要创建子包。我能想到的一种情况是将所有仅管理控制器放在一个controllers/admin包中。
- 1 回答
- 0 关注
- 141 浏览
添加回答
举报
0/150
提交
取消