关于Golang目录结构,我有些困惑.
根据名为< The way to go>的书,项目代码应放在src中,并推荐以下目录结构.
├──src/ | ├──main.go | ├──say/ | | ├──say.go | | ├──say_test.go ├──bin/ | ├──say └──pkg/ └──linux_amd64/ └──say.a
但我发现github.com上有很多软件包,没有src目录.
例如:
https://github.com/facebookgo/grace
https://github.com/astaxie/beego
所以,我不知道是否需要src目录.
我有一些项目,他们有相互依赖.
它们在私有GitLab存储库中管理.
我该如何组织它们?
当我开始使用Go时,本约翰逊的
This文章引导了我.
从这样的事情开始通常是好的(假设你在$GOPATH / src / myproject的项目目录中:
├──cmd/ -- this is where you compose several packages in to main package | ├──foo -- an example would be `foo` | | ├──main.go ├──pkg/ -- this is where put your reusable packages | ├──pkg1 -- reusable package 1 | ├──pkg2 -- reusable package 2 ├──otherpackage1 | ├── ... ├──otherpackage2 | ├── ...
对于这种项目结构,您可以查看0700年的this示例.
有时它取决于您的需求.在我们的工作流程中,我们使用名为fresh的热代码重新加载工具,因此我们需要将main.go放在项目根目录上,以便该工具可以检测所有文件更改并重建源代码.
├──app/ | ├──app.go ├──model/ -- | ├──model.go ├──store | ├──store.go ├──main.go -- this is where the app starts ├──...
在app.go包中,我有类似func Run()错误的东西启动应用程序.在main.go上,我只是调用函数:
... func main(){ log.Fatal(app.Run()) }