<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Yazılar on Gürkan UÇAR</title>
    <link>https://gurkanucar.com/tr/posts/</link>
    <description>Recent content in Yazılar on Gürkan UÇAR</description>
    <generator>Hugo</generator>
    <language>tr-TR</language>
    <lastBuildDate>Sun, 09 Aug 2026 12:00:00 +0300</lastBuildDate>
    <atom:link href="https://gurkanucar.com/tr/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Adapter ve Strategy: Dış Servisleri Domain&#39;in Dışında Tutmak</title>
      <link>https://gurkanucar.com/tr/posts/clean-architecture-adapter-ve-strategy-spring-boot/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/clean-architecture-adapter-ve-strategy-spring-boot/</guid>
      <description>İki farklı dış firma, birbiriyle uyuşmayan iki API, tek bir domain modeli. Adapter deseni Spring Boot&amp;#39;ta bunlara ortak bir dil kazandırıyor, Strategy ise hangisinin çalışacağına karar veriyor: @ConditionalOnProperty ile açılışta ya da factory ile istek bazında.</description>
    </item>
    <item>
      <title>Clean Code: Guard Clauses ve Early Return</title>
      <link>https://gurkanucar.com/tr/posts/clean-code-guard-clauses-early-return/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/clean-code-guard-clauses-early-return/</guid>
      <description>İç içe geçmiş if-else bloklarını Guard Clauses ve Early Return ile nasıl daha okunabilir hale getirebileceğinizi gerçek bir check-in senaryosu üzerinden görelim.</description>
    </item>
    <item>
      <title>Kafka mı RabbitMQ mu? Mesajın Yaşam Döngüsü Neyi Değiştiriyor?</title>
      <link>https://gurkanucar.com/tr/posts/kafka-vs-rabbitmq/</link>
      <pubDate>Sun, 09 Aug 2026 12:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/kafka-vs-rabbitmq/</guid>
      <description>Kafka ve RabbitMQ arasındaki farkları mesajın broker&amp;#39;daki yaşam döngüsünden başlayarak açıklıyoruz; sonra aynı senaryoyu iki broker&amp;#39;da da kurup &amp;#39;neden bu, ötekini seçseydik ne olurdu&amp;#39; sorusunu somutlaştırıyoruz.</description>
    </item>
    <item>
      <title>Asenkron E-posta Gönderim Sistemi: Stack&#39;ten Bağımsız Bir Tasarım</title>
      <link>https://gurkanucar.com/tr/posts/asenkron-eposta-gonderim-sistemi-tasarimi/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/asenkron-eposta-gonderim-sistemi-tasarimi/</guid>
      <description>E-posta göndermek isteyen iş akışını sağlayıcıya bağımlı hale getirmeden, mükerrer gönderim ve sessiz kayıp riskini yöneterek asenkron bir gönderim sistemi tasarlamak: atomik enqueue, idempotent claim, stuck-job recovery, retry ve retention.</description>
    </item>
    <item>
      <title>Chain of Responsibility: Karmaşık Kuralları Bir Pipeline&#39;a Dönüştürmek</title>
      <link>https://gurkanucar.com/tr/posts/chain-of-responsibility-spring-boot/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/chain-of-responsibility-spring-boot/</guid>
      <description>Birden fazla iş kuralını tek bir serviste yönetmek yerine Chain of Responsibility ve Pipeline yaklaşımıyla kuralları bağımsız, test edilebilir ve kolay genişletilebilir hale getirmek.</description>
    </item>
    <item>
      <title>Facade Pattern: Karmaşık Alt Sistemleri Tek Bir Kapının Arkasına Saklamak</title>
      <link>https://gurkanucar.com/tr/posts/facade-pattern-spring-boot/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/facade-pattern-spring-boot/</guid>
      <description>Bir rezervasyon akışında ödeme, bilet, bagaj, bildirim ve sadakat sistemleriyle tek tek uğraşmak yerine Facade Pattern ile karmaşık iş akışını tek bir arayüzün arkasında toplamak.</description>
    </item>
    <item>
      <title>Mediator Pattern: React&#39;te Bileşenler Arasındaki Karmaşayı Yönetmek</title>
      <link>https://gurkanucar.com/tr/posts/mediator-pattern-react-zustand-checkout/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/mediator-pattern-react-zustand-checkout/</guid>
      <description>React&amp;#39;te birbiriyle sürekli etkileşen bileşenler büyüdükçe prop drilling ve callback zincirleri hızla karmaşıklaşır. Mediator Pattern ve Zustand ile bu koordinasyonu tek bir yerde nasıl yönetebileceğinizi görelim.</description>
    </item>
    <item>
      <title>N&#43;1 Query: ORM Kullanırken Sessiz Performans Tuzağı</title>
      <link>https://gurkanucar.com/tr/posts/n-plus-one-query-jpa-hibernate-spring-boot/</link>
      <pubDate>Sat, 08 Aug 2026 10:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/n-plus-one-query-jpa-hibernate-spring-boot/</guid>
      <description>ORM kullanırken fark etmeden yüzlerce SQL sorgusu çalıştırmanıza neden olan N&#43;1 problemi neden oluşur ve Spring Boot/JPA’da JOIN FETCH, EntityGraph, batch fetching ve DTO projection ile nasıl çözülür?</description>
    </item>
    <item>
      <title>Nginx Nedir? Neden Kullanılır?</title>
      <link>https://gurkanucar.com/tr/posts/nginx-nedir-neden-kullanilir/</link>
      <pubDate>Thu, 03 Jul 2025 19:30:00 +0000</pubDate>
      <guid>https://gurkanucar.com/tr/posts/nginx-nedir-neden-kullanilir/</guid>
      <description>Nginx, temel olarak açık kaynaklı ve yüksek performanslı bir web sunucusudur. Ancak işlevi yalnızca bununla sınırlı değildir; aynı zamanda bir reverse proxy olarak da görev yapar.</description>
    </item>
    <item>
      <title>Geliştirici olmak için izlediğim yol</title>
      <link>https://gurkanucar.com/tr/posts/java-gelistirici-olmak-icin-izledigim-yol/</link>
      <pubDate>Sun, 30 Mar 2025 18:00:07 +0000</pubDate>
      <guid>https://gurkanucar.com/tr/posts/java-gelistirici-olmak-icin-izledigim-yol/</guid>
      <description>Nasıl geliştirici olunur sorusuna cevap vermek yerine kendi yolculuğumu anlatıyorum: Visual Basic ile yazdığım ilk uygulamalardan staja, düşük maaşlardan startup tercihine kadar yaptığım doğrular ve yanlışlar.</description>
    </item>
    <item>
      <title>Bilgisayar Bilimleri Sınav Notlarım: Veri Yapılarından Dağıtık Sistemlere</title>
      <link>https://gurkanucar.com/tr/posts/bilgisayar-bilimleri-sinav-notlari/</link>
      <pubDate>Mon, 20 Jan 2020 09:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/bilgisayar-bilimleri-sinav-notlari/</guid>
      <description>Bilimsel değerlendirme sınavı için tuttuğum kapsamlı çalışma notu: veri yapıları, algoritmalar, sayı sistemleri ve mantık kapıları, otomata teorisi, OOP, veritabanı, işletim sistemleri, ağ, HTTP, güvenlik, test, Git, dağıtık sistemler ve yapay zeka — tanımların yanında &amp;#39;neden böyle?&amp;#39; cevaplarıyla.</description>
    </item>
    <item>
      <title>Bu Blogun Render Edebildiği Her Şey</title>
      <link>https://gurkanucar.com/tr/posts/markdown-ve-shortcodelar/</link>
      <pubDate>Wed, 01 Jan 2020 09:00:00 +0300</pubDate>
      <guid>https://gurkanucar.com/tr/posts/markdown-ve-shortcodelar/</guid>
      <description>Sitedeki bütün biçimlendirme özelliklerinin, shortcode&amp;#39;ların ve gömülü içeriklerin çalışan referansı — uyarı kutuları, sekmeler, adımlar, diyagramlar, matematik, terminal kayıtları ve altındaki düz markdown.</description>
    </item>
  </channel>
</rss>
