golang包的内部组织与许多文件

时间:2014-04-28 17:23:09

标签: go package

我有一个Go图书馆,我想分发。它有62个源文件,但我想将API保存在一个包中。 有没有办法可以在一个软件包中使用多个目录来代码?它的来源不是很多,因为源文件本身很小,而且我喜欢尽可能保持这种可导航性。

由于它是用其他语言的类似库建模的,因此它目前有两个包:/ project和/ project / models。在了解了Go包装的更多信息之后,我现在意识到这对于分发和使用来说是笨重的。用户更喜欢单个包。

是否有" gopheric"这样做的方式?

2 个答案:

答案 0 :(得分:4)

阅读这两篇文章,以便更好地理解最佳实践:

  1. Go In Production
  2. Organizing Go code
  3. 每个路径目录可以是您应用中的单独模块/包:

    github.com/myaccount/myapp/
        README.md
        Makefile
        applib/
            cmd/
                main.go
                main_test.go
                handlers.go
                handlers_test.go
            lib1/
                main.go
                main_test.go
                process.go
                process_test.go
            lib2/
                foo.go
                foo_test.go
                bar.go
                bar_test.go
    

答案 1 :(得分:2)

不,它很简单:一个目录==一个包。但是有一些"主要"打包"帮助"子目录中的包不是真正的"笨重的分发"因为go get处理得非常好。