Gürkan UÇAR

Gürkan UÇAR

Yazılım mühendisiyim. Backend geliştirme, self-hosted sistemler, elektronik ve havacılıkla ilgileniyorum. Bu blog, öğrendiklerimi, geliştirdiğim projeleri ve bulduğum çözümleri not aldığım kişisel bilgi arşivimdir.

Son yazılar

Tüm yazılar →
İnfografik: Adapter deseni farklı dış dilleri ortak modele çevirir, Strategy deseni hangi adaptörün çalışacağını seçer — Controller'dan Use case'e, oradan MenuAdapter portuna, sonra XFirmMenuAdapter (X API, JSON) ve YFirmMenuAdapter (Y API, XML)
8 Ağu 2026 · 7 dk

Adapter ve Strategy: Dış Servisleri Domain'in Dışında Tutmak

Birden fazla dış servisle entegre olurken hiçbirinin iş mantığınıza sızmasına izin vermemek: tek bir port, birden çok adaptör ve hangi adaptörün çalışacağını seçmenin iki yolu.

İnfografik: solda iç içe geçmiş if-else bloklarından oluşan Arrow Anti-Pattern, sağda aynı kuralların art arda erken return'lerle yazılmış hali ve en sonda mutlu yol
8 Ağu 2026 · 8 dk

Clean Code: Guard Clauses ve Early Return

Arrow Anti-Pattern’den kurtulup iş kurallarını düz bir akışta yazmak: Guard Clauses, Early Return ve bunların unit testlerle nasıl test edileceği.

İnfografik: solda Kafka log tabanlı model — mesajlar kalır, tüketiciler kendi offset'ini takip eder, gazete arşivi benzetmesi; sağda RabbitMQ queue tabanlı model — mesajlar teslim edilince kuyruktan çıkar, postane benzetmesi; ortada bir topic log'u iki consumer group ile ve bir kuyruk ack akışıyla; altta replay, retry, paralellik, routing ve sıralama başlıklarında karşılaştırma
9 Ağu 2026 · 36 dk

Kafka mı RabbitMQ mu? Mesajın Yaşam Döngüsü Neyi Değiştiriyor?

Kafka mesajları log’da tutar, RabbitMQ ise teslim durumunu takip eder. Aynı işi iki broker’da da kurup nerede zorlandıklarına bakıyoruz: hangisini neye göre seçmeli?

İnfografik: iş akışından tek bir INSERT ile atomik enqueue, e-posta kuyruğu tablosu, idempotent claim ve sağlayıcıya gönderim; altında mükerrer gönderim, sessiz kayıp, stuck-job recovery, retry ve retention başlıkları ile DB-poll–broker karşılaştırması
8 Ağu 2026 · 12 dk

Asenkron E-posta Gönderim Sistemi: Stack'ten Bağımsız Bir Tasarım

Tek bir INSERT ile kabul edilen, worker’ların güvenilir biçimde işlediği bir e-posta kuyruğu: veri modeli, yarış koşulları, exactly-once’ın neden mümkün olmadığı ve DB-poll ile broker arasındaki tercih.