ADVANCED PROGRAMMING IN GO: DEEP DIVE INTO PACKAGES EĞİTİMİ

Go paketlerini derinlemesine tanıyın

go.mod ve MVS, paket tasarımı, internal, standart kütüphane, modül yayınlama, govulncheck, build tag ve çok paketli proje düzenini uygulamalı öğrenin

go.mod ve MVS, paket tasarımı, standart kütüphane, kütüphane yayınlama, bağımlılık güvenliği, build tag ve çok paketli proje düzenini uygulamalı öğrenin.

2 gün İleri Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Go paket sistemi, modüller ve kütüphane geliştirme

Eğitim, Go paket ve modül sistemini derinlemesine ele alır. go.mod yönergeleri, Minimum Version Selection, GOPROXY ve GOPRIVATE, go.work, dışa aktarım kuralları ve internal dizini, init sırası, döngüsel bağımlılığı kırma, io, encoding/json, net/http ve time paketleri, semantic import versioning, apidiff ve gorelease, retract, vendor ve govulncheck, SBOM, build tag, çapraz derleme, go:embed ve çok paketli proje yapısı uygulamalı işlenir.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Modüller, Paket Tasarımı, Standart Kütüphane ve Yayınlama; 2. gün Bağımlılık Güvenliği, Derleme, Ekosistem ve Proje.

Seviye

İleri Seviye — Go modülleri, paket tasarımı, standart kütüphane, yayınlama, bağımlılık güvenliği ve derleme seçeneklerini kapsayan yelpaze

Öğrenme Metodu

Katılımcılar çok paketli bir proje düzenler, bir modülü v2'ye taşır, apidiff ile uyumluluğu kontrol eder, özel modül erişimi kurar ve CI'da modül doğrulaması çalıştırır.

Neden Bu Eğitim?

📦Sağlam Paketler

Küçük API yüzeyli ve döngüsel bağımlılığı olmayan paket düzeni kurarsınız.

🔗Modül Hakimiyeti

MVS, replace ve go.work ile bağımlılık sürümlerini kontrol altında tutarsınız.

🛡️Tedarik Zinciri

govulncheck, SBOM ve checksum doğrulamasıyla bağımlılık riskini yönetirsiniz.

Anahtar Konular

go modulesgo paket tasarımıgo.modminimum version selectiongo internal paketgo kütüphane yayınlamagovulncheckgo build taggo workgo standart kütüphane
“İyi bir paket, az şey söyler ve söylediğini net söyler.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Go Deneyimi

Go'da temel program (struct, interface, slice, map, fonksiyon) yazmış olmak gerekir.

2
Terminal ve Git

go komutları, Git ve terminal kullanımı beklenir.

3
Geliştirme Ortamı

Go 1.22 veya üzeri ve VS Code (gopls) ya da GoLand kurulu olmalıdır.

4
Genel Programlama

HTTP ve JSON gibi temel yazılım kavramlarına aşinalık faydalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı gün sonunda Go modüllerini yönetir, paket sınırlarını tasarlar, standart kütüphaneyi etkin kullanır ve kütüphane yayınlar.
Modül 1
Paket Sistemi ve Go Modules
  • Paket, modül ve import yolu kavramları; paket adı ile dizin adı ilişkisi
  • go.mod yapısı: module, go, require, replace, exclude ve retract yönergeleri
  • Minimum Version Selection (MVS) algoritması ve go list -m all ile sürüm çözümü
  • go get, go mod tidy, go mod why, go mod graph ve go mod vendor komutları
  • GOPROXY, GOSUMDB, GOPRIVATE ve özel (private) modüllere erişim
  • go.work ile çok modüllü çalışma alanları ve yerel geliştirme
Modül 2
Paket Tasarımı ve Görünürlük
  • Dışa aktarılan (büyük harf) ve dışa aktarılmayan tanımlayıcılar; API yüzeyini küçük tutma
  • internal/ dizini ile derleyici zorlamalı kapsülleme
  • init() fonksiyonu, paket başlatma sırası ve yan etkili import (_) tuzakları
  • Döngüsel bağımlılığı kırma: arayüz çıkarma ve paket ayrıştırma
  • Paket adı seçimi (util, common anti-pattern) ve doc.go ile paket dokümantasyonu
  • Örnek: tek paketli kütüphaneyi katmanlı paket yapısına yeniden düzenleme
Modül 3
Standart Kütüphane Derinlemesine
  • io, bufio, os ve io/fs ile dosya sistemi soyutlaması ve embed paketi
  • encoding/json: struct etiketleri, omitempty, Marshaler arayüzü, Decoder akışı ve DisallowUnknownFields
  • net/http: Handler, ServeMux, http.Client, Transport ve httptest
  • time paketi: Duration, Location, Format düzeni (2006-01-02) ve monotonik saat
  • strings, strconv, regexp, text/template ve html/template kullanımı
  • sort, slices, maps, cmp ve container/heap ile koleksiyon işlemleri
