Quick Reference

Mülakat Öncesi Hızlı Bakış (Cheat Sheet)

Mülakata girmeden son 10 dakikada göz gezdirebileceğin özet anahtar kelimeler, kurtarıcı yanıtlar ve tuzaklar.

Kavram & Terim Teknoloji Kısa & Net Özet Mülakat Tuzağı
Mimari & DI
.NET Core (C#) Orta

.NET IoC konteynerine bir nesneyi ne sıklıkla üretip ne zaman çöpe atacağını söyleme kuralı.

"Transient her enjeksiyonda yeni nesne üretir. Scoped gelen her HTTP request boyunca tek bi..."
Singleton bir servisin içine Scoped bir servis (örn: DbContext) enjekte etmek! Buna "Capti...
Asenkron
.NET Core (C#) Orta

Uzun süren veritabanı veya HTTP isteklerinde işlemci çekirdeğini (thread) kilitlemeden serbest bırakmaktır.

"Async/Await yeni bir thread açmak demek değildir; I/O bekleme süresinde thread'i serbest b..."
Asenkron metodu Task.Result ile çağırmak ASP.NET SynchronizationContext ortamında Deadlock...
Veritabanı & ORM
.NET Core (C#) Orta

Sadece okuma yapacağın sorgularda EF Core'un hafıza takip mekanizmasını kapatıp performansı 3 katına çıkarmaktır.

"AsNoTracking(), veritabanından sadece okuma yapılacak (güncelleme yapılmayacak) sorgularda..."
AsNoTracking() ile çekilen bir nesnenin property'sini değiştirip _context.SaveChangesAsync...
Mimari & DI
.NET Core (C#) Orta

.NET IoC konteynerine bir nesneyi ne sıklıkla üretip ne zaman çöpe atacağını söyleme kuralı.

"Transient her enjeksiyonda yeni nesne üretir. Scoped gelen her HTTP request boyunca tek bi..."
Singleton bir servisin içine Scoped bir servis (örn: DbContext) enjekte etmek! Buna "Capti...
Asenkron & Concurrency
.NET Core (C#) İleri

Uzun süren veritabanı veya HTTP isteklerinde işlemci çekirdeğini (thread) kilitlemeden serbest bırakmaktır.

"Async/Await yeni bir thread açmak demek değildir; I/O bekleme süresinde thread'i serbest b..."
Asenkron metodu Task.Result veya .Wait() ile çağırmak ASP.NET SynchronizationContext ortam...
Veritabanı & ORM
.NET Core (C#) Orta

Sadece okuma yapacağın sorgularda EF Core'un hafıza takip mekanizmasını kapatıp performansı katlamaktır.

"AsNoTracking(), veritabanından sadece okuma yapılacak sorgularda Change Tracker yükünü ort..."
AsNoTracking() ile çekilen bir nesnenin property'sini değiştirip _context.SaveChangesAsync...
Bellek & Performans
.NET Core (C#) İleri

.NET runtime'ın hafızayı 3 jenerasyon ve 85KB üzeri dev nesneler olarak temizleme motorudur.

"GC otomatik bellek yönetimi yapar ancak veritabanı bağlantısı, dosya akışı gibi unmanaged..."
using bloğu kullanmayıp SqlConnection veya HttpClient nesnelerini kontrolsüzce havada bıra...
Ağ & Performans
.NET Core (C#) İleri

Her istekte "new HttpClient()" yazarak sunucunun tüm TCP soketlerini tüketip çökertme hatasıdır.

"HttpClient doğrudan new ile üretilirse soket tükenmesine (socket exhaustion), Singleton ya..."
Her istek içinde "using var client = new HttpClient();" yazmak!
Dil & Temel
.NET Core (C#) Temel

Değer kopyalamak mı, adres işaret etmek mi? Değişmez (Immutable) DTO mimarisinin temeli.

"Class referans tipidir, heap'te yaşar. Struct değer tipidir, stack'te yaşar ve boxing/unbo..."
Büyük boyutlu verileri Struct yaparak metotlar arasında sürekli derin kopyalama maliyeti y...
Mimari & Tasarım
.NET Core (C#) İleri

Okuma (Query) ve Yazma (Command) operasyonlarını iki ayrı dünyaya ayırma mimarisidir.

"CQRS, veri okuma ve yazma modellerini ayırarak her birini bağımsız optimize etmeyi sağlar..."
Basit bir CRUD projesinde aşırı mühendislik (over-engineering) yaparak onlarca boş handler...
Bellek & Performans
.NET Core (C#) İleri

String substring veya dizi bölmelerinde yeni kopya üretmeden belleğe doğrudan pencere açmaktır.

"Span<T>, bellek üzerinde sıfır tahsis (zero-allocation) ile dizi veya metin manipülasyonu..."
Span<T>'yi async metotlarda veya Task içinde kullanmaya çalışmak (ref struct olduğu için h...