草庐IT

go - 组织我的代码的惯用方式

我觉得悬而未决的“关闭问题,太模糊,意见,......”但这里是。我如何组织我的go代码库?我有一个非常重要的应用程序(unix守护进程),它与其他进程对话,读/写数据库,与网络服务器对话,具有内部状态。在C++中,我会编写一堆类(可能在主要子组件的子目录中)。假设这是项目然后在更高层次上,我有与该项目关联的实用程序cli函数。projcli1,projcli2....我假设与一个项目相关的所有代码都在一个GOPATH下如果我正在从事几个不相关的项目会怎么样。我仍然使用一个GOPATH还是每个项目一个。我试图找到示例代码库,但唯一的大集合是包存储库,那是一堆库-这实际上不是一回事。如果

go - 组织我的代码的惯用方式

我觉得悬而未决的“关闭问题,太模糊,意见,......”但这里是。我如何组织我的go代码库?我有一个非常重要的应用程序(unix守护进程),它与其他进程对话,读/写数据库,与网络服务器对话,具有内部状态。在C++中,我会编写一堆类(可能在主要子组件的子目录中)。假设这是项目然后在更高层次上,我有与该项目关联的实用程序cli函数。projcli1,projcli2....我假设与一个项目相关的所有代码都在一个GOPATH下如果我正在从事几个不相关的项目会怎么样。我仍然使用一个GOPATH还是每个项目一个。我试图找到示例代码库,但唯一的大集合是包存储库,那是一堆库-这实际上不是一回事。如果

go - 如何在子目录下构建go项目的C依赖

我正在为Go中的C库编写Go包装器。问题是,C库在许多Linux发行版上不可用,所以我想要一个“去获取github.com/me/mylibrary”的解决方案,不需要任何人安装该库。一种解决方案是将库的源代码添加到子目录中。然后当我的项目用goget构建时,我也需要自动构建这个库。但我不知道如何将其自动化。或者我可以有一个脚本来下载源代码,提取并构建它但我不知道如何将这些构建步骤与go构建工具联系起来。链接静态库也不是最简单的。#cgolinuxLDFLAGS:./MyLib/lib/libMyLib.a-lstdc++-lm-lX11只要我从我的库构建就可以工作,但是一旦我想从另一

go - 如何在子目录下构建go项目的C依赖

我正在为Go中的C库编写Go包装器。问题是,C库在许多Linux发行版上不可用,所以我想要一个“去获取github.com/me/mylibrary”的解决方案,不需要任何人安装该库。一种解决方案是将库的源代码添加到子目录中。然后当我的项目用goget构建时,我也需要自动构建这个库。但我不知道如何将其自动化。或者我可以有一个脚本来下载源代码,提取并构建它但我不知道如何将这些构建步骤与go构建工具联系起来。链接静态库也不是最简单的。#cgolinuxLDFLAGS:./MyLib/lib/libMyLib.a-lstdc++-lm-lX11只要我从我的库构建就可以工作,但是一旦我想从另一

Godoc,为整个包创建 html

如何使用godoc为整个包创建html文档。即递归地。在我奔跑的那一刻:godoc-html-goroot="mypath"pkg>index.html我刚得到一个index.html,其中包含有关当前目录中.go文件的信息。没有其他子包的文档,但index.html确实包含它们的死链接。如何以递归方式运行上述命令?也许我遗漏了一些东西,因为godoc文档中没有提到递归。 最佳答案 Go在现实中没有“子包”的概念——所有的包都只是包,你可以从文件顶部的包声明看出它没有任何层次结构。将嵌套子目录的所有文档打包到一个文件中是不合常理的—

Godoc,为整个包创建 html

如何使用godoc为整个包创建html文档。即递归地。在我奔跑的那一刻:godoc-html-goroot="mypath"pkg>index.html我刚得到一个index.html,其中包含有关当前目录中.go文件的信息。没有其他子包的文档,但index.html确实包含它们的死链接。如何以递归方式运行上述命令?也许我遗漏了一些东西,因为godoc文档中没有提到递归。 最佳答案 Go在现实中没有“子包”的概念——所有的包都只是包,你可以从文件顶部的包声明看出它没有任何层次结构。将嵌套子目录的所有文档打包到一个文件中是不合常理的—

go - 将一个主包放在 cmd/myapp 子目录中可以吗?

这是我的第一个Go项目,我很难掌握有关代码组织的不同文档(例如,我发现很难分辨哪些已被取代,或应用于已弃用的vendor工具/方法)。我终于选择了BenJohnson的StandardPackageLayout,有一个非常纤细的根包(在我的项目的根目录中)和internal/pkg/...中的大部分代码但是,我已经添加了一个cmd/myapp目录并将可执行程序的main.go文件放在那里,因为我知道这是一个常见的模式。所以现在我有:myapp|+-myapp.go//"packagemyapp",withonlytypeandinterfacedeclarationsandnoimpo

go - 将一个主包放在 cmd/myapp 子目录中可以吗?

这是我的第一个Go项目,我很难掌握有关代码组织的不同文档(例如,我发现很难分辨哪些已被取代,或应用于已弃用的vendor工具/方法)。我终于选择了BenJohnson的StandardPackageLayout,有一个非常纤细的根包(在我的项目的根目录中)和internal/pkg/...中的大部分代码但是,我已经添加了一个cmd/myapp目录并将可执行程序的main.go文件放在那里,因为我知道这是一个常见的模式。所以现在我有:myapp|+-myapp.go//"packagemyapp",withonlytypeandinterfacedeclarationsandnoimpo

go - 如何使用伪 CGO 指令在子目录中添加 C 文件作为 go build 的一部分?

根据文档,使用cgo的gobuild将在包的根目录中添加任何C/C++文件作为编译的一部分。有没有办法通过使用CGO指令使给定子目录中的C/C++文件也成为编译的一部分以及根目录中的文件? 最佳答案 不是真的。您唯一的选择是使该子目录成为另一个Go包,但是您必须将您需要的任何功能包装在导出的Go函数中,并将其导入您的项目。C/C++文件的编译对于基本需求来说是一种便利,但任何更复杂的东西都需要单独构建您的源代码,并提供适当的CGO指令以进行链接。Go工具链并不是一个完整的构建工具。 关于

go - 如何使用伪 CGO 指令在子目录中添加 C 文件作为 go build 的一部分?

根据文档,使用cgo的gobuild将在包的根目录中添加任何C/C++文件作为编译的一部分。有没有办法通过使用CGO指令使给定子目录中的C/C++文件也成为编译的一部分以及根目录中的文件? 最佳答案 不是真的。您唯一的选择是使该子目录成为另一个Go包,但是您必须将您需要的任何功能包装在导出的Go函数中,并将其导入您的项目。C/C++文件的编译对于基本需求来说是一种便利,但任何更复杂的东西都需要单独构建您的源代码,并提供适当的CGO指令以进行链接。Go工具链并不是一个完整的构建工具。 关于