如何在Go中组织项目和包?

时间:2015-04-04 14:18:03

标签: model-view-controller go directory-structure gorilla

我刚开始使用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;控制器"等

0 个答案:

没有答案