ADVANCED PROGRAMMING IN GO: GOROUTINES EĞİTİMİ

Goroutine'leri kontrol altında tutun

GMP zamanlayıcı, WaitGroup ve errgroup, sızıntı önleme, veri yarışları, worker havuzu, pprof ve trace ile goroutine'leri yönetin

GMP zamanlayıcı, WaitGroup ve errgroup, sızıntı ve veri yarışı giderme, worker havuzu ile pprof ve trace üzerinden goroutine yönetimini uygulamalı öğrenin.

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

Eğitim Hakkında

Goroutine yaşam döngüsü ve eşzamanlı kod yönetimi

Eğitim, goroutine'lerin nasıl çalıştığını ve nasıl güvenle yönetileceğini ele alır. GMP modeli, preemption ve yığın büyümesi, WaitGroup ve errgroup, döngü değişkeni yakalama, panic izolasyonu, sahiplik ilkesi ve sızıntı örnekleri, goleak, veri yarışı örnekleri ve -race, Mutex ve atomic, worker havuzu ve semaphore, goroutine dump, Delve, trace ve pprof, paralel algoritmalar ve Amdahl yasası uygulamalı olarak işlenir.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Yaşam Döngüsü, Yönetim, Sızıntı ve Veri Yarışı; 2. gün Havuz, Gözlemleme, Paralel Algoritma ve Atölye.

Seviye

İleri Seviye — Goroutine yaşam döngüsü, zamanlayıcı, bekleme ve sonuç toplama, sızıntı, veri yarışı, havuz ve gözlemleme konularını kapsayan yelpaze

Öğrenme Metodu

Katılımcılar sızıntılı ve yarışlı kodları araçlarla teşhis eder, havuzlu paralel tarayıcı yazar, goroutine dump ve trace okur ve temiz kapanışlı arka plan işleri geliştirir.

Neden Bu Eğitim?

🪢Yaşam Süresi Kontrolü

Sahiplik ve iptal ilkeleriyle goroutine sızıntılarını önlersiniz.

🔎Gözlemlenebilirlik

Dump, pprof ve trace ile üretimdeki goroutine davranışını görünür kılarsınız.

🏊Kontrollü Paralellik

Havuz ve semaforla kaynak tüketimini sınırlayıp ölçeklenebilir kod yazarsınız.

Anahtar Konular

go goroutinegoroutine eğitimigmp zamanlayıcıgo waitgroupgo errgroupgoroutine sızıntısıgo race detectorgo worker havuzugo delvego trace pprof
“Her goroutine'in bir sahibi ve bir bitiş koşulu olmalıdır.”

Ö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 Goroutine yaşam döngüsünü ve zamanlayıcıyı kavrar, bekleme ve sonuç toplamayı yönetir, sızıntıları ve veri yarışlarını giderir.
Modül 1
Goroutine Yaşam Döngüsü ve Zamanlayıcı
  • go ifadesi, goroutine başlatma maliyeti ve main fonksiyonunun bitişiyle sonlanma
  • GMP modeli: G, M, P kuyrukları, global kuyruk, work stealing ve netpoller
  • Preemption: kooperatif ve asenkron (Go 1.14+) önceleme; runtime.Gosched
  • Goroutine yığını: 2 KB başlangıç, dinamik büyüme ve kopyalama
  • Bloklayıcı sistem çağrıları, cgo ve zamanlayıcıya etkileri
  • runtime.NumGoroutine, runtime.NumCPU ve GOMAXPROCS ile gözlem
Modül 2
Goroutine Başlatma, Bekleme ve Sonuç Toplama
  • sync.WaitGroup ile bekleme; Add / Done / Wait sırası hataları ve Go 1.25 WaitGroup.Go
  • Döngü değişkeni yakalama (loop var) davranışı ve Go 1.22 ile değişiklik
  • Sonuç toplama: channel, slice indeksi ve mutex ile güvenli yazım
  • Panic'in goroutine sınırında yakalanması: recover ile koruma sarmalayıcı
  • errgroup ile ilk hatada diğerlerini iptal etme
  • Anonim fonksiyon goroutine'leri ve kapanışların (closure) dikkat noktaları
