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

Go eşzamanlılığını güvenle kullanın

GMP zamanlayıcı, bellek modeli, sync ve atomic, pipeline ve worker pool, context iptali, race ve deadlock ayıklama ile eşzamanlı servis tasarlayın

Go eşzamanlılık modelini, sync ve atomic ilkellerini, pipeline ve worker pool kalıplarını, context iptalini ve race/deadlock ayıklamayı uygulamalı öğrenin.

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

Eğitim Hakkında

Go'da eşzamanlı programlama modeli, kalıplar ve hata ayıklama

Eğitim, Go'da eşzamanlılığı model düzeyinden üretime kadar işler. CSP yaklaşımı, GMP zamanlayıcı ve bellek modeli, Mutex, RWMutex, WaitGroup, Once, Cond ve atomic, pipeline, fan-out/fan-in, worker pool, errgroup ve semaphore, context ile iptal ve zaman aşımı, goroutine sızıntısı, deadlock ve veri yarışı tespiti, singleflight, backpressure ve worker sayısı boyutlandırma uygulamalı ele alınır.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Model, Senkronizasyon, Kalıplar ve İptal; 2. gün Hata Ayıklama, Gerçek Dünya ve Ölçekleme.

Seviye

İleri Seviye — CSP modeli, sync ve atomic, eşzamanlılık kalıpları, iptal, hata ayıklama ve ölçekleme konularını kapsayan Go eşzamanlılık yelpazesi

Öğrenme Metodu

Katılımcılar yarış koşulu içeren kodu -race ile yakalar, pipeline ve worker pool yazar, iptal edilebilir hat kurar ve yük altında eşzamanlı bir servisi ölçer.

Neden Bu Eğitim?

🧵Doğru Model

CSP ve bellek modelini anlayarak eşzamanlı tasarımları bilinçli yaparsınız.

🐞Hata Avcılığı

Deadlock, yarış ve sızıntıları araçlarla kısa sürede teşhis edersiniz.

📈Ölçeklenebilir Servis

Worker sayısı, backpressure ve kilit çekişmesini ölçümle yönetirsiniz.

Anahtar Konular

go concurrencygo eşzamanlılıkgo sync mutexgo worker poolgo pipelinego errgroupgo context iptalgo race detectorgo deadlocksingleflight
“Eşzamanlılık güçlüdür; sahipliği belli olmayan her goroutine ise bir borçtur.”

Ö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 Eşzamanlılık modelini kavrar, sync ilkellerini doğru seçer, pipeline ve worker pool kurar ve context ile iptali yönetir.
Modül 1
Eşzamanlılık Modeli: CSP, Zamanlayıcı ve Bellek Modeli
  • Eşzamanlılık ile paralellik farkı; Go'nun CSP yaklaşımı: 'belleği paylaşarak iletişim kurma, iletişimle belleği paylaş'
  • GMP zamanlayıcı modeli (goroutine, machine, processor), GOMAXPROCS ve work stealing
  • Go bellek modeli: happens-before ilişkisi, senkronizasyon noktaları ve veri yarışı tanımı
  • Race detector (-race) ile yarış tespiti ve çıktının okunması
  • Eşzamanlı program tasarlama adımları: görevi bağımsız parçalara ayırma ve paylaşılan durumu belirleme
  • Amdahl yasası, ölçeklenebilirlik sınırları ve eşzamanlılığın ne zaman fayda sağlamadığı
Modül 2
Senkronizasyon İlkelleri: sync ve atomic
  • sync.Mutex ve sync.RWMutex ile kritik bölge koruma; kilit sırası ve deadlock önleme
  • sync.WaitGroup, sync.Once ve OnceFunc/OnceValue ile başlatma ve bekleme
  • sync.Cond ile durum bekleme ve Broadcast / Signal farkı
  • sync/atomic: AddInt64, CompareAndSwap, atomic.Value ve atomic.Int64 tipleri
  • sync.Pool ve sync.Map'in doğru kullanım senaryoları
  • Mutex mi channel mı: seçim kriterleri ve karşılaştırmalı benchmark
