Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
GoF Dışında Bilmen Gereken Kod Seviyesi Pattern'ler: Null Object, Specification, Result ve Pipeline
GoF kataloğunda olmayan dört pattern günlük C# kodunda sürekli işe yarar: Null Object ve Special Case "yok" durumunu davranışı olan bir object'e çevirip null kontrollerini kaldırır, Specification iş kuralını EF Core'un SQL'e çevirebileceği birleştirilebilir bir Expression olarak taşır, Result adımları Then ile hata akışına bağlar, Pipeline da dönüşümleri sıralı filter'lara böler. Func ile yazılan kuralın bütün tabloyu çekmesi, ExpressionVisitor ile parametre birleştirme ve Options pattern.
Clean Code'da Error Handling: Exception, Try Pattern ve Result Pattern
Beklenen iş sonuçları (stok yok, kupon geçersiz, ödeme reddedildi) için Try pattern ya da Result<T>, bug'lar için argument exception'ları, altyapı hataları için context eklenmiş exception kullan ve onları yalnız uygulamanın sınırında yakala. Legacy OrderService'teki return code'larını, static LastError'ı ve boş catch bloklarını bu üç araçla temizliyoruz; ölçümde fırlatılan bir exception TryParse'tan yaklaşık 1.165 kat yavaş.