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 · 15 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. Bu farkın replay, retry, routing ve task queue gibi kullanım alanlarını nasıl etkilediğine bakalım.

İ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.