Saat kita membuat aplikasi biasanya kita menggunakan library atau dependency dari project lain.
Sebelum ada go modules, management untuk dependency sangat sulit dilakukan.
Biasanya kita akan mengcopy semua source code library atau dengan dependency ke project kita. Hal ini membuat project kita bengkak karena penuh dengan library orang lain.
Atau biasanya kita save library di GOPATH direktori, namun hal ini sulit jika ada aplikasi yg butuh library yang sama tapi versi nya beda
Go modules dikenalkan di golang 1.11 dan 1.12.
Dengan go modules kita dapat membuat project dan dependency management yang mudah.
Untuk membuat module baru, kita bisa gunakan perintah
go mod init nama-module
Golang secara otomatis membuat file go.mod yang berisikan informasi nama module dan juga versi module yang dibutuhkan
Golang terintegrasi baik dengan git. Untuk merilis modul kita bisa buat Tag di git.
Untuk menambahkan dependency ke project kita, gunakan perintah
go get nama-module