Modül 3
Eşzamanlılık Kalıpları: Pipeline, Fan-out, Worker Pool
  • Pipeline kalıbı: aşamalar arası channel zinciri ve kapatma sorumluluğu
  • Fan-out / fan-in ile işi paylaştırma ve sonuçları birleştirme
  • Worker pool: sabit sayıda goroutine, iş kuyruğu ve sonuç toplama
  • errgroup.Group ile hata yayan eşzamanlı görevler ve SetLimit ile sınırlama
  • Rate limiting: time.Ticker, golang.org/x/time/rate ve semaphore (x/sync/semaphore)
  • Or-done channel, tee ve bridge channel gibi ileri kalıplar
Modül 4
İptal, Zaman Aşımı ve Context ile Eşzamanlılık
  • context.WithCancel / WithTimeout ile goroutine ağacının iptali
  • select ile iptal, zaman aşımı (time.After) ve default case kullanımı
  • Goroutine sızıntısı nedenleri ve runtime.NumGoroutine / goleak ile tespiti
  • Bağımlı çağrılarda ilk sonuç (first-wins) ve hedged request kalıbı
  • Graceful shutdown: bekleyen işleri bitirme, drain ve zaman sınırı
  • context.AfterFunc, WithCancelCause ve iptal nedeni taşıma
Günün hedefiKatılımcı gün sonunda Deadlock ve yarışları teşhis eder, singleflight ve sınırlı havuzlarla servis bileşenleri yazar, performansı ölçer ve olay işleyen servis tasarlar.
Modül 1
Eşzamanlı Hatalar ve Hata Ayıklama
  • Veri yarışı, deadlock, livelock ve starvation: tanımlar ve Go örnekleri
  • Tipik hatalar: döngü değişkeni yakalama (Go 1.22 öncesi/sonrası), kapalı channel'a yazma, WaitGroup.Add yeri
  • fatal error: all goroutines are asleep çıktısı ve goroutine dump (SIGQUIT) okuma
  • pprof goroutine ve block/mutex profilleriyle bekleme analizi
  • runtime/trace ile zamanlayıcı gecikmeleri ve GC etkileşimi
  • Eşzamanlı kodu test etme: -race -count, stres testi, testing/synctest yaklaşımı
Modül 2
Gerçek Dünya Eşzamanlılık: HTTP, Veritabanı ve Önbellek
  • net/http sunucusunda istek başına goroutine modeli ve paylaşılan durum güvenliği
  • Veritabanı bağlantı havuzu (SetMaxOpenConns) ve eşzamanlı sorgu sınırlandırma
  • singleflight ile aynı anahtara yönelik tekrarlı çağrıları birleştirme
  • Eşzamanlı güvenli önbellek: RWMutex tabanlı, sharding ve TTL temizleme goroutine'i
  • Toplu işlem (batching) ve backpressure: sınırlı kuyruk ve yük atma stratejileri
  • Örnek: paralel web crawler ve toplu API çağrısı yapan servis geliştirme
Modül 3
Eşzamanlılıkta Performans ve Ölçekleme
  • Goroutine maliyeti: yığın boyutu (2 KB başlangıç), büyüme ve milyonlarca goroutine denemesi
  • False sharing, cache line ve sharding ile kilit çekişmesi azaltma
  • Kilitsiz (lock-free) yapılar ve ne zaman gereksiz olduğu
  • Worker sayısı seçimi: CPU-bound ve IO-bound iş yükleri için boyutlandırma
  • GOMAXPROCS, container CPU limitleri ve automaxprocs
  • Benchmark: RunParallel ile paralel benchmark ve sonuç yorumlama
Modül 4
Uygulama Atölyesi: Eşzamanlı Servis Tasarımı
  • Gereksinim: yüksek hacimli olay işleyen servis; tasarım taslağı ve veri akışı diyagramı
  • Kuyruk (channel) ve harici broker (NATS, Kafka) seçimi ve garantiler
  • Retry, dead-letter ve idempotent işleme ile hata toleransı
  • Metrikler: Prometheus sayacı, histogram ve goroutine / kuyruk uzunluğu panoları
  • Yük testi (hey, k6) ve darboğaz analizi
  • Sonuçların kod incelemesi ve iyileştirme planı

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Eşzamanlılık Modeli

CSP modelini, zamanlayıcıyı ve bellek modelini kavrayıp veri yarışlarını yakalarsınız.

🎯
Senkronizasyon

