go - 包含许多文件的 golang 包的内部组织

标签 go package

我有一个要分发的 Go 库。它有 62 个源文件,但我想将 API 放在一个包中。 有没有一种方法可以在一个包中使用多个目录来存放代码?这不是一个很大的源代码,因为源文件本身很小,如果可以使其可导航。

由于它是以其他语言的类似库为蓝本,它目前有两个包:/project 和/project/models。在学习了更多关于 Go 打包的知识之后,我现在意识到这对于分发和使用来说是笨拙的。用户更喜欢单个包。

是否有一种“gopheric”方式来做到这一点?

最佳答案

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

  1. Go In Production
  2. Organizing Go code

每个路径目录都可以是您应用中的一个单独模块/包:

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

关于go - 包含许多文件的 golang 包的内部组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23347375/

相关文章:

Android 通过包名获取安装位置

java - 无需安装即可为不同平台创建独立的 Java 可执行文件

go - 如何使用 TinyGo 解码 JWT token

oop - 接口(interface)继承自golang中的其他接口(interface)

java - sun.awt.AppContext 和其他来源?

python - 包 "within"模块

php - Composer 无法安装

go - 找出构建二进制文件的 Go 版本?

Go 项目和依赖项

go - 从Go lang的dynamodb表中获取所有唯一值