GOPATH dan workspace
Pahami peran GOPATH di era modern dan warisan sebelumnya.
Pahami konsepnya
Sebelum module ada (pra-2018), semua kode Go wajib tinggal di dalam satu folder induk bernama GOPATH — biasanya ~/go — dengan struktur baku bin, pkg, dan src. Setiap proyek hidup di src/github.com/user/proyek dan berbagi satu tumpukan dependensi global.
Mode module menghapus kewajiban itu: kini kode boleh di mana saja dan tiap proyek membawa dependensinya sendiri lewat go.mod. Tapi GOPATH tidak mati — folder itu masih dipakai sebagai cache modul (pkg/mod) dan tempat berkas binary hasil go install (bin).
Jadi singkatnya: untuk menulis kode kamu tidak perlu peduli GOPATH lagi; Go yang mengurusnya. Cukup ketahui lokasinya lewat go env GOPATH kalau suatu saat perlu menghapus cache atau menemukan binary hasil instalasi.
Coba contoh kode
$ go env GOPATH
C:\\Users\\kamimu\\go
$ go env GOMODCACHE
C:\\Users\\kamimu\\go\\pkg\\modGOMODCACHE menunjuk ke cache modul — semua versi dependensi yang pernah diunduh tersimpan di sini dan dipakai ulang lintas proyek, itulah kenapa go get kedua kali terasa instan. Folder bin di dalam GOPATH berisi hasil go install.