Beklenmesi Gereken Angular Mülakat Soruları

Yazan: Aaron Cao · Güncellendi

Beklenmesi Gereken Angular Mülakat Soruları
Ö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.

Ö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, distinctUntilChanged ve switchMap ile 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.

SSS

NgModules'ü hâlâ bilmem gerekiyor mu?

Okuma düzeyinde, evet. Üretimdeki pek çok Angular kodu hâlâ NgModules üzerinde çalışıyor, bu yüzden bir modülün ne bildirdiği ve providedIn'in çoğu provider dizisinin yerini nasıl aldığı konusunda sorular bekleyin. Yeni kod soruları, son sürümlerde varsayılan olan standalone bileşenler üzerinden sorulur.

AngularJS, Angular ile aynı mı?

Hayır, ve mülakatçılar bazen bunu kontrol eder. AngularJS, scope'lar, digest cycle'lar ve controller'lar ile 1.x hattıdır. 2. sürümden itibaren Angular, TypeScript ve bileşenler üzerine kurulu ayrı bir framework'tür. Bir iş ilanı AngularJS diyorsa, hazırlanmadan önce hangisini kastettiklerini doğrulayın.

Takım sinyaller kullanıyorsa ne kadar RxJS bilmem gerekir?

Yine de çok. Sinyaller bileşen state'ini iyi karşılar, ama HTTP çağrıları, router olayları ve form değer akışları observable'dır, bu yüzden operatör seçimi ve temizlik gündemde kalır. Takımlar ikisini de karıştırır ve her birinin nereye uyduğunu açıklamak yaygın bir kıdemli sorusudur.

Mülakatçılar test hakkında soru sorar mı?

Genellikle API ezberi yerine strateji olarak. Bileşen seviyesinde neyi uçtan uca karşı test edeceğinizi, TestBed'in bir bileşeni nasıl kurduğunu ve bir servisi nasıl sahteleyeceğinizi beklerler. Bir matcher'ı ezbere söylemekten çok, ödünleşimi adlandırmak önemlidir.

Kaç Angular sürümünü tartışabilmeliyim?

Çalıştığınız sürüm, artı o günden beri değişenler. Mülakatçılar standalone bileşenleri, kontrol akışı bloklarını ve sinyalleri sorar çünkü bu cevaplar güncelliği gösterir. Son gönderdiğiniz sürümü söylemek ve gerisi hakkında akıl yürütmek eksiksiz bir cevaptır.

İlgili sorular

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