ADVANCED PROGRAMMING IN GO: TESTING & DEPLOYING GO PROGRAMS EĞİTİMİ

Go programlarını test edip dağıtın

Table-driven test, httptest, testcontainers, fuzzing, CI, çok aşamalı Docker imajı, Kubernetes dağıtımı ve Prometheus ile gözlemlenebilirliği uygulayın

Go'da table-driven test, mock, fuzzing, CI otomasyonu, distroless imaj, Kubernetes dağıtımı ve Prometheus/OpenTelemetry gözlemlenebilirliğini uygulamalı öğrenin.

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

Eğitim Hakkında

Go uygulamalarının test edilmesi, paketlenmesi ve dağıtılması

Eğitim, Go uygulamasını testten üretime taşıyan hattı kurar. testing paketi ve table-driven testler, golden file, gomock ve httptest, testcontainers ile PostgreSQL, benchmark ve benchstat, fuzzing, race ve shuffle, GitHub Actions ve GitLab CI hatları, kapsama eşiği, -ldflags ve çapraz derleme, çok aşamalı Dockerfile ve distroless, GoReleaser ve cosign, Kubernetes probe ve graceful shutdown, Prometheus, OpenTelemetry ve pprof uygulamalı işlenir.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Test Teknikleri ve Otomasyon; 2. gün Paketleme, Dağıtım, İzleme ve Hat Kurulumu.

Seviye

İleri Seviye — Go test teknikleri, mock ve fuzzing, CI otomasyonu, konteyner paketleme, Kubernetes dağıtımı ve gözlemlenebilirliği kapsayan yelpaze

Öğrenme Metodu

Katılımcılar bir Go servisine test piramidini uygular, CI hattında test ve lint çalıştırır, küçük bir imaj üretir, Kubernetes'e probe'larla dağıtır ve metrik ile izler.

Neden Bu Eğitim?

✅Güvenilir Test

Table-driven, fuzz ve entegrasyon testleriyle regresyonları erken yakalarsınız.

📦Küçük İmaj

Çok aşamalı derleme ve distroless ile güvenli, küçük konteyner imajları üretirsiniz.

📡İzlenebilir Servis

Metrik, trace ve log ile üretimdeki sorunları hızlıca teşhis edersiniz.

Anahtar Konular

go testgo testinggo fuzzingtestcontainers gogo docker multi-stagego kubernetes dağıtımgoreleasergo ci cdgo prometheusgo opentelemetry
“Test edilmemiş kod, henüz bozulmamış koddur.”

Ö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 Table-driven, mock ve fuzz testleri yazar, benchmark ile ölçer ve CI'da kalite kapıları kurar.
Modül 1
Go Test Temelleri: testing Paketi
  • _test.go dosyaları, TestXxx fonksiyonları ve go test bayrakları (-run, -v, -count, -short)
  • Table-driven testler, t.Run alt testleri ve t.Parallel kullanımı
  • t.Helper, t.Cleanup, t.TempDir ve testdata dizini; golden file yaklaşımı
  • Örnek testler (ExampleXxx) ve godoc entegrasyonu
  • Test kapsama: go test -cover, -coverprofile ve go tool cover -html
  • testify ve go-cmp ile karşılaştırma; assert/require farkı
Modül 2
Mock, Fake ve Bağımlılık İzolasyonu
  • Arayüz tabanlı test edilebilir tasarım ve bağımlılık enjeksiyonu
  • Elle yazılmış fake ve stub; gomock / mockgen ve moq karşılaştırması
  • httptest.Server ve httptest.NewRecorder ile HTTP handler testleri
  • Zaman, rastgelelik ve dosya sistemi bağımlılığını soyutlama (clock arayüzü, fstest.MapFS)
  • Veritabanı testleri: sqlmock ve testcontainers-go ile gerçek PostgreSQL
  • Kapsam yerine davranış testi: kırılgan mock kullanımından kaçınma
