Yazılım Mühendisliği

Clean Architecture ile SOLID Pratikleri

Clean Architecture, business kurallarının framework, persistence ve UI detayına source-code bağımlılığını azaltır. SOLID ise class ve contract tasarımındaki değişiklik nedenlerini değerlendirir; mimari klasör yapısı bu prensiplere uyumu otomatik sağlamaz. 1.…

Onion Architecture: Katmanlar ve Modern Mimari Analizi

Onion Architecture, business modelinin persistence ve framework detayına compile-time bağımlılığını azaltmayı hedefler. N-Tier’ın fiziksel tier ayrımıyla aynı karar değildir; iki yaklaşım aynı uygulamada birlikte yer alabilir. 1. Onion Architecture Nedir?…

N-Tier Architecture Nedir? Nerede Kullanılır?

N-Tier Architecture, uygulamanın fiziksel deployment bölümlerini ve aralarındaki iletişimi düzenler. Layer ise kodun mantıksal sorumluluk sınırıdır. Bu ayrım, klasör sayısını deployment veya scaling kabiliyetiyle karıştırmamak için önemlidir. 1. N-Tier Architecture…

Exception Handling Yapısının Doğru Kullanımı

Exception handling, hatayı yakalamaktan önce hangi sınırın nasıl toparlanacağını belirlemeyi gerektirir. Bir catch bloğu yalnız log yazıp devam ediyorsa operasyon gerçekten başarıyla tamamlanmış olmaz. Aynı şekilde her katmanın aynı hatayı…

Service Locator Antipattern Nedir, Nasıl Önlenir?

Service Locator antipattern, bir iş sınıfının ihtiyaçlarını constructor’da göstermeden provider’dan kendisinin resolve etmesiyle ortaya çıkar. Caller sınıfı oluştururken gerçek dependency’leri göremez; eksik kayıt veya yanlış lifetime çoğu zaman kullanım sırasında…

C# Asenkron Programlama: async/await, Task ve Tuzaklar

C# asenkron programlama, I/O beklemelerini thread’i bloke etmeden yönetmeyi kolaylaştırır. Ancak async eklemek, senkron veya CPU ağırlıklı işi kendiliğinden farklı bir thread’de çalıştırmaz. Bu yazıda çağrı zincirini, context davranışını ve…