Harici Bağımlılık Ekleme
go get, sürümleme ve modül önbelleği
Harici Bağımlılık Ekleme, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 3. 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.
Paketleri Bulma
Go paketlerini bulmak için birincil kaynak pkg.go.dev'dur. Paketleri arayın, belgeleri okuyun ve kullanım örneklerini inceleyin:
# Search and explore at https://pkg.go.dev
# Popular packages:
# github.com/gin-gonic/gin — HTTP framework
# github.com/stretchr/testify — test assertions
# golang.org/x/sync — extended sync primitives
# github.com/spf13/cobra — CLI framework
# github.com/jackc/pgx/v5 — PostgreSQL drivergo get: Bağımlılık Ekleme
Bir bağımlılık eklemek için go get kullanın. Bu komut modülü indirir ve go.mod ile go.sum dosyalarını günceller:
# Add latest version
go get github.com/stretchr/testify
# Add specific version
go get github.com/stretchr/testify@v1.8.4
# Add a pre-release version
go get github.com/foo/bar@main
# go get updates go.mod:
# require github.com/stretchr/testify v1.8.4Bağımlılığı Kullanma
go get işleminden sonra paketi normal biçimde içe aktarın ve kullanın:
package main
import (
"fmt"
"github.com/stretchr/testify/assert"
"testing"
)
func TestAdd(t *testing.T) {
assert.Equal(t, 4, 2+2, "math should work")
fmt.Println("assertion done")
_ = assert.New // suppress unused import
}go mod download
go.mod dosyasında listelenen tüm bağımlılıkları modül önbelleğine önceden indirin:
# Download all deps from go.mod
go mod download
# Download specific module
go mod download github.com/gin-gonic/gin@v1.9.1
# Useful for:
# - Docker layer caching (copy go.mod/go.sum first, then download)
# - Pre-warming CI cache
# - Offline development setupAnlamsal Sürüm Seçimi: MVS
Go, Minimum Sürüm Seçimi (MVS) kullanır: tüm bağımlılıkları karşılayan en düşük gerekli sürümü seçer. Ana sürümler otomatik olarak yükseltilmez:
# If A requires gin v1.9.0
# and B requires gin v1.9.1
# MVS selects v1.9.1 (minimum that satisfies both)
# To upgrade ALL dependencies to latest minor/patch:
go get -u ./...
# To upgrade specific package:
go get -u github.com/gin-gonic/gingo mod why — Bağımlılıkları Açıklama
Bir modülün derlemenizde neden gerekli olduğunu öğrenin:
# Why is encoding/json needed?
go mod why encoding/json
# Why is golang.org/x/net needed?
go mod why golang.org/x/net
# Output shows the import chain:
# github.com/myapp
# github.com/gin-gonic/gin
# golang.org/x/netTekrarlanabilir Derlemeler İçin go mod vendor
Satıcı kullanımı, tekrarlanabilir derlemeler için tüm bağımlılıkları deponuza kilitler:
# Vendor all deps
go mod vendor
# Build only from vendor (no network)
go build -mod=vendor ./...
# Dockerfile pattern:
# COPY go.mod go.sum ./
# RUN go mod download
# COPY . .
# RUN go build ...GONOSUMCHECK ve GOPRIVATE ile Özel Modüller
İç sunucularda barındırılan özel modüller için Go'yu yapılandırın:
# Tell Go not to use proxy/sumdb for private modules
export GOPRIVATE=github.com/mycompany/*
export GONOSUMCHECK=github.com/mycompany/*
# Or in go env:
go env -w GOPRIVATE=github.com/mycompany/*
# For enterprise Go proxy:
export GOPROXY=https://proxy.mycompany.com,directgo clean -modcache
Tüm bağımlılıkların yeniden indirilmesini zorunlu kılmak için modül önbelleğini temizleyin:
# Clear entire module cache
go clean -modcache
# Clear cache for specific version
go clean -modcache github.com/gin-gonic/gin@v1.9.1
# Useful when:
# - Cache is corrupted
# - Testing with a fresh environment
# - Disk space cleanupGüvenlik Açıklarını Denetleme: govulncheck
Resmî Go güvenlik açığı tarayıcısı, bağımlılıklarınızı bilinen CVE'lere karşı denetler:
# Install govulncheck
go install golang.org/x/vuln/cmd/govulncheck@latest
# Scan your module
govulncheck ./...
# Output example:
# Vulnerability #1: GO-2023-1234
# github.com/foo/bar v1.2.3
# Fixed in: v1.2.4
# Suggestion: go get github.com/foo/bar@v1.2.4Kısa Kontrol
Bir bağımlılığın belirli bir sürümünü modülünüze hangi komut ekler?
Özet: Harici Bağımlılıklar
Özet:
go get pkg@versionbağımlılık ekler- Go, tüm gereksinimleri karşılayan en düşük sürüm olan MVS'yi kullanır
go mod tidykullanılmayan bağımlılıkları temizler- Tamamen tekrarlanabilir çevrimdışı derlemeler için
go mod vendorkullanılır - Özel modüller için
GOPRIVATEkullanın - Güvenlik açıklarını bulmak için
govulncheckçalıştırın
Sıkça Sorulan Sorular
“Harici Bağımlılık Ekleme” dersi ücretsiz mi?
Evet — “Harici Bağımlılık Ekleme” 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.
“Harici Bağımlılık Ekleme” dersinde ne öğreneceğim?
go get, sürümleme ve modül önbelleği 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 3. dersidir.
“Harici Bağımlılık Ekleme” 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ı