Beklenmesi Gereken Angular Mülakat Soruları
Yazan: Aaron Cao · Güncellendi

Önce change detection gelir: neyin bir kontrolü tetiklediği, OnPush'ın neyi değiştirdiği ve sinyallerin nasıl uyduğu. Ardından dependency injection, RxJS operatör seçimi ve subscription temizliği. Çoğu mülakat turu canlı bir alıştırma ekler; genellikle service, debounceTime ve switchMap ile kurulan bir typeahead arama.
Angular'da en çok hangi kavramlar sorulur?
Angular'ın API yüzeyi çok geniştir ve yayımlanan soru listeleri her decorator'ı sanki eşit olasılıkla karşınıza çıkacakmış gibi ele alır. Oysa öyle değildir. Bu bölüm, mülakat turlarının çoğunu gerçekten belirleyen alanları kapsar, böylece pratiğiniz gerçek dağılıma uyar. Dört küme baskındır:
- Change detection: neyin bir kontrolü tetiklediği, Zone.js'in asenkron API'leri nasıl yamaladığı,
OnPush'ın neyi değiştirdiği ve sinyallerin Angular'a işi nasıl atlattığı. - Dependency injection: hiyerarşik injector'lar,
providedIn, injection token'ları ve constructor parametrelerine karşıinject()fonksiyonu. - RxJS: observable'ların promise'lere karşı konumu, doğru operatörü seçmek ve bir bileşen yok edilmeden önce subscription'ları temizlemek.
- Bileşen mimarisi: standalone bileşenler, input ve output'lar, content projection ve lifecycle hook'ları.
Sürüm bilgisi burada çoğu framework turundan daha önemlidir, çünkü Angular yön değiştirdi. Standalone bileşenler, yerleşik kontrol akışı blokları @if ve @for, ertelenebilir görünümler ve sinyallerin hepsi son büyük sürümlerde geldi, bu yüzden mülakatçılar sık sık bugün ne yazacağınızı, daha eski bir kod tabanının ne kullandığına karşı sorar. İkisini de bilmek ve framework'ün neden değiştiğini bilmek, taraf tutmaktan daha iyi bir izlenim bırakır.
RxJS ve sinyal soruları ne kadar derine gider?
Operatör isimlerinden çok daha derine gider. Seviyeleri ayıran RxJS sorusu, hangi flattening operatörünün uygun olduğudur: switchMap önceki iç isteği iptal eder ve typeahead için uygundur, mergeMap her şeyi paralel çalıştırır, concatMap sırayı korur ve exhaustMap biri hâlâ devam ederken yeni olayları yok sayar, bu yüzden bir gönder düğmesine uygundur. Mülakatçılar ardından sızıntı sorusunu sorar: bileşen yok edildiğinde manuel bir subscription'a ne olur ve async pipe ya da takeUntilDestroyed bu sorunu neden ortadan kaldırır.
Sinyal soruları daha yenidir ve genellikle API yerine motivasyondan başlar. Bir sinyalin ne olduğunu, computed'ın ondan nasıl türetildiğini, bir effect'in ne işe yaradığını ve sinyallerin Angular'a bir bileşen ağacını yeniden kontrol etmek yerine neyin değiştiğini bilmenin neden daha ince taneli bir yolunu verdiğini açıklamanız beklenir. Güçlü bir cevap iki konuyu birbirine bağlar: sinyaller ve OnPush ikisi de change detection'ın yaptığı işi azaltır, ama sinyaller bunu bir kontrolün ne zaman çalıştığını daraltarak değil, okumaları izleyerek yapar.
Mülakatçılar son çıkan her özelliği kullanmış olmanızı beklemez. Son çalıştığınız sürümü söylemenizi ve gerisini net biçimde akıl yürüterek anlatmanızı beklerler.
Hangi canlı kodlama alıştırmalarını beklemelisiniz?
Çoğu Angular mülakat turu, mülakatçı izlerken küçük bir şey inşa etmeyi içerir. Tekrar eden alıştırmalar şirketler arasında tutarlıdır:
- Bir servisten API çağırmak ve sonucu async pipe ile göstermek.
debounceTime,distinctUntilChangedveswitchMapile bir typeahead arama kurmak.- Özel bir validator ve görünür hata durumları olan bir reactive form yazmak.
- Bir parent ile child bileşen arasında veri geçirmek, sonra bunu bir servise taşımak.
- Lazy-loaded bir bileşen ve bir guard içeren rota eklemek.
Örneğin orta seviye bir ürün rolü için mülakat olan bir front-end mühendisi typeahead'i kurabilir, sonra yanıtlar sırasız geldiğinde ne olacağı, bir yükleme durumunun nasıl gösterileceği ve kullanıcı girdiyi temizlediğinde ne olması gerektiği konusunda zorlanabilir. Turun kararlaştığı yer bu uzantılardır, bu yüzden mutlu yolu değil, takip sorularını pratik yapın. Angular turlarının hâlâ sık sık açtığı komşu setler, sade JavaScript ve TypeScript temelleri dahil, soru bankaları merkezinde yer alır.
Gerçek mülakata aktarılacak şekilde nasıl pratik yapılır?
Bir soru listesi okumak tanımayı geliştirir, hatırlamayı değil; oysa mülakat turu biri izlerken hatırlamayı test eder. Çözüm, turun gerçek şeklinde tekrarlar yapmaktır: boş bir projeden standart alıştırmaları kurun, yazarken change detection ve subscription kararlarını sesli anlatın ve konuyu kaybetmeden kesintileri özümseyin. Bu seti sözlü bir prova olarak, takip sorularıyla birlikte tek tek çalıştırmak, mock mülakat pratiğinin tam olarak amacıdır.
Açıkça belirtilmesi gereken bir sınır var: Angular canlı turları neredeyse her zaman paylaşımlı bir editörde ya da ekranınız görünür durumdayken yapılır ve o ekrandaki her şey mülakatçı tarafından görülebilir. Bir asistan hazırlığa ve konuşmaya dayalı turlara aittir, paylaşılan bir ekrana değil. Hangi formatların neye izin verdiği mülakat türlerinde anlatılır.