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...
|