Tôi đang làm việc trên một dự án mới bằng cách sử dụng Go và tất cả chúng ta đều mới với Go. Chúng tôi đang theo cấu trúc thư mục go tiêu chuẩn và có tất cả mã theo
$ GOPATH / src / github.com / tên công ty / tên dự án
đó cũng là gốc của kho git
Bố cục đường dẫn được đề xuất tiêu chuẩn có vẻ hơi lạ, đặc biệt nếu chúng tôi đang làm việc với một dự án đa ngôn ngữ, ví dụ: phần phụ trợ dựa trên phần còn lại / http và phần đầu html / javascript. Trong trường hợp đó, tôi có thể muốn cấu trúc dự án của mình trông như thế này:
/
doc/
src/
server/
main.go
module1/
module.go
client/
index.html
Makefile
Nhưng có thực sự cần thiết phải đặt mã bên trong GOPATH không?
Như một nỗ lực, tôi đã tạo ra một chương trình nhỏ trong đó mã nguồn nằm ngoài GOPATH. Tôi có thể dễ dàng chia dự án thành các gói, vì vậy main
gói có thể tham chiếu một foo
gói trong một foo/
thư mục bằng cách sử dụng import "./foo"
.
Theo như tôi có thể thấy, có hai điều không phù hợp với tôi:
- Mã khác không thể nhập mã này. Đây không phải là một vấn đề vì chúng tôi đang xây dựng một dịch vụ dành riêng cho công ty.
- Tôi không thể sử dụng
go install
để cài đặt nó. Đây cũng không phải là một vấn đề. Đường ống xây dựng cài đặt công cụ.
Tuy nhiên, nó cho phép máy chủ xây dựng không có không gian làm việc của nó được đặt bên trong GOPATH
Là một cách tiếp cận như vậy không được khuyến khích? Nếu vậy, tại sao vậy?
Có tác dụng phụ tiêu cực nào khác so với hai tôi đã liệt kê?
Hãy nhớ rằng đây là một dự án riêng cho một công ty, không phải mã nguồn mở công khai.
Việc tách dự án thực tế khỏi GOPATH có vẻ hấp dẫn, nhưng người ta nên cẩn thận trong việc phá vỡ các quy tắc khi bạn ở trên sân khấu Shu