Go工作区与自定义文件夹结构

Go工作区与自定义文件夹结构,go,Go,我目前正在学习Go,我了解到Go建议(期望?强制?)您为您的工作区使用特定的文件夹布局: - my-go-workspace - src - bin - pkg 我完全理解这一点的原因,我肯定看到它的优点。所以,基本上,我认为有这样的结构是件好事 我唯一不喜欢的是,它的结构与我的其他项目完全不同。例如,对于my Node.js项目,有这样一个文件夹: - projects - moduleA - moduleB - ... 现在,如果我想将Node.js模块和Go包并

我目前正在学习Go,我了解到Go建议(期望?强制?)您为您的工作区使用特定的文件夹布局:

- my-go-workspace
  - src
  - bin
  - pkg
我完全理解这一点的原因,我肯定看到它的优点。所以,基本上,我认为有这样的结构是件好事

我唯一不喜欢的是,它的结构与我的其他项目完全不同。例如,对于my Node.js项目,有这样一个文件夹:

- projects
  - moduleA
  - moduleB
  - ...
现在,如果我想将Node.js模块和Go包并排保留在一个统一的文件夹结构中,我要么也必须使用Go的方式来处理Node.js(感觉不对),要么反之亦然(感觉也不对)

我想这可能是一个愚蠢的想法,我应该坚持Go的建议,用两种不同的方式来组织我的代码(嘿,这是不同的语言,为什么文件夹布局应该是一样的?),但不知何故,我觉得这并不干净


我知道这是一个非常主观和个人化的问题,但我的问题是,如果有任何实践如何解决这个问题?或者我应该接受它吗?

你可以拥有你想要的结构,只要
$GOPATH
引用一个遵循惯例的

my-go-workspace
  - src
  - bin
  - pkg
在您的情况下,
src/
可以是指向
projects/
(位于其他任何地方)的符号链接,在该符号链接中,您将拥有Node和Go项目。

一个更简单的想法:

golos-projects
 L node-project-a
    L what
    L ever
    L yolo
 L node-project-b
    L we
    L love
    L npm
 L go-project-a
    L src
    L pkg
    L bin
 L go-project-b
    L src
    L pkg
    L bin

只需将您的
GOPATH
设置为例如
golos projects/go-project-b
,然后黑客攻击。当您想切换到另一个项目时,只需将您的
GOPATH
更改为新项目的文件夹

符号链接的想法很棒,谢谢:-)一个好主意:-)。在Go中有多个工作区有什么缺点吗?一点也没有,实际上这是预期的工作流程。缺点是你花了大量的精力来跟上大量工作区的步伐,而不仅仅是学习Go。如果你沿着阻力最小的路径走,在你学习的过程中,你有更少的事情要做,你会有更好的时间。用简单的方法完成,只需一个工作区,事情就会变得更好: