go mod ile Go Modülleri
Modülleri başlatma, go.mod ve go.sum
go mod ile Go Modülleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
Go Modülü Nedir?
Bir modül, kökünde go.mod dosyası bulunan Go paketleri koleksiyonudur. Modüller, Go'da kod dağıtımının ve sürümlemenin temel birimidir:
// 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
go mod init ile yeni bir modül başlatın:
# 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 — Bütünlük Doğrulaması
go.sum, tüm bağımlılıkların kriptografik sağlama değerlerini kaydeder. Bu dosyayı hiçbir zaman elle düzenlemeyin; go komutları dosyayı kendileri yönetir:
# 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 — Bağımlılık Ekleme
Bağımlılık eklemek veya güncellemek için go get kullanın. Bu komut hem go.mod hem de go.sum dosyasını günceller:
# 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, go.mod ve go.sum dosyalarına eksik gereksinimleri ekler ve kullanılmayanları kaldırır. İçe aktarmaları düzenledikten sonra çalıştırın:
# 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 committingSemver ile Modül Sürümleme
Go modülleri anlamsal sürümleme kullanır. 2 ve üzeri ana sürümler bir yol son eki gerektirir:
// 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
Satıcı kipi, çevrimdışı derlemeler için tüm bağımlılıkları yerel bir vendor/ dizinine kopyalar:
# 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 dependenciesreplace Yönergesi
go.mod içindeki replace yönergesi, bir modülün yerine yerel bir yol veya farklı bir sürüm kullanır; bu özellik yerel geliştirme için yararlıdır:
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 ve GOMODCACHE
Go modülleri için temel ortam değişkenleri:
# 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 ve go mod graph
Bu komutlarla modül bağımlılıklarını inceleyin:
# 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 allKısa Kontrol
go mod tidy ne yapar?
Özet: Go Modülleri
Temel modül kavramları:
go mod init,go.moddosyasıyla birlikte modülü oluştururgo.mod; modül adını, Go sürümünü ve bağımlılıkları listelergo.sumsağlama değerlerini içerir; bu dosyayı depoya kaydedingo getbağımlılıkları ekler/günceller,go mod tidydüzenleme yapar- Yerel geliştirme çatalları için
replacekullanılır - v2 ve üzeri ana sürümler yol son eki gerektirir
Sıkça Sorulan Sorular
“go mod ile Go Modülleri” dersi ücretsiz mi?
Evet — “go mod ile Go Modülleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“go mod ile Go Modülleri” dersinde ne öğreneceğim?
Modülleri başlatma, go.mod ve go.sum Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“go mod ile Go Modülleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Paketler: Go Kodunu Düzenleme
- go mod ile Go Modülleri
- Harici Bağımlılık Ekleme
- Dahili Paketler ve Çalışma Alanları