Modül 3
Benchmark, Fuzzing ve Gelişmiş Test Teknikleri
  • testing.B ile benchmark, b.ResetTimer, b.ReportAllocs ve benchstat
  • Go fuzzing: FuzzXxx, seed corpus, testdata/fuzz ve çökme bulgularının yeniden üretilmesi
  • Property-based test fikri ve rapid / gopter
  • Race detector ve -shuffle ile kararsız (flaky) testleri yakalama
  • TestMain, build tag ile entegrasyon testi ayrımı ve -tags integration
  • Mutasyon testi (go-mutesting) ve test kalitesi ölçümü
Modül 4
Test Otomasyonu ve CI
  • GitHub Actions ve GitLab CI'da go test, vet, staticcheck ve golangci-lint hattı
  • Matris ile birden fazla Go sürümünde ve işletim sisteminde test
  • Kapsama raporlarını Codecov / SonarQube'e gönderme ve eşik kuralı
  • Önbellek: GOCACHE, GOMODCACHE ve CI süresini kısaltma
  • Test sonuçlarını JSON (go test -json) ve JUnit raporuna dönüştürme (gotestsum)
  • Pull request kapıları: zorunlu test, lint ve güvenlik taraması (govulncheck)
Günün hedefiKatılımcı gün sonunda Çok mimarili imaj üretir, Kubernetes'e güvenle dağıtır, metrik ve trace ile izler ve uçtan uca CI/CD hattı kurar.
Modül 1
Go Programlarını Derleme ve Paketleme
  • go build bayrakları: -ldflags '-s -w -X', -trimpath ve tekrarlanabilir derleme
  • Çapraz derleme ve statik bağlama; CGO_ENABLED=0 ile bağımsız ikili
  • Çok aşamalı Dockerfile (golang → scratch / distroless) ve imaj boyutu küçültme
  • ko ve Docker buildx ile çok mimarili (amd64/arm64) imaj üretimi
  • GoReleaser ile sürüm paketleme, checksum ve imzalama (cosign)
  • Sürüm bilgisi gömme, runtime/debug.ReadBuildInfo ve SBOM
Modül 2
Dağıtım: Konteyner, Kubernetes ve Servis Yapılandırması
  • Sağlık ucu (/healthz, /readyz), liveness ve readiness probe tasarımı
  • Kubernetes Deployment, Service, ConfigMap ve Secret ile Go servisi dağıtımı
  • Kaynak limitleri, GOMEMLIMIT ve automaxprocs ile container uyumu
  • Rolling update, graceful shutdown ve terminationGracePeriodSeconds
  • systemd servisi ve sanal makineye doğrudan dağıtım alternatifi
  • Helm chart veya Kustomize ile ortam bazlı yapılandırma
Modül 3
Üretimde Gözlemlenebilirlik ve Sorun Giderme
  • Prometheus client_golang ile metrik, RED yöntemi ve Grafana panoları
  • OpenTelemetry ile dağıtık izleme (trace) ve context yayılımı
  • slog ile JSON loglar, korelasyon kimliği ve log toplama (Loki, ELK)
  • pprof'u güvenle açma, canlı profil alma ve sürekli profilleme
  • Panic raporlama, Sentry entegrasyonu ve uyarı kuralları
  • Olay sonrası inceleme: log, metrik ve trace ile kök neden analizi
Modül 4
Uygulama: Test ve Dağıtım Hattı Kurulumu
  • Örnek servis için test piramidi: birim, entegrasyon ve uçtan uca
  • Docker Compose ile yerel entegrasyon ortamı ve testcontainers
  • CI/CD: build, test, imaj üretimi, registry'ye push
  • Staging ve production dağıtımı, mavi/yeşil ve canary yaklaşımları
  • Geri alma (rollback) planı ve veritabanı migration güvenliği
  • Dağıtım sonrası duman testi ve izleme doğrulaması

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Test Temelleri

Table-driven ve paralel testler yazıp kapsama raporu üretirsiniz.

🎯
Mock ve İzolasyon

Fake, mock ve httptest ile bağımlılıklardan izole testler yazarsınız.

