Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
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.
Layered Architecture: Presentation, Business ve Data Layer'larının Gerçek Sorumlulukları
Layered Architecture'ın asıl vaadi closed layer'ların sağladığı izolasyondur, ama .NET'te ProjectReference varsayılan olarak transitive olduğu için Web, Business üzerinden Data'yı sessizce görür; DisableTransitiveProjectReferences bu kuralı derleyiciye taşır. N-layer ve N-tier farkı, closed ve open layer, sinkhole, DB-centric tasarım ve dependency yönünün sorunu.