GOOGLE GO (GOLANG) — GELİŞMİŞ EĞİTİMİ

Go ile hızlı, güvenli ve gözlemlenebilir servisler kurun

Goroutine zamanlayıcıdan pprof ve gRPC'ye, üretime hazır Go servislerini tasarlayıp ölçmeyi öğrenin.

Goroutine desenleri, pprof ile profil, generics, gRPC ve Kubernetes'e uygun servis tasarımını kapsayan 4 günlük ileri seviye Go eğitimi.

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

Eğitim Hakkında

Eşzamanlılık, performans ve üretim mimarisi ekseninde ileri Go

Go dilini temel düzeyin ötesine taşıyan bu eğitim; context ile iptal, worker pool ve pipeline desenleri, GMP zamanlayıcısı, escape analysis, pprof ve benchstat ile ölçüm, generics, slog ve OpenTelemetry ile gözlemlenebilirlik, gRPC servisleri ve Kubernetes'te çalışan servislerin tasarımını uygulamalı olarak ele alır.

Süre ve Format

4 Gün. Her gün dört modül; Eşzamanlılık Mühendisliği; Performans ve Tip Sistemi; Üretim Servisi Mimarisi; gRPC, Test ve Dağıtım ekseninde ilerleyen uygulamalı program.

Seviye

İleri Seviye — eşzamanlılık, çalışma zamanı iç yapısı, performans, gRPC ve üretim servisi mimarisi

Öğrenme Metodu

Her konu çalışan kod üzerinde anlatılır; katılımcılar pprof, race detector ve benchmark çıktılarıyla gerçek darboğazları kendi bilgisayarlarında bulup giderir.

Neden Bu Eğitim?

⚡Ölçerek optimize edin

pprof, trace ve benchstat ile tahmine değil veriye dayalı performans iyileştirmesi yaparsınız.

🧵Güvenli eşzamanlılık

Goroutine sızıntısı, data race ve deadlock risklerini tasarım aşamasında önlersiniz.

🚢Üretime hazır servis

Graceful shutdown, probe ve gözlemlenebilirlik ile Kubernetes'e uygun servis yazarsınız.

Anahtar Konular

Go ileri eğitimiGolang eğitimigoroutinecontext paketipprofgRPC GoGo genericsGo performansGo worker poolGo mikroservis
“Hızlı Go kodu yazmak kolaydır; hızlı kalan ve doğru çalışan Go kodu ölçmeyle başlar.”

Ön Koşullar

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

1
Programlama deneyimi

En az bir dilde değişken, döngü ve fonksiyon kavramlarına aşinalık, Go için yeterlidir.

2
Komut satırı

Terminalde dizin gezme, komut çalıştırma ve metin dosyası düzenleme alışkanlığı.

3
Git bilgisi

Temel git clone, commit ve branch işlemlerini bilmek lab çalışmalarını hızlandırır.

4
Geliştirme ortamı

Kendi dizüstü bilgisayarında yönetici izinleriyle araç kurulumu yapabilmek.

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ı, worker pool, pipeline ve errgroup desenlerini context iptaliyle birlikte kurar ve goroutine sızıntılarını test eder.
Modül 1
Goroutine ve Channel
  • go anahtar sözcüğü ile goroutine başlatma ve maliyetinin ölçeği
  • Unbuffered ve buffered channel davranışı, yön kısıtlı channel tipleri
  • close, range over channel ve kapalı channel'dan okuma semantiği
  • select ile çoklu channel, default dalı ve time.After zaman aşımı
  • sync.WaitGroup ile goroutine'leri bekleme
  • sync.Mutex, RWMutex ve sync/atomic ile paylaşılan durumu koruma
Modül 2
Senkronizasyon Primitifleri ve Eşzamanlılık Hataları
  • sync.Once, sync.OnceValue ve sync.Cond kullanım alanları
  • atomic.Value, atomic.Int64 ve kilitsiz sayaç tasarımı
  • Deadlock, livelock ve starvation örnekleri ve tespiti
  • Channel sahipliği kuralı: kim yazar, kim kapatır
  • Goroutine sızıntısı: bloklanan send/receive ve goleak ile test
  • Loop değişkeni yakalama (Go 1.22 değişikliği) ve yaygın yarış desenleri
Modül 3
İleri Eşzamanlılık Desenleri
  • context.Context ile iptal, deadline ve değer taşıma; context sızıntısı
  • Worker pool deseni ve iş kuyruğu boyutlandırma
  • Fan-out/fan-in ve pipeline aşamalarının tasarımı
  • golang.org/x/sync/errgroup ile hata yayan eşzamanlı iş grupları
  • Semaphore ve rate limiting (time.Ticker, x/time/rate)
  • Goroutine sızıntısı tespiti ve güvenli kapanış desenleri
