Estou trabalhando em um novo projeto usando o Go, e somos todos novos no Go. Estamos seguindo a estrutura de diretórios padrão go e com todo o código em
$ GOPATH / src / github.com / nome da empresa / nome do projeto
que também é a raiz de um repositório git
O layout padrão do caminho recomendado parece um pouco estranho, especialmente se estivermos trabalhando em um projeto em vários idiomas, por exemplo, um descanso / http back-end baseado em Go e um front-end html / javascript. Nesse caso, eu provavelmente gostaria que minha estrutura de projeto fosse assim:
/
doc/
src/
server/
main.go
module1/
module.go
client/
index.html
Makefile
Mas é realmente necessário colocar o código dentro do GOPATH?
Como tentativa, criei um pequeno programa em que o código fonte estava fora do GOPATH. Eu poderia facilmente dividir o projeto em pacotes, para que o main
pacote pudesse fazer referência a um foo
pacote em uma foo/
pasta usando import "./foo"
.
Tanto quanto posso ver, há duas coisas que isso não me permite:
- Outro código não pode importar esse código. Isso não é um problema, pois estamos construindo um serviço especificamente para a empresa.
- Não consigo usar
go install
para instalá-lo. Isso também não é um problema. O pipeline de construção instala a ferramenta.
No entanto, permite que o servidor de construção não tenha seu espaço de trabalho localizado dentro do GOPATH
Essa abordagem é desencorajada? Se sim, por que?
Existem outros efeitos colaterais negativos além dos dois que listei?
Lembre-se de que este é um projeto privado para uma empresa, não um código-fonte aberto público.
Separar o projeto real do GOPATH parece tentador, mas é preciso ter cuidado ao quebrar as regras quando você está no palco Shu