2014-11-28 4 views
4

Я в настоящее время обучение Go, и я узнал, что Go предлагает (? Навязывает ожидает?) Использовать конкретную раскладку папку для вашего рабочего пространства:Go рабочего пространства против структуры пользовательских папок

- my-go-workspace 
    - src 
    - bin 
    - pkg 

Я прекрасно понимаю рассуждения для этого, и я определенно вижу его преимущества. Итак, в основном, я думаю, что хорошо иметь такую ​​структуру.

Единственное, что мне не нравится в этом, заключается в том, что это совершенно другая структура из моих других проектов. Например, для моих проектов Node.js есть папки, такие как это:

- projects 
    - moduleA 
    - moduleB 
    - ... 

Теперь, если я хочу, чтобы модули Node.js и Go пакеты бок о бок, в единой структуре папок я либо иметь также использовать способ Go для Node.js (который чувствует себя не так) или наоборот (что тоже не так).

Я предполагаю, что это, наверное, глупая идея, и я должен просто придерживаться предложения Go и жить с двумя разными способами организации моего кода (эй, это разные языки, почему папка должна быть одинаковой?), Но каким-то образом это не кажется мне чистым.

Я знаю, что это очень субъективно и личное, но мой вопрос в том, есть ли какие-либо практики там, как это решить? Или мне просто жить с ним?

+0

Если вы следуете по пути наименьшего сопротивления, у вас будет меньше вещей, чтобы сражаться во время обучения, и у вас будет лучшее время. Сделайте это простым способом, у вас есть только одно рабочее пространство, и все станет намного лучше: https://golang.org/doc/code.html – Dustin

ответ

3

Более простая идея:

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 на папку нового проекта.

+0

Приятная идея как Что ж :-). Есть ли недостатки в наличии нескольких рабочих областей в Go? –

+1

На самом деле, это не намеченный рабочий процесс. – thwd

+1

Недостатком является то, что вы тратите кучу усилий, пытаясь не отставать от множества рабочих областей, а не просто учиться. – Dustin

3

Вы можете иметь структуру, которую вы хотите, до тех пор, как $GOPATH ссылки на workspace который следует конвенции

my-go-workspace 
    - src 
    - bin 
    - pkg 

В вашем случае, src/ может быть просто символическая ссылка на projects/ (находится в другом месте), в котором у вас будут проекты Node и Go.

+0

Идея с символической ссылкой замечательна, спасибо за это :-) –

Смежные вопросы