结构与维护一个包含多个文件的Golang项目

时间:2018-01-16 08:16:21

标签: api go structure

我目前正在发现Golang,目前我正在与Mux和Gorm一起尝试构建API。

所以一切都很好,直到我在main.go文件中有太多内容,所以我想把这个API分成多个文件,

当然,就像我在Node.js API中所做的那样,我创建了一个模型文件夹和一个路径文件夹,并开始将我的模型放在模型文件夹(model1.go,model2.go等)中的单个文件中有一个像这样的结构:

/MyProject |main.go |/models |model1.go |model2.go

然后我谷歌了一下(好吧,现在很多..)知道如何将它们包含在我的main.go文件中,现在我面临的事实是在Golang中语言的设计需要任何外部文件都是一个包,可以被任何其他golang应用程序使用,这不是我正在寻找的,我只想分割我的项目内容以获得更好的可维护性< / strong>但考虑到项目设计似乎是不可能的。 我从1.6开始听说过vendoring,但这仍然不是解决方案,因为必须将依赖项和项目文件保存在同一个地方,这不是构建项目的传统(和逻辑)方式

我认为繁重而复杂的Golang项目没有将整个代码库整合到一个文件中,所以我只是在寻找将项目构建成多个文件的好方法就像他们会做的那样维持他们的项目。

2 个答案:

答案 0 :(得分:2)

/MyProject
   |main.go
   |model1.go
   |model2.go

如果您只想将代码保存在一个包中。

答案 1 :(得分:1)

不同的方法

一个包 需要时,我们可以将变量放在包范围内 enter image description here

两个包 我们将在需要时从第二个包中导入代码

enter image description here

包含配置变量包的三个+包 我们将在需要时从配置包中导入代码。配置包将包含DB和TPL等变量。

enter image description here

enter image description here

仅供参考:Go中没有全球范围。 您可以在Alex Edwards Code Organization Article

了解更多相关信息