Modül 4
Go Çalışma Zamanı ve Bellek
  • GMP zamanlayıcı modeli: goroutine, makine thread'i ve işlemci (P)
  • GOMAXPROCS ve çalışma zamanı ayarlarının davranışa etkisi
  • Escape analysis: go build -gcflags=-m çıktısını okumak
  • Çöp toplayıcı: GOGC, GOMEMLIMIT ve duraklama süreleri
  • sync.Pool ile nesne yeniden kullanımı ve tuzakları
  • Stack büyümesi, heap tahsisi ve ayırma sayısını azaltma teknikleri
Günün hedefiKatılımcı CPU ve heap profili alarak darboğazları bulur, generics ve küçük interface'lerle tutarlı API'ler tasarlar.
Modül 1
Profil Çıkarma ve Kıyaslama
  • runtime/pprof ve net/http/pprof ile CPU ve heap profili alma
  • go tool pprof ile flame graph ve top/list komutları
  • go test -bench -benchmem ile mikro kıyaslama yazımı
  • benchstat ile istatistiksel karşılaştırma
  • go test -race ile veri yarışı (data race) tespiti
  • go tool trace ile zamanlayıcı ve GC olaylarını inceleme
Modül 2
Generics ve İleri Tip Sistemi
  • Tip parametreleri: generic fonksiyon ve generic struct tanımı
  • Kısıtlar (constraints), comparable, ~T tilde ve union tipleri
  • Generic koleksiyonlar: Map/Filter/Reduce, Set ve cache tipleri
  • slices ve maps standart paketlerinin kullanımı
  • reflect paketi ile çalışma zamanında tip incelemesi ve maliyeti
  • Embedding ile kompozisyon ve interface gömme
Modül 3
Interface Tasarımı ve Go Kalıpları
  • Interface'i tüketici tarafında tanımlama; arayüzü kabul et, struct döndür
  • Functional options deseni ile yapılandırılabilir yapıcılar
  • Embedding ile davranış genişletme ve metot gölgeleme
  • Bağımlılık enjeksiyonu: elle kablolama ve Wire ile derleme zamanı DI
  • Mock yerine fake: io.Reader/Writer gibi küçük arayüzlerle test
  • Hata türleri için davranış arayüzleri (Temporary, Timeout)
Modül 4
Fonksiyonlar, Metotlar ve Interface
  • Çoklu dönüş değerleri, adlandırılmış dönüş ve variadic parametreler
  • Closure'lar ve fonksiyonların birinci sınıf değer olarak kullanımı
  • defer'in LIFO çalışması, panic ve recover ile kontrollü çöküş
  • Değer ve pointer receiver seçimi; metot setleri ve interface karşılama kuralı
  • Örtük (implicit) interface, küçük interface tasarımı ve any/boş interface
  • Type assertion, type switch ve nil interface tuzağı
Günün hedefiKatılımcı middleware, graceful shutdown, pgx/sqlc ve slog tabanlı gözlemlenebilir bir servis iskeleti oluşturur.
Modül 1
Üretim Servisi Mimarisi
  • Go 1.22 ServeMux desenleri (metot ve yol parametresi) ile yönlendirme
  • Middleware zinciri: loglama, recover, kimlik doğrulama, istek kimliği
  • http.Server zaman aşımları ve Shutdown ile graceful kapanış
  • Ortam değişkeni tabanlı yapılandırma ve bağımlılık enjeksiyonu (constructor)
  • database/sql, bağlantı havuzu ayarları ve context'li sorgular
  • Repository katmanı, transaction yönetimi ve migration araçları
Modül 2
Veri Katmanı, Önbellek ve Kuyruk
  • pgx ile PostgreSQL bağlantı havuzu ve COPY
  • sqlc ile tip güvenli sorgu kodu üretimi
  • golang-migrate ile şema migrasyonu
  • go-redis ile önbellek, TTL ve cache-aside deseni
  • Transaction sınırları, outbox deseni ve idempotency anahtarı
  • NATS / Kafka (segmentio, franz-go) ile olay tüketimi
Modül 3
Gözlemlenebilirlik: Log, Metrik, İz
  • log/slog ile yapısal günlük, handler ve seviye yönetimi
  • Prometheus client_golang: Counter, Gauge, Histogram
  • OpenTelemetry Go SDK ile dağıtık izleme (span, propagation)
  • İstek kimliği ve context ile korelasyon
  • /healthz, /readyz ve pprof uç noktalarının güvenli sunumu
  • SLO, hata bütçesi ve alarm tasarımına giriş
Modül 4
Hata Yönetimi ve Paket Tasarımı
  • error arayüzü ve if err != nil idiomunun doğru kullanımı
  • fmt.Errorf ile %w sarmalama; errors.Is ve errors.As ile hata zinciri sorgusu
  • Sentinel hata, özel hata tipi ve ne zaman hangisinin seçileceği
  • internal/ dizini, paket sınırları ve döngüsel bağımlılıktan kaçınma
  • init() fonksiyonu ve paket başlatma sırası
  • Log yazımı: log paketi, log/slog ile yapısal kayıt
Günün hedefiKatılımcı gRPC servisi yazar, fuzz ve httptest ile test eder, servisi konteyner ve Kubernetes'e uyumlu şekilde paketler ve bitirme çalışmasını sunar.
Modül 1
gRPC ve Servisler Arası İletişim
  • Protocol Buffers: .proto sözdizimi, alan numaraları, geriye uyumluluk
  • protoc ve protoc-gen-go/-go-grpc ile kod üretimi
  • Unary, server-streaming, client-streaming ve bidirectional RPC
  • Interceptor'lar: loglama, metrik ve kimlik doğrulama
  • Deadline, retry ve status code yönetimi (codes.DeadlineExceeded vb.)
  • gRPC health checking ve grpc-gateway ile REST köprüsü
Modül 2
İleri Test ve Dağıtım
  • net/http/httptest ile handler ve istemci testleri
  • Interface tabanlı sahte (fake) nesneler ve bağımlılık izolasyonu
  • Fuzzing: go test -fuzz ve corpus yönetimi
  • Build tag'leri, ldflags ile sürüm gömme ve cross-compile (GOOS/GOARCH)
  • Çok aşamalı Dockerfile ile scratch/distroless imaj oluşturma
  • Kapsama (coverage) raporları ve CI hattında go vet, staticcheck, golangci-lint
Modül 3
Kubernetes ve Bulutta Go Servisleri
  • 12-factor uygulama ve ortam tabanlı yapılandırma
  • SIGTERM yakalama ve pod sonlanırken graceful shutdown
  • automaxprocs ve konteyner CPU/bellek limitleriyle GOMAXPROCS/GOMEMLIMIT uyumu
  • Liveness / readiness / startup probe tasarımı
  • Helm şablonu ve ConfigMap/Secret kullanımı
  • Rolling güncelleme, HPA ve yük altında davranış gözlemi
Modül 4
Bitirme: Üretime Hazır Servis
  • Gereksinim ve mimari karar kaydı (ADR) hazırlama
  • Servisin katmanlı iskeletinin ve CI hattının kurulması
  • hey/vegeta/k6 ile yük testi ve darboğaz bulma
  • pprof ile iyileştirme turu ve benchstat doğrulaması
  • Güvenlik gözden geçirme: govulncheck, girdi doğrulama, bağımlılık denetimi
  • Kod inceleme, sunum ve geri bildirim oturumu

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Context ve iptal

Context ile iptal, zaman aşımı ve kaynak temizliğini doğru uygulayabilirsiniz.

🎯
Eşzamanlı desenler

Worker pool, fan-out/fan-in ve pipeline desenlerini hatasız kurabilirsiniz.

🧩
Profil çıkarma

pprof ve trace çıktılarını yorumlayarak darboğazları giderebilirsiniz.

🛠️
Bellek yönetimi

Escape analysis ve GC ayarlarıyla ayırma sayısını azaltabilirsiniz.

🔍
Generics kullanımı

Tip parametreleri ve kısıtlarla yeniden kullanılabilir kod yazabilirsiniz.

🚀
gRPC servisleri

Protobuf sözleşmesinden unary ve streaming gRPC servisi geliştirebilirsiniz.

📈
Gözlemlenebilirlik

slog, Prometheus ve OpenTelemetry ile servisi izlenebilir hale getirebilirsiniz.

🧪
Güvenli dağıtım

Fuzz, race ve govulncheck ile kalite kapılarını CI hattına ekleyebilirsiniz.

Kimler İçin Uygundur?

  • Go ile en az birkaç aydır kod yazan
  • servis tarafında performans
  • dayanıklılık konularını derinleştirmek isteyen backend geliştiricileri ve takım liderleri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Go ile en az birkaç aydır kod yazan, servis tarafında performans ve dayanıklılık konularını derinleştirmek isteyen backend geliştiricileri ve takım liderleri için uygundur.
Eğitim için Go bilmem gerekir mi?
Evet; struct, interface, slice, map ve temel goroutine/channel kullanımını bilmeniz beklenir. Bu eğitim temel anlatımını tekrar etmeden ileri konulara geçer.
Hangi Go sürümü kullanılır?
Go 1.22 ve üzeri; yeni ServeMux desenleri, döngü değişkeni semantiği ve slog paketi dahil güncel özellikler kullanılır.
Lab ortamı için ne gerekir?
Go araç zinciri, bir kod editörü, Docker ve protoc kurulumu yeterlidir; kurulum yönergeleri eğitim öncesi paylaşılır.
Eğitim sonunda sertifika alabilir miyim?
Evet. Devamlılık ve başarı koşullarını yerine getiren katılımcılara 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. Google Go (Golang) — Gelişmiş Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre4 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