0Pricing
Go Academy · Ders

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 module

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

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

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

Semver 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.1

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

replace 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.0

go 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=direct

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

Kısa Kontrol

go mod tidy ne yapar?

Özet: Go Modülleri

Temel modül kavramları:

  • go mod init, go.mod dosyasıyla birlikte modülü oluşturur
  • go.mod; modül adını, Go sürümünü ve bağımlılıkları listeler
  • go.sum sağlama değerlerini içerir; bu dosyayı depoya kaydedin
  • go get bağımlılıkları ekler/günceller, go mod tidy düzenleme yapar
  • Yerel geliştirme çatalları için replace kullanı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

  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