【发布时间】:2014-05-23 21:21:13
【问题描述】:
我觉得悬而未决的“关闭的问题,太模糊,意见,......”但这里是。
如何组织我的 Go 代码库?
我有一个非平凡的应用程序(unix 守护程序),它与其他进程通信、读/写数据库、与 Web 服务器通信、具有内部状态。在 c++ 中,我会编写一堆类(可能在主要子组件的子目录中)。可以说这是项目
然后在更高级别上,我有与项目相关的实用 cli 函数。 projcli1, projcli2.... 我假设与一个项目相关的所有代码都在一个 GOPATH 下
如果我从事几个不相关的项目会怎样。我仍然使用一个 GOPATH 还是每个项目都有一个。
我试图找到示例代码库,但唯一的大集合是包存储库,那是一堆库 - 这并不是一回事。
如果这些问题太模糊,那该怎么办。同一个目录下的所有go文件都必须属于同一个包是正确的吗?
另一个简单的具体问题。我找到了一个很好的对象池实现。它的包装上写着“游泳池”——很好。我把它的单个文件放在哪里。在一个名为“pool”的子目录中,我想要一个名为 utils 的目录(或类似的东西)似乎我做不到。我的意思是我不能有 utils/pool 和 util/db(比如说)没有一个文件目录树
【问题讨论】:
-
我认为这不应该作为意见关闭,因为 Go 有一些关于惯用语的权威来源(Effective Go,code review guidelines,来自stdlib docs 和source 的示例)和一些模式语言强制(例如,避免循环依赖)或允许(例如,使用接口将包拼接在一起)。也就是说,惯用的不仅仅是意见。如果我问这个,即使我担心投票反对,我也不会提及。 ;)
标签: go