0Pricing
Go Academy · Ders

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 driver

go 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.4

Bağı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 setup

Anlamsal 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/gin

go 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/net

Tekrarlanabilir 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,direct

go 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 cleanup

Gü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.4

Kı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@version bağımlılık ekler
  • Go, tüm gereksinimleri karşılayan en düşük sürüm olan MVS'yi kullanır
  • go mod tidy kullanılmayan bağımlılıkları temizler
  • Tamamen tekrarlanabilir çevrimdışı derlemeler için go mod vendor kullanılır
  • Özel modüller için GOPRIVATE kullanı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

  1. Paketler: Go Kodunu Düzenleme
  2. go mod ile Go Modülleri
  3. Harici Bağımlılık Ekleme
  4. Dahili Paketler ve Çalışma Alanları
← Go Academy Sayfasına Dön