Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Hexagonal Architecture (Ports & Adapters): Uygulamayı Dış Dünyadan Yalıtmak
Hexagonal Architecture (Cockburn, 2005), uygulamayı UI, test, batch script ve veritabanından eşit uzaklıkta tutar: dış dünya amaca göre tanımlanmış port'lar üzerinden konuşur, her teknoloji bir adapter ile takılır. Bookstore'da IPlaceOrder driving port'unu Minimal API, console CSV import ve xUnit testiyle, IOrderStore driven port'unu EF Core ve in-memory adapter'la sürüyoruz; ASP.NET Core'un IServer'ı ve altıgenle ilgili yanlış okumalar.
Dependency'leri İçe Çevirmek: Layered Architecture Nerede Tıkanır?
Layered Architecture'da compile-time dependency yukarıdan aşağı aktığı için iş kuralları EF Core'a, SQLite'a ve dış API'lere kilitlenir; çözüm, runtime çağrı yönünü koruyup interface'leri onları kullanan domain project'ine taşıyarak referans okunu içe çevirmektir. Bookstore'da veritabanı olmadan test yazma ve kargo firmasını değiştirme senaryolarıyla, "interface ekledim, oldu" yanılgısı ve Hexagonal, Onion, Clean'in ortak fikri.