我刚开始使用Go,到目前为止一切顺利。在较小的应用程序中,将所有文件都放在应用程序的根目录中似乎没有问题。
但是,我正在开发一个MVC风格的应用程序(无头,暂时跳过视图),以及使用"包"或"模块"我考虑将每个组件的部分组织到一个目录中,其中所有文件都属于一个公共包。
例如:
app.go
posts/
controller.go
model.go
users/
controller.go
model.go
使用上述格式,app.go根据路由模式将http请求路由到处理程序(我使用gorilla mux
包):
import (
"github.com/gorilla/mux"
"net/http"
"users"
)
r.HandleFunc("/users", users.All)
r.HandleFunc("/users/{id}", users.Find)
...其中users
是包含模型和控制器的包。用户控制器将处理All和Find请求,而users包中的用户模型可以执行任何查询逻辑。
在Go中构建和组织MVC应用程序(比如博客)是否有更好的约定? (我也看了here并且它有点帮助)。在其他堆栈(ExpressJS,Rails等)中,我习惯于拥有常见的模型,视图和控制器目录,但这需要我将所有模型打包为"模型"和控制器作为&# 34;控制器"等