.NET mülakatında hangi soruları beklemeliyim?
Yazan: Aaron Cao · Güncellendi

Çalışma zamanı soruları (CLR, çöp toplama, değer ve referans türleri), dil soruları (async ve await, LINQ, jenerikler, kayıtlar), framework soruları (ASP.NET Core ara yazılımı ve bağımlılık enjeksiyonu, EF Core) ve uzun süre çalışan bir hizmette bellek sızıntısı veya yavaş bir API uç noktası gibi senaryolar bekleyin. Mülakatçılar akıl yürütmeyi değerlendirir.
.NET mülakatı hangi çalışma zamanı ve dil sorularıyla başlar?
Mülakatçılar framework'ün başladığı yerden, yani çalışma zamanından başlar. Common Language Runtime'ın ne yaptığını (assembly'leri yüklemek, ara dili tam zamanında derlemek, belleği yönetmek) açıklamanız, ardından çöp toplama konusunda bir seviye daha derine inmeniz beklenir. Devamındaki sorular öngörülebilir: toplayıcının neden nesillere ayrıldığı, bir nesnenin sonraki bir nesle kadar yaşamasını neyin sağladığı, büyük nesne yığınının ne işe yaradığı ve bellek yönetiliyorsa IDisposable ile using'in neden var olduğu. Sonuncusunu, toplayıcının zamanında nasıl serbest bırakacağını bilmediği dosya tanıtıcıları ve bağlantılar gibi yönetilmeyen kaynaklarla açıklayın.
- Değer türleri ve referans türleri. Her birinin nerede bulunduğu, kopyalamanın her biri için ne anlama geldiği ve boxing işleminin maliyeti.
- async ve await. Beklenen bir görevin çağıran iş parçacığını engellemek yerine serbest bıraktığını,
async void'in neden olay işleyicilerine ayrıldığını ve.Resultkonusunda uyarı yapılırken hangi kilitlenmenin kastedildiğini açıklayın. - LINQ. Tuzak ertelenmiş yürütmedir: bir
IEnumerablesorgusu yazıldığı anda değil, yinelendiğinde çalışır; veritabanı sağlayıcısına yönelik bir sorgu da yalnızca sağlayıcının anladığı ifadeler için SQL'e çevrilir. - Jenerikler, arayüzler ve kayıtlar. Kısıtlamalar, test edilebilirlik için neden temel sınıflar yerine arayüzlerin tercih edildiği ve bir kaydın değer eşitliğinin size ne kazandırdığı.
Her birini mekanizması ve bir sonucuyla açıklayın. Sıfırıncı nesil toplamanın ucuz olduğunu, çünkü çoğu nesnenin gençken yok olduğunu söylemek mülakatçıların beklediği seviyedir; nedenini açıklamadan nesilleri saymak yeterli değildir.
ASP.NET Core ve EF Core soruları nasıldır?
Controller yazarken kendinize güveniyor, ancak soruların nadiren dokunduğunuz altyapı hakkında olmasından endişe ediyorsunuz. Bu endişe yerinde, çünkü framework soruları burada bulunur. İşte bu altyapı, genellikle sorulduğu sırayla ve her birinin beraberinde getirdiği takip sorusuyla birlikte.
- İstek işlem hattı. Ara yazılımlar kaydedildikleri sırayla çalışır ve her bileşen bir sonrakini çağırıp çağırmayacağını seçer. Takip sorusu: kimlik doğrulama, yetkilendirmeye göre nerede yer alır ve bunları ters sırada kaydederseniz ne olur?
- Bağımlılık enjeksiyonu yaşam süreleri. Singleton uygulama boyunca yaşar, scoped tek bir istek boyunca yaşar, transient ise her çözümlendiğinde oluşturulur. Klasik tuzak, veritabanı bağlamı gibi scoped bir hizmeti singleton içine enjekte etmektir; bunun neden hata olduğunu açıklamaya hazır olun.
- Yapılandırma ve seçenekler. Katmanlı kaynaklar, ortam geçersiz kılmaları ve türü belirlenmiş ayarlar için seçenekler kalıbı.
- EF Core. Değişiklik izleme ve salt okunur sorgularda bunun ne zaman kapatılacağı, N+1 sorunu ve eager loading ya da projection ile bunun nasıl önleneceği, migration'lar ve elle yazılmış bir sorgunun LINQ'dan daha iyi olduğu gerçekçi nokta.
- Test. Arayüzlerin ve DI container'ın bir hizmeti nasıl test edilebilir kıldığı ve bellek içi sağlayıcının gerçek bir veritabanı hakkında neyi kanıtlayıp neyi kanıtlamadığı.
En güçlü adaylar bunları birbirine bağlar: singleton bir arka plan hizmetinde çözümlenen scoped bağlam, ezberlik bir soru değildir; mülakatçıların gerçekten canlıya aldığı bellek ve doğruluk hatasıdır ve açıkça bir scope oluşturacağınızı duymak isterler.
Senaryo soruları nasıl ilerler?
Kıdemli pozisyon mülakatları bir belirti sunar ve yönteminizi izler. Temsili bir örnek: bir lojistik şirketinde kıdemli pozisyon için görüşen backend mühendisine, ASP.NET Core API'sinin belleğinin container yeniden başlatılana kadar günlerce yükseldiği söylenir. Güçlü yanıt tahminde bulunmaz. Nelerin değiştiğini sorar; statik cache'ler veya uzun ömürlü olay abonelikleri tarafından yakalanan nesneleri denetler; singleton'ların tuttuğu scoped hizmetleri arar; büyük nesne yığınının büyümesini inceler ve çözüm önermeden önce bellek snapshot'ı alır. Mülakatçı, inceleme sırasını değerlendirir.
Tekrarlanan diğer senaryolar: yalnızca yük altında yavaşlayan bir uç nokta ve yanıtın senkron veritabanı çağrılarından async kullanımına, bağlantı havuzu tükenmesine ve önbelleğe almaya ilerlemesi; paylaşılan bir koleksiyondaki yarış durumu ve eşzamanlı koleksiyonlarla kilitleme seçeneklerinin maliyeti; üç alt hizmeti çağırması gereken bir istek ve zaman aşımlarını, yeniden denemeleri ve kısmi başarısızlığı nasıl yönettiğiniz; kesinti olmadan sütun eklemesi gereken bir migration. Her durumda kısıtlamayı belirtin, bir mekanizma seçin ve ödünleşimi yüksek sesle söyleyin.
Bunlar, takip sorularıyla birlikte yüksek sesle prova ettiğinizde çok daha kolaydır; deneme mülakatı modu bunun için tasarlanmıştır. Diğer dil ve rol soru havuzları ise role ve konuya göre mülakat soruları altında toplanmıştır.
Bir AI mülakat asistanı .NET sorularında yardımcı olabilir mi?
Belirtilen sınırlar dahilinde, sohbet şeklindeki turlarda evet. SubcueAI'ın yerel macOS ve Windows masaüstü uygulaması sistem sesini ve mikrofonunuzu yakalar, kısa yanıt önerilerini yerel bir katmanda gösterir. Böylece mülakatçı singleton içindeki scoped bağlamın neden hata olduğunu sorduğunda, siz kendi sözlerinizle açıklarken mekanizma ekranınızda olur. Tarayıcı uzantısı, yalnızca toplantı sekmesinin sesini yakalayarak Chrome ve Edge'deki tarayıcı sekmesi görüşmelerini kapsar. Görüşmeye bot katılmaz ve toplantı sayfasına hiçbir şey enjekte edilmez; kurulum eğitim sayfasındadır.
Sınırlar şunlardır: gözetimli bir değerlendirme, kaydedilen bir ekran, şirket tarafından yönetilen bir dizüstü bilgisayar veya gözlem altında C# yazdığınız canlı kodlama alıştırması kapsam dışıdır; asistanın en zayıf olduğu alan da mülakatın sizden kod yazmanızı istediği yerdir. Yukarıdaki çalışma zamanı, framework ve ödünleşim sorularında en güçlüdür. Önerilerin gerçekten geliştirdiğiniz sistemleri yansıtması için önce özgeçmişinizi yükleyin; bu profil özgeçmiş oluşturucuda bulunur.