Modul Go dengan go mod
Menginisialisasi modul, go.mod, dan go.sum
Modul Go dengan go mod adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Apa Itu Modul Go?
Sebuah modul adalah kumpulan paket Go dengan berkas go.mod di akarnya. Modul merupakan unit distribusi dan pembuatan versi kode dalam Go:
// go.mod — created with: go mod init github.com/myuser/myapp
module github.com/myuser/myapp
go 1.21
require (
github.com/gin-gonic/gin v1.9.1
golang.org/x/sync v0.5.0
)go mod init
Inisialisasi modul baru dengan go mod init:
# In project directory:
go mod init github.com/myuser/myapp
# This creates go.mod:
# module github.com/myuser/myapp
# go 1.21
# The module path is the canonical import path prefix
# for all packages in this modulego.sum — Verifikasi Integritas
go.sum mencatat checksum kriptografis semua dependensi. Jangan mengeditnya secara manual — perintah Go yang memeliharanya:
# go.sum example entries:
github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
# Commit go.sum to version control — it ensures reproducible buildsgo get — Menambahkan Dependensi
Gunakan go get untuk menambahkan atau memperbarui dependensi. Perintah ini memperbarui go.mod dan go.sum:
# Add latest version
go get github.com/pkg/errors
# Add specific version
go get github.com/pkg/errors@v0.9.1
# Upgrade to latest patch release
go get -u=patch github.com/pkg/errors
# Remove unused dependency from go.mod
go mod tidygo mod tidy
go mod tidy menambahkan persyaratan yang hilang dan menghapus persyaratan yang tidak digunakan dari go.mod dan go.sum. Jalankan setelah mengedit impor:
# After adding/removing imports:
go mod tidy
# What it does:
# 1. Adds any missing module requirements
# 2. Removes requirements for packages no longer imported
# 3. Updates go.sum with needed checksums
# 4. Best practice: run before committingPembuatan Versi Modul dengan Semver
Modul Go menggunakan versi semantik. Versi utama >= 2 memerlukan akhiran jalur:
// v1: github.com/pkg/errors
import "github.com/pkg/errors"
// v2+: module path includes major version
import "github.com/foo/bar/v2"
import "github.com/foo/bar/v3"
// go.mod:
// require github.com/foo/bar/v2 v2.3.1go mod vendor
Mode vendor menyalin semua dependensi ke direktori lokal vendor/ untuk kompilasi tanpa koneksi:
# Copy deps to vendor/
go mod vendor
# Build using vendor/
go build -mod=vendor ./...
# Useful for:
# - Air-gapped environments
# - Reproducible CI builds without network
# - Code review of dependenciesDirektif replace
Direktif replace dalam go.mod menggantikan sebuah modul dengan jalur lokal atau versi berbeda — berguna untuk pengembangan lokal:
module github.com/myapp
go 1.21
require github.com/mylib v1.0.0
// Use local fork during development:
replace github.com/mylib => ../mylib
// Replace with a specific version:
// replace github.com/mylib v1.0.0 => github.com/myfork v1.0.0go env GOPATH dan GOMODCACHE
Variabel lingkungan utama untuk modul Go:
# Module cache location (default: ~/go/pkg/mod)
go env GOMODCACHE
# Proxy for downloading modules (default: proxy.golang.org)
go env GOPROXY
# Sum database for checksum verification
go env GONOSUMCHECK
# Disable module proxy (use direct)
export GOPROXY=directgo list dan go mod graph
Periksa dependensi modul dengan perintah berikut:
# List all modules in the build
go list -m all
# Show module dependency graph
go mod graph
# Find which module provides a package
go list -m -json all | grep -A5 gin
# Check for available updates
go list -m -u allPemeriksaan Singkat
Apa yang dilakukan go mod tidy?
Ringkasan: Modul Go
Konsep utama modul:
go mod initmembuat modul dengan berkasgo.modgo.modmencantumkan nama modul, versi Go, dan dependensigo.summenyimpan checksum — lakukan commit terhadapnyago getmenambahkan/memperbarui dependensi, sedangkango mod tidymerapikannyareplacedigunakan untuk percabangan pengembangan lokal- Versi utama v2+ memerlukan akhiran jalur
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Modul Go dengan go mod” gratis?
Ya — teks lengkap “Modul Go dengan go mod” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Modul Go dengan go mod”?
Menginisialisasi modul, go.mod, dan go.sum Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Modul Go dengan go mod” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Paket: Menata Kode Go
- Modul Go dengan go mod
- Menambahkan Dependensi Eksternal
- Paket Internal dan Ruang Kerja