我是一名 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 關注
- 185 瀏覽
添加回答
舉報
0/150
提交
取消