sync ve atomic ilkellerini doğru senaryoda seçip deadlock'suz kod yazarsınız.

🔧
Eşzamanlılık Kalıpları

Pipeline, fan-out ve worker pool kalıplarını hata yönetimiyle uygularsınız.

🧩
İptal ve Zaman Aşımı

Context ile iptal ve zaman aşımı yönetip goroutine sızıntılarını önlersiniz.

📦
Eşzamanlı Hata Ayıklama

Deadlock ve yarışları goroutine dump, pprof ve trace ile teşhis edersiniz.

🚀
Gerçek Dünya Uygulaması

singleflight ve sınırlı havuzlarla eşzamanlı servis bileşenleri geliştirirsiniz.

🔒
Performans ve Ölçekleme

İş yükü tipine göre worker sayısı ve kilit stratejisini ölçümle belirlersiniz.

📊
Servis Atölyesi

Olay işleyen eşzamanlı bir servisi tasarlayıp yük altında doğrularsınız.

Kimler İçin Uygundur?

  • Go ile servis geliştiren ve eşzamanlı programlamada derinleşmek isteyen geliştiriciler
  • backend mühendisleri
  • sistem programcıları için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Go ile servis geliştiren ve eşzamanlı programlamada derinleşmek isteyen geliştiriciler, backend mühendisleri ve sistem programcıları için uygundur.
Goroutine ve channel eğitimlerinden farkı nedir?
Bu eğitim modeli, senkronizasyon, kalıplar ve hata ayıklamayı bir arada ele alan kapsamlı bir eşzamanlılık programıdır.
Race detector kullanılıyor mu?
Evet. -race ile yarış tespiti, goroutine dump okuma ve pprof/trace analizi uygulanır.
Dış kuyruk sistemleri var mı?
Atölyede NATS veya Kafka ile dış kuyruk seçimi, retry ve dead-letter yaklaşımı değerlendirilir.
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: Concurrency 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 GenelYazılım Uzmanlığı Eğitimi (Microsoft Certified Solution Dev.-MCSD / AZ-204) Eğitimi
Yazılım Geliştirme Eğitimleri

Yazılım Uzmanlığı Eğitimi (Microsoft Certified Solution Dev.-MCSD / AZ-204) Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

Azure geliştirici (AZ-204) eğitimi: App Service, Functions, Cosmos DB, Blob Storage, Service Bus, Entra ID, Key Vault, API Management ve izleme ile uygulamalı 4

Detayları Gör →
Yazılım Geliştirme GenelYazılımda Enerji Verimliliği ve Yeşil Kod Uygulamaları Eğitimi
Yazılım Geliştirme Eğitimleri

Yazılımda Enerji Verimliliği ve Yeşil Kod Uygulamaları Eğitimi

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

Yeşil yazılım eğitimi: SCI, enerji ölçümü, verimli algoritma, veritabanı ve ağ optimizasyonu, bulut karbon ayak izi ve yeşil mimari ile uygulamalı 2 gün.

Detayları Gör →
Yazılım Geliştirme GenelZapier for Beginners: Automate Workflows Without Coding Eğitimi
Yazılım Geliştirme Eğitimleri

Zapier for Beginners: Automate Workflows Without Coding Eğitimi

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

Zapier başlangıç eğitimi: Zap, trigger, action, Filter, Paths, Formatter, Gmail, Sheets, Slack, webhooks ve hata yönetimi ile kodsuz otomasyon 2 gün.

Detayları Gör →
Yazılım Geliştirme GenelZapier ile Etkin İş Akışları Oluşturma Eğitimi
Yazılım Geliştirme Eğitimleri

Zapier ile Etkin İş Akışları Oluşturma Eğitimi

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

Zapier ile etkin iş akışı eğitimi: Paths, Looping, Storage, Tables, Webhooks, Code by Zapier, hata yönetimi ve takım yönetimiyle uygulamalı 2 gün.

Detayları Gör →
Yazılım Geliştirme GenelZig Programlama Eğitimi
Yazılım Geliştirme Eğitimleri

Zig Programlama Eğitimi

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

Zig programlama eğitimi: comptime, allocator, error union, struct ve union, build.zig, C interop ve çapraz derleme ile sistem programlama odaklı 3 gün.

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