🔧
Benchmark ve Fuzzing

Benchmark ve fuzz testleriyle performans ve sağlamlık doğrulaması yaparsınız.

🧩
CI'da Test

Test, lint ve zafiyet taramasını CI hattında zorunlu kapıya dönüştürürsünüz.

📦
Derleme ve Paketleme

Küçük, imzalı ve çok mimarili konteyner imajları üretirsiniz.

🚀
Dağıtım

Go servisini Kubernetes'e probe ve graceful shutdown ile güvenle dağıtırsınız.

🔒
Gözlemlenebilirlik

Metrik, trace ve log ile üretimdeki Go servisini izler, sorunları teşhis edersiniz.

📊
Hat Kurulumu

Test, imaj ve dağıtım adımlarını içeren uçtan uca bir CI/CD hattı kurarsınız.

Kimler İçin Uygundur?

  • Go servislerini test eden ve dağıtan geliştiriciler
  • DevOps
  • SRE mühendisleri ile test otomasyonunu güçlendirmek isteyen teknik ekipler için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Go servislerini test eden ve dağıtan geliştiriciler, DevOps ve SRE mühendisleri ile test otomasyonunu güçlendirmek isteyen teknik ekipler için uygundur.
Hangi CI aracı kullanılır?
Örnekler GitHub Actions ile yapılır; GitLab CI karşılıkları da gösterilir.
Kubernetes bilgisi gerekli mi?
Temel Deployment ve Service bilgisi yeterlidir; probe, ConfigMap ve graceful shutdown uygulamalı anlatılır.
Mock kütüphaneleri hangileri?
gomock/mockgen, moq ve elle yazılan fake'ler karşılaştırılır; davranış testi öne çıkarılı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: Testing & Deploying Go Programs 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

Yazılım Geliştirme GenelFrameworks, Life Cycles, and Architecture Eğitimi
Yazılım Geliştirme Eğitimleri

Frameworks, Life Cycles, and Architecture Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Yazılım yaşam döngüsü modelleri, mimari stiller, kalite nitelikleri, ATAM, C4 modeli ve ADR ile mimari eğitimi.

Detayları Gör →
Yazılım Geliştirme GenelFreeCad: Parametrik Modelleme ile Başlarken Eğitimi
Yazılım Geliştirme Eğitimleri

FreeCad: Parametrik Modelleme ile Başlarken Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

FreeCAD ile parametrik modelleme: Sketcher kısıtları, Part Design, Spreadsheet, montaj, TechDraw ve STL/STEP çıktısı.

Detayları Gör →
Yazılım Geliştirme GenelFreeRTOS: Geri Planlama Süreci için Programlama Eğitimi
Yazılım Geliştirme Eğitimleri

FreeRTOS: Geri Planlama Süreci için Programlama Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

FreeRTOS ile task, scheduler, kuyruk, semafor, mutex, ISR ve bellek yönetimi: ESP32/STM32 üzerinde gerçek zamanlı programlama.

Detayları Gör →
Yazılım Geliştirme GenelFront–End Development (Web Arayüz Geliştirme) Eğitimi
Yazılım Geliştirme Eğitimleri

Front–End Development (Web Arayüz Geliştirme) Eğitimi

2 günTemelOnline / Yüz Yüze / Hibrit

Front-end eğitimi: semantik HTML5, CSS Flexbox/Grid, duyarlı tasarım, ES6 JavaScript, DOM, Fetch API ve erişilebilirlik.

Detayları Gör →
Yazılım Geliştirme GenelFSD Getting Started: Introduction to Full Stack Development Eğitimi
Yazılım Geliştirme Eğitimleri

FSD Getting Started: Introduction to Full Stack Development Eğitimi

2 günBaşlangıçOnline / Yüz Yüze / Hibrit

Full stack geliştirmeye giriş eğitimi: HTTP, HTML/CSS/JS, Node.js, Express, REST API, SQL/NoSQL ve bulutta yayınlama.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn