Go kullanarak yeni bir proje üzerinde çalışıyorum ve hepimiz Go için yeniyiz. Standart go dizini yapısını takip ediyoruz ve tüm kodlar altında
GOPATH / src / github.com / companyname / projectname, $
aynı zamanda bir git deposunun köküdür
Standart önerilen yol düzeni biraz garip görünüyor, özellikle Go tabanlı bir dinlenme / http arka ucu ve bir html / javascript ön ucu gibi çok dilli bir proje üzerinde çalışıyorsak. Bu durumda, proje yapımın şöyle görünmesini isterdim:
/
doc/
src/
server/
main.go
module1/
module.go
client/
index.html
Makefile
Ancak kodun GOPATH içine yerleştirilmesi gerekli midir?
Bir girişim olarak kaynak kodun GOPATH'ın dışında olduğu küçük bir program oluşturdum. Projeyi kolaylıkla paketlere bölebilirim, böylece paket bir klasördeki main
bir foo
pakete foo/
başvurabilirdi import "./foo"
.
Görebildiğim kadarıyla, bu bana izin vermeyen iki şey var:
- Diğer kod bu kodu alamaz. Şirket için özel olarak hizmet sunduğumuz için bu bir sorun değil.
go install
Yüklemek için kullanamıyorum . Bu da bir sorun değil. Yapı boru hattı aracı yükler.
Ancak, derleme sunucusunun çalışma alanının GOPATH içinde bulunmamasını sağlar
Böyle bir yaklaşım tavsiye edilmez mi? Öyleyse, neden öyleyse?
Listelediğimden başka olumsuz yan etkileri var mı?
Bunun kamuya açık kaynak koduna değil, bir şirkete özel bir proje olduğunu unutmayın.
Asıl projeyi GOPATH'tan ayırmak cazip geliyor, ancak Shu sahnesindeyken kuralları çiğnemeye dikkat etmek gerekiyor.