Göktay Logo

Blog & Notlar.

Yılda sadece birkaç kez yazarım, ama yazdığımda sektördeki gerçek bir problemi veya arkasındaki mühendislik mantığını anlatırım. Go, React ve mimari üzerine.

Konu başlıklarına göz at →

Yazı Serileri

Tümü →

Go HTTP Client'ınızı Sessizce Yavaşlatan Tek Satır: resp.Body.Close()

Geliştirmede kusursuz çalışan bir Go HTTP client, yük altında neden yavaşlar? Cevap net/http'nin bağlantı havuzunda gizli. resp.Body'i doğru kapatmayı, gövdeyi boşaltmayı ve keep-alive bağlantı sızıntısını gerçek kodla çözüyoruz.

#golang #backend #performans #http
YAZIYI OKU →

Redis ve Kubernetes Olmadan Tek Sunucuda 10.000 Eşzamanlı Kullanıcı

Her projeye baştan Redis, Kubernetes ve mikroservis kurmak zorunda değilsiniz. Go'nun goroutine modeli sayesinde iyi ayarlanmış tek bir binary, mütevazı bir sunucuda on binlerce eşzamanlı kullanıcıyı rahatça karşılar. Neyin gerçekten gerektiğini ve sınırların nerede başladığını konuşuyoruz.

#golang #mimari #performans #backend
YAZIYI OKU →

Şifreleme, Hash ve Encoding: Go'da crypto/aes, bcrypt ve base64'ü Karıştırmayı Bırakın

'Parolayı base64 ile şifreledim', 'SHA-512 ile encrypt ettim' — bu üç kavram sürekli karıştırılıyor. Go'da encoding (base64), hashing (bcrypt/SHA) ve encryption (AES-256-GCM) arasındaki farkı, hangisinin ne zaman kullanılacağını gerçek kodla netleştiriyoruz.

#golang #guvenlik #backend #kriptografi
YAZIYI OKU →

Go'da Production-Ready Rate Limiter: Token Bucket'tan Dağıtık Sınırlamaya

API'nizi kötüye kullanıma ve ani yüke karşı korumanın en temiz yolu rate limiting. Token bucket algoritmasını, golang.org/x/time/rate ile IP başına sınırlamayı, 429 middleware'ini ve tek instance'tan dağıtık (Redis) sınırlamaya geçişi gerçek Go koduyla anlatıyoruz.

#golang #backend #api #performans
YAZIYI OKU →

2026'da Her Backend Mühendisinin Bilmesi Gereken Go Kütüphaneleri

Go'nun standart kütüphanesi güçlüdür ama gerçek production sistemlerinde her zaman yetmez. Routing'den veritabanına, loglamadan konfigürasyona, ekosistemde gerçekten öğrenmeye değer kütüphaneleri seçtim.

#golang #backend #kutuphaneler #api
YAZIYI OKU →

Yüzlerce Go Reposu İnceledim: En Sık Yapılan 5 Hata

Onlarca Go projesinde dönüp dolaşıp aynı hataları gördüm: yutulmuş error'lar, kontrolsüz goroutine'ler, yanlış yönetilen context, tanrı struct'lar ve dağınık proje yapısı. Her birini neden ve nasıl çözüldüğüyle anlatıyorum.

#golang #temiz-kod #mimari #backend
YAZIYI OKU →

Go Projemi Aşırı Mühendislik Ettim ki Siz Etmeyin

Repository ağacında güzel görünen ama günlük geliştirmede acı veren bir Go projesi yazdım. Katman, interface ve DTO bolluğunu nasıl temizlediğimi ve gerçekten neyi koruduğumu anlatıyorum.

#golang #mimari #clean-architecture #temiz-kod #backend
YAZIYI OKU →

Golang Gin Framework: HTTP Temellerinden Production API'ye Kapsamlı Rehber

HTTP nedir, durum kodları ne anlama gelir ve Golang Gin ile production kalitesinde bir REST API nasıl yazılır? Routing, binding, validation, middleware ve gerçek örneklerle sıfırdan sonuna kadar tek yazıda.

#golang #gin #web-framework #api #backend
YAZIYI OKU →

Artık Uzun Struct Literalleri Yazmıyorum: Go 1.27 ve Keyed Fields

Go 1.27, anonim gömülü tiplerin terfi eden alanlarını struct literal'inde doğrudan anahtar olarak kullanmanıza izin veriyor. Yıllardır katlandığımız iç içe başlatma kalıbı sonunda bitiyor.

#golang #temiz-kod #backend
YAZIYI OKU →

Go'da Dış API Çağrıları için 3 Tasarım — Clean Architecture'a Sadece Biri Uydu

Her Go servisi eninde sonunda dış bir şeyle konuşur: ödeme geçidi, kargo, bildirim servisi. Bu çağrıları üç farklı şekilde yapılandırdım; bağımlılık kuralını yalnızca Ports & Adapters ihlal etmedi.

#golang #mimari #clean-architecture #backend
YAZIYI OKU →

Go'da 5 Repository Pattern Denedim — Sadece Biri Hayatta Kaldı

Yıllar içinde Go projelerinde veri erişim katmanını beş farklı şekilde kurdum. Method explosion'dan interface bloat'a kadar hepsinin bedelini ödedim. İşte hangisinin her projede ayakta kaldığı ve neden.

#golang #mimari #clean-architecture #backend
YAZIYI OKU →

Go Standart Kütüphanesi: "Batteries Included" Ne Demek?

Golang'ın en büyük gücü dilin kendisi değil, kutudan çıkan standart kütüphanesidir. Her gün kullandığım net/http, encoding/json, context ve slog gibi paketleri gerçek örneklerle anlatıyorum.

#golang #standart-kutuphane #backend
YAZIYI OKU →

Neden Golang? Modern Yazılımın Görünmez Kahramanıyla Tanışın

Google’ın devasa altyapısını yönetmek için doğan, sadeliğiyle sistem mühendisliğini yeniden tanımlayan Golang dünyasına bir yolculuk. Neden Go öğrenmeli, sistem kaynaklarını nasıl optimize etmelisiniz?

#golang #sistem-mimarisi #kariyer #backend
YAZIYI OKU →

Astro.js ve Teknik SEO: Sitenin Hızlı Olması Google’ı Neden İkna Etmedi?

Lighthouse puanlarım 100, sitem Go hızıyla çalışıyor ama Google dizine eklemiyor. İşte goktay.dev’i refactor ederken keşfettiğim kritik SEO hataları ve mimari çözümler.

#astro #seo #frontend #mimari
YAZIYI OKU →

Golang ile Clean Architecture Neden Şart?

Sadece kodun çalışması yetmez. Büyük projelerde spagetti koddan kurtulmak ve sürdürülebilir bir yapı kurmak için Go mimarisini nasıl kurguluyorum?

#golang #mimari #clean-architecture #backend
YAZIYI OKU →