.NET mülakatında hangi soruları beklemeliyim?

Yazan: Aaron Cao · Güncellendi

.NET mülakatında hangi soruları beklemeliyim?
Ç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.

Ç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 .Result konusunda uyarı yapılırken hangi kilitlenmenin kastedildiğini açıklayın.
  • LINQ. Tuzak ertelenmiş yürütmedir: bir IEnumerable sorgusu 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.

SSS

.NET çöp toplayıcısının neden nesilleri vardır?

Çoğu nesne gençken yok olur; bu nedenle en yeni nesli sık ve düşük maliyetle toplamak, tüm yığını taramadan belleğin çoğunu geri kazandırır. Hayatta kalan nesneler üst nesillere taşınır ve daha seyrek toplanır; bu da tipik ayırma kalıplarında duraklamaları kısa tutar.

ASP.NET Core'da singleton, scoped ve transient arasındaki fark nedir?

Singleton uygulama için bir kez, scoped her istek için bir kez, transient ise her çözümlendiğinde oluşturulur. Scoped bir hizmeti singleton içine enjekte etmek, onu uygulamanın ömrü boyunca tutar; bu, veritabanı bağlamlarında yaygın bir hatadır.

await gerçekte ne yapar?

Metodun geri kalanını devam görevi olarak kaydeder ve kontrolü çağırana döndürür; böylece beklenen iş tamamlanırken iş parçacığı serbest kalır. Bunun yerine bir görevi .Result veya .Wait ile engellemek, aynı iş parçacığına yeniden ihtiyaç duyan bağlamlarda kilitlenmeye yol açabilir.

EF Core'daki N+1 sorunu nedir?

Üst öğelerden oluşan bir listeyi yükledikten sonra her üst öğenin alt öğeleri için ayrı bir sorgu çalıştırmaktır. Include ile eager loading kullanmak veya yalnızca ihtiyacınız olan alanları yansıtmak, bunu bir ya da iki sorguya dönüştürür.

SubcueAI, gözetimli bir .NET kodlama testinde yardımcı olabilir mi?

Hayır. Gözetimli ve kaydedilen değerlendirmeler kapsam dışıdır; gözlem altında canlı kodlama sizin kendi çalışmanızdır. Sohbet şeklindeki turlar için tasarlanmıştır ve öncesinde pratik yapacağınız yer deneme mülakatı modudur.

İlgili sorular

← Daha fazlası: Rol ve konuya göre mülakat soruları