Modül 4
Kütüphane Yayınlama ve Sürümleme
  • Semantic import versioning: v2+ modüllerde /v2 yol son eki
  • Git etiketi ile sürüm yayını, pseudo-version yapısı ve pkg.go.dev'de görünürlük
  • Geriye dönük uyumluluk: API değişiklik kuralları, apidiff ve gorelease aracı
  • Deprecated yorumları, retract ile hatalı sürümü geri çekme
  • Godoc örnekleri (Example fonksiyonları), README ve lisans dosyası
  • Release otomasyonu: GoReleaser, GitHub Actions ve değişiklik günlüğü
Günün hedefiKatılımcı gün sonunda Bağımlılık güvenliğini sağlar, build tag ve çapraz derleme kullanır, ekosistem paketlerini değerlendirir ve çok paketli proje kurar.
Modül 1
Bağımlılık Yönetimi ve Tedarik Zinciri
  • go.sum, checksum veritabanı ve doğrulanamayan modüllere karşı koruma
  • vendor dizini ile tekrarlanabilir derleme ve çevrimdışı ortamlar
  • govulncheck ve Dependabot/Renovate ile bağımlılık güncelleme
  • Lisans uyumluluğu: go-licenses ile bağımlılık lisans envanteri
  • SBOM üretimi (syft, cyclonedx-gomod) ve imzalı yapılar
  • Bağımlılığı azaltma stratejisi: standart kütüphane önceliği, ince sarmalayıcılar
Modül 2
Derleme Etiketleri, Cgo ve Çapraz Derleme
  • Build tag'leri (//go:build) ve dosya adı eki (_linux.go, _test.go) ile platforma özel kod
  • GOOS / GOARCH ile çapraz derleme ve statik ikili üretimi (CGO_ENABLED=0)
  • cgo temelleri: C kodu çağırma, bellek yönetimi ve maliyetleri
  • go:embed ve go:generate yönergeleri; ldflags ile sürüm bilgisi gömme (-X)
  • Plugin yerine arayüz tabanlı eklenti tasarımı ve go build -buildmode seçenekleri
  • go tool nm, objdump ve ikili boyutunu küçültme (-s -w, UPX tartışması)
Modül 3
Popüler Paketlerle Çalışma
  • chi, gin ve echo ile yönlendirme ve middleware paketleri
  • cobra ve viper ile komut satırı uygulamaları
  • gorm, sqlx ve pgx veritabanı paketlerinin karşılaştırması
  • zap ve slog ile loglama; testify ile test yardımcıları
  • gRPC-Go, protobuf ve buf aracıyla sözleşme yönetimi
  • Paket değerlendirme kriterleri: bakım durumu, API kararlılığı, test kapsamı ve alternatifler
Modül 4
Uygulama: Çok Paketli Proje İnşası
  • Dizin yapısı oluşturma: cmd/, internal/domain, internal/store, pkg/client
  • Paketler arası arayüz sözleşmesi ve mock üretimi (mockgen, moq)
  • Paketler için birim testleri ve testdata dizini kullanımı
  • Monorepo içinde go.work ile iki modülü birlikte geliştirme
  • CI hattı: go build, vet, test, lint ve modül doğrulama
  • Proje gözden geçirme ve yeniden düzenleme (refactoring) oturumu

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Go Modules

go.mod, MVS ve özel modül erişimini doğru yapılandırırsınız.

🎯
Paket Tasarımı

Küçük API yüzeyli, döngüsel bağımlılığı olmayan paket yapıları tasarlarsınız.

🔧
Standart Kütüphane

Standart kütüphaneyi harici bağımlılık eklemeden etkin kullanırsınız.

🧩
Kütüphane Yayını

Sürümlü, belgelenmiş bir Go modülünü uyumluluk kurallarıyla yayınlarsınız.

📦
Bağımlılık Güvenliği

Bağımlılık zafiyet, lisans ve SBOM kontrollerini sürece yerleştirirsiniz.

🚀
Derleme Seçenekleri

Build tag ve ldflags ile platforma özel, sürüm bilgisi gömülü ikililer üretirsiniz.

🔒
Ekosistem Paketleri

Ekosistem paketlerini bakım, kararlılık ve lisans ölçütleriyle değerlendirirsiniz.

📊
Paket Atölyesi

Çok paketli bir projeyi sınırları net şekilde kurup CI ile doğrularsınız.

Kimler İçin Uygundur?

  • Go kütüphanesi veya çok paketli uygulama geliştiren
  • modül yönetimini
  • paket tasarımını güçlendirmek isteyen geliştiriciler ve teknik liderler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Go kütüphanesi veya çok paketli uygulama geliştiren, modül yönetimini ve paket tasarımını güçlendirmek isteyen geliştiriciler ve teknik liderler için uygundur.
Modül ve paket farkı anlatılıyor mu?
Evet. Paket, modül ve import yolu ilişkisi örneklerle netleştirilir.
Özel modül erişimi kapsanıyor mu?
GOPRIVATE, GOPROXY ve kimlik doğrulama ayarlarıyla özel depolardan modül çekme uygulanır.
Kütüphane yayınlama uygulamalı mı?
Etiketleme, v2 yol son eki, apidiff ve GoReleaser ile sürüm yayını uygulanır.
Eğitim sonunda hangi belge verilir?
Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Advanced Programming in Go: Deep Dive into Packages Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
Seviyeİleri Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn