Java Spring Boot Geliştiricileri İçin Go Dili ve Ekosistemi: Sıfırdan İleri Seviye Rehber

"Spring Boot Konforundan Go'nun Ham Performansına: Kurumsal Uygulama Geliştirme"

INTERMEDIATE Son güncellenme: Mar 2026
Türkçe
Ali Turgut Bozkurt
Eğitmen

Öğrenecekleriniz

Kurs Hakkında

Java’dan Go’ya: Kurumsal Mikroservis Dönüşümü Alt Başlık: Spring Boot Konforundan Go’nun Ham Performansına: Goroutine, net/http ve Testcontainers ile Modern Backend Tasarımı Kurs Hakkında Yıllardır Java ve Spring Boot ekosisteminin sunduğu "sihirli" anotasyonlara, devasa IoC konteynerlerine ve karmaşık hiyerarşilere alıştınız. Peki, tüm bu ağırlıklardan kurtulup, saniyeler içinde ayağa kalkan, sadece 15 MB yer kaplayan ve saniyede yüz binlerce isteği mikrosaniyelik gecikmelerle işleyen bir dünya mümkün mü? Cevap: Evet, Go (Golang). Bu kurs, deneyimli Java geliştiricilerini hedef alan, "merhaba dünya" örneklerinden ziyade kurumsal mimari geçişine odaklanan bir mühendislik rehberidir. Kurs boyunca, Java'daki alışkanlıklarınızın Go'daki karşılıklarını keşfedecek; OOP’nin katı kurallarından Go’nun esnek kompozisyon yapısına, JVM thread’lerinden Go’nun hafifsiklet Goroutine’lerine geçiş yapacaksınız. Neler Öğreneceksiniz? Bu eğitim serisi 10 temel blok üzerine inşa edilmiştir: Mimari Dönüşüm: Kalıtım (Inheritance) yerine Kompozisyon (Embedding) ve Interface (Duck Typing) mantığını kavramak. Eşzamanlılık (Concurrency): Thread ve Lock karmaşasını bırakıp, Goroutine ve Channel ile iletişim kurarak bellek paylaşmayı öğrenmek. Modern Web APIs: net/http, Gin ve Fiber ile yüksek performanslı REST ve gRPC servisleri inşa etmek. Veritabanı Yönetimi: Hibernate’in "magic" dünyasından çıkıp, sqlc ile tip güvenli SQL yazmak ve GORM ile ilişkisel modelleri yönetmek. Hata Toleransı ve Observability: Circuit Breaker mekanizmaları, Viper ile konfigürasyon ve OpenTelemetry ile dağıtık izleme. Kalite ve Test: Mockito yerine yerleşik arayüz testleri, Testcontainers ile Docker tabanlı entegrasyon testleri ve pprof ile performans analizi. Cloud-Native Deployment: Multi-stage Docker build stratejileri ile 0 Byte'lık scratch imajları üzerinde çalışan 10 MB'lık mikroservisler üretmek. Bu Kurs Kimler İçin? Deneyimli Java/Spring Geliştiricileri: Kariyerini Cloud-Native ve Platform Engineering alanına taşımak isteyenler. Backend Mimarları: Sistem performansını artırmak ve altyapı maliyetlerini düşürmek için teknoloji dönüşümü planlayanlar. Geleceğin Gopher Adayları: Go dilini sadece sözdizimi olarak değil, bir mühendislik felsefesi olarak öğrenmek isteyen herkes. Kursun Farkı Nedir? Bu kurs size sadece Go'yu öğretmez; size Java ile Go arasındaki köprüyü kurmayı öğretir. Her bölümde "Spring'de böyle yapıyorduk, Go'da neden böyle yapıyoruz?" sorusuna yanıt bularak, mevcut tecrübenizi yeni bir süper güce dönüştürmenizi sağlar. Final Hedefi: Kurs sonunda, elinizde sadece kod değil; test edilmiş, Dockerize edilmiş ve her türlü yük altında çalışmaya hazır, gerçek dünya standartlarında bir Go mikroservis iskeleti olacak.

Kurs Müfredatı

JVM'e Veda: Go'nun Derleme, Çalışma ve Bellek Mimarisi (Go Runtime vs JVM)
Go 1.20+ Kurulumu, Workspace Yapısı (Go Modules) ve İlk Proje
Java vs Go: Temel Farklar, Paradigma Değişimi ve Yaygın Hatalar
Spring Boot Geliştiricileri İçin Go Sözdizimi (Syntax) Hızlı Turu
Büyük Göç - Spring Boot'tan Go Evrenine Geçiş - Quiz

Değişkenler, Veri Tipleri, Tip Dönüşümleri ve İsimlendirme Standartları
Döngüler, Şartlı İfadeler ve Go'nun Benzersiz `switch-case` Yapısı
Fonksiyonlar, Çoklu Geri Dönüş Değerleri (Multiple Return Values) ve Closure Mimarisi
Hata Yönetimi: Try-Catch Mantığına Veda, `error` Arayüzüne Merhaba
Go'nun Kalbi - Temel Yapılar ve Akış Kontrolü - Quiz

Array'ler, Slice'lar ve Kapasite (Capacity) Yönetimi
Map'ler: Go'nun HashMap Karşılığı ve Eşzamanlı (Concurrent) Kullanım Riskleri
İşaretçiler (Pointers): Java Referansları ile Go Pointer Mantığının Karşılaştırması
Struct'lar: Sınıfların (Classes) Yerini Alan Veri Taşıyıcıları
Veri Yapıları, İşaretçiler (Pointers) ve Bellek Yönetimi - Quiz

Metotlar: Struct'lara Davranış Kazandırmak (Receiver Functions)
Go'da Kalıtım (Inheritance) Yok: Composition (Gömme/Embedding) Pratikleri
Arayüzler (Interfaces): Duck Typing ile Esnek Bağımlılıklar Yaratmak
Boş Arayüz (Empty Interface), Generics ve Tip Doğrulama (Type Assertion)
Metotlar: Struct'lara Davranış Kazandırmak (Receiver Functions)
Go'da Kalıtım (Inheritance) Yok: Composition (Gömme/Embedding) Pratikleri
Arayüzler (Interfaces): Duck Typing ile Esnek Bağımlılıklar Yaratmak
Boş Arayüz (Empty Interface), Generics ve Tip Doğrulama (Type Assertion)
Nesne Yönelimli Programlama (OOP) - Go Tarzı - Quiz

Goroutine'ler: Java Thread'leri ve Virtual Thread'lere Karşı Üstünlükleri
Kanallar (Channels): Goroutine'ler Arası Güvenli İletişim Kurmak
select` İfadesi, Context Paketi ve İstek Zaman Aşımı (Timeout) Yönetimi
sync` Paketi: WaitGroup, Mutex, RWMutex ve Race Condition Engelleme
Eşzamanlılık (Concurrency) - Go'yu Go Yapan Şey - Quiz

Standart Kütüphane (`net/http`) ve Go Yeni Yönlendirme (Routing) Mimarisi
Popüler Framework'ler (Fiber & Gin): REST API Tasarımı ve Context Objesi
Middleware (Filtre/Interceptor) Geliştirme ve İstek Yaşam Döngüsü
Go'da Bağımlılık Enjeksiyonu (DI): Fx ve Wire ile Spring IoC Konforu Yakalamak
Web Geliştirme - Spring MVC ve WebFlux'ın Alternatifleri - Quiz

database/sql` Paketi ve Go'da Connection Pooling Yönetimi
GORM: Java'daki Hibernate Karşılığı ve İlişkisel (Relational) Veri Modeli
sqlc` ile Performans Odaklı Tip Güvenli (Type-Safe) SQL Yazma Sanatı
Redis Entegrasyonu, Caching Stratejileri ve Go ile NoSQL Kullanımı
Veritabanı ve Önbellek İşlemleri - JPA/Hibernate Mantığını Unutun - Quiz

JSON/REST Yeterli Olmadığında: gRPC ve Protocol Buffers (Protobuf) Kullanımı
Go ile Mikroservisler Arası Asenkron İletişim (Kafka ve RabbitMQ)
Servis Keşfi (Service Discovery) ve Consul/Etcd Entegrasyonu
Gözlemlenebilirlik: OpenTelemetry, Prometheus ve Dağıtık İzleme (Distributed Tracing)
Mikroservisler ve Haberleşme Ağları - Quiz

Go'da Birim Testleri (Unit Testing): JUnit Yerine `testing` Paketi
Mocking (Gomock/Testify), Entegrasyon Testleri ve Test Kapsamı (Coverage)
Benchmark Testleri ve Algoritmik Darboğaz (Bottleneck) Tespiti
pprof` ile CPU/Bellek Analizi ve Go Çöp Toplayıcı (GC) Ayarlamaları
Test, Profiling ve Optimizasyon - Hızlıyı Daha Hızlı Yapmak - Quiz

Go Uygulamalarını Dockerize Etmek: Distroless ve Scratch İmajlar (Minimal Boyut)
Güvenlik: JWT, OAuth2 ve Modern API Güvenlik Standartları
Go İleri Seviye: Custom Iterators ve Yeni Nesil Dil Özellikleri
CGO: Go İçinden C Kütüphanelerini Çağırmak ve Sistem Sınırlarını Zorlamak
Üretime Geçiş (Production) ve İleri Seviye Konular - Quiz

Kurs Final Sınavı

Topluluk Tartışmaları

Tümünü Gör
0
Soru
0
Cevaplanmış
0%
Cevap Oranı

Henüz tartışma başlatılmamış.

İlk Soruyu Sor

Öğrenci Değerlendirmeleri

Değerlendir

Henüz değerlendirme yapılmamış. İlk değerlendiren siz olun!