Modül 3
Goroutine Sızıntıları ve Yaşam Süresi Yönetimi
  • Sahiplik ilkesi: her goroutine'in kim tarafından ve ne zaman duracağının belli olması
  • Sızıntı örnekleri: tüketicisiz channel, iptal edilmeyen ticker, kapanmayan HTTP gövdesi
  • goleak ve runtime/pprof goroutine profiliyle tespit
  • Context ile durdurma ve temiz kapanış (graceful stop) deseni
  • Arka plan görevi yöneticisi (supervisor) ve yeniden başlatma politikası
  • Test içinde goroutine temizliği ve t.Cleanup kullanımı
Modül 4
Paylaşılan Durum ve Veri Yarışları
  • Veri yarışı örnekleri: sayaç, map ve slice üzerinde eşzamanlı erişim
  • go run -race / go test -race çıktısı ve çözüm yaklaşımları
  • Mutex ile koruma, kilit kapsamını küçültme ve defer Unlock
  • atomic sayaçlar ve atomic.Value ile okuma ağırlıklı konfigürasyon
  • Değişmez (immutable) veri paylaşımı ve kopyalama stratejisi
  • Goroutine'e özel durum (confinement) ile kilitsiz tasarım
Günün hedefiKatılımcı gün sonunda Worker havuzları kurar, dump, Delve ve trace ile hata ayıklar, paralel algoritmaları ölçer ve servis bileşenlerini sızıntısız geliştirir.
Modül 1
Goroutine Havuzları ve Sınırlama
  • Sınırsız goroutine riskleri: bellek, dosya tanıtıcı ve bağlantı tükenmesi
  • Worker pool kurulumu ve iş kuyruğu boyutlandırma
  • Semafor ile eşzamanlılık sınırı: golang.org/x/sync/semaphore ve buffered channel
  • ants gibi goroutine havuz kütüphaneleri: ne zaman gerekli, ne zaman gereksiz
  • Hata ve panic izolasyonu, iş zaman aşımı ve yeniden deneme
  • Havuz metrikleri: bekleyen iş, aktif işçi ve işlem süresi
Modül 2
Goroutine Hata Ayıklama ve Gözlemleme
  • Goroutine dump: SIGQUIT ile yığın izi ve /debug/pprof/goroutine?debug=2
  • Delve ile goroutine listeleme (goroutines, goroutine N) ve breakpoint
  • runtime/trace ve go tool trace: zamanlayıcı gecikmesi, GC ve ağ bloklaması
  • Üretimde pprof endpoint güvenliği ve sürekli profilleme (Pyroscope)
  • Panic izlerini okuma ve kök neden analizi
  • Metrik: goroutine sayısı, zamanlayıcı gecikmesi (/sched/latencies) ve uyarı kuralları
Modül 3
Goroutine ile Paralel Algoritmalar
  • Bölerek işleme (divide and conquer): paralel merge sort ve eşik değeri (threshold)
  • Paralel map-reduce: parçalara ayırma, kısmi sonuç ve birleştirme
  • I/O ağırlıklı işler için eşzamanlı HTTP istekleri ve zaman aşımı
  • CPU ağırlıklı işlerde hızlanma ölçümü: NumCPU ile ölçekleme eğrisi
  • Paylaşımsız parçalama (sharding) ile kilit azaltma
  • Paralellik sınırları: Amdahl yasası ve bellek bant genişliği
Modül 4
Uygulama: Eşzamanlı Servis Bileşenleri
  • Paralel dosya tarayıcı ve toplu görüntü işleme hattı
  • Zamanlanmış arka plan işleri ve temiz kapanış
  • HTTP sunucusunda istek bazlı goroutine'ler ve paylaşılan önbellek güvenliği
  • Yük testi ve goroutine sayısı gözlemi
  • race, goleak ve pprof ile doğrulama
  • Kod gözden geçirme: sahiplik, iptal ve hata yayılımı kontrolü

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Goroutine ve Zamanlayıcı

GMP modelini ve goroutine yaşam döngüsünü örneklerle açıklayabilirsiniz.

🎯
Goroutine Yönetimi

WaitGroup ve errgroup ile goroutine'leri güvenle başlatıp beklersiniz.

🔧
Sızıntı Önleme

Goroutine sızıntılarını goleak ve pprof ile bulup yaşam süresini yönetirsiniz.

🧩
Veri Yarışları

Veri yarışlarını race detector ile bulup kilit veya atomic ile giderirsiniz.

📦
Havuz ve Sınırlama

Worker havuzu ve semaforla eşzamanlılığı kontrollü sınırlandırırsınız.

🚀
Hata Ayıklama

Goroutine dump, Delve ve trace ile eşzamanlı hataları üretimde teşhis edersiniz.

🔒
Paralel Algoritmalar

CPU ve I/O ağırlıklı işleri paralelleştirip hızlanmayı ölçersiniz.

📊
Goroutine Atölyesi

Paralel tarayıcı ve arka plan işleri gibi bileşenleri sızıntısız geliştirirsiniz.

Kimler İçin Uygundur?

  • Go ile eşzamanlı servisler geliştiren backend geliştiricileri
  • performans
  • güvenilirlik mühendisleri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Go ile eşzamanlı servisler geliştiren backend geliştiricileri, performans ve güvenilirlik mühendisleri için uygundur.
Goroutine ile thread farkı anlatılıyor mu?
Evet. Yığın boyutu, zamanlayıcı ve maliyet farkları GMP modeli üzerinden gösterilir.
Delve ile hata ayıklama var mı?
Evet. goroutine listeleme, breakpoint ve dump analizi uygulamalı yapılır.
Sızıntı tespiti nasıl yapılır?
goleak ile testlerde ve pprof goroutine profiliyle üretimde sızıntı bulunur.
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: Goroutines 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

Yazılım Geliştirme GenelDeveloping Positive Relationships at Work Eğitimi
Yazılım Geliştirme Eğitimleri

Developing Positive Relationships at Work Eğitimi

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

Takdir kültürü, işbirliği, kapsayıcı iletişim ve toksik davranışlarla başa çıkma ile iş yerinde olumlu ilişkiler geliştirmeyi öğrenin.

Detayları Gör →
Yazılım Geliştirme GenelDeveloping Strong Business Acumen Eğitimi
Yazılım Geliştirme Eğitimleri

Developing Strong Business Acumen Eğitimi

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

Finansal tabloları okuma, iş modeli analizi, Porter ve SWOT, birim ekonomisi ve NPV ile ticari bakışınızı güçlendiren eğitim.

Detayları Gör →
Yazılım Geliştirme GenelDeveloping Successful Interpersonal Skills Eğitimi
Yazılım Geliştirme Eğitimleri

Developing Successful Interpersonal Skills Eğitimi

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

Duygusal zeka, zor konuşmalar, çıkar odaklı müzakere, etkileme ve stratejik ağ kurma ile ileri kişilerarası becerilerinizi geliştirin.

Detayları Gör →
Yazılım Geliştirme GenelDeveloping your Analytical Thinking Skills Eğitimi
Yazılım Geliştirme Eğitimleri

Developing your Analytical Thinking Skills Eğitimi

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

MECE yapı, 5 Neden, Ishikawa, hipotez odaklı analiz ve karar matrisiyle analitik düşünme becerilerinizi uygulamalı geliştirin.

Detayları Gör →
Yazılım Geliştirme GenelDeveloping Your Business Acumen Eğitimi
Yazılım Geliştirme Eğitimleri

Developing Your Business Acumen Eğitimi

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

Şirketin kâr mantığını, değer zincirini ve müşteri odağını anlayıp kendi rolünüzün iş sonuçlarına katkısını görünür kılın.

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