Görevleri hangi formatta alıyorsun? Ne kadar bağımsızsın?
Frontend
Hangi temel HTML etiketlerini biliyorsun?
Kendiniz ve en ilginç deneyiminiz hakkında biraz bahsedin.
Kendiniz ve iş deneyiminiz hakkında bana bilgi verin.
Debounce(fn, delay) fonksiyonunu uygula, bu fonksiyon belirtilen sessizlik süresi dolana kadar fonksiyon çağrısını erteler.
Gözlemci (Observer / Event Emitter) desen patternine göre bir sınıf uygulayın: abonelerin saklanması, olaya abone olma, abonelikten çıkma, abonelere bildirim gönderme.
Testlerden bahsettin — [şirket] ve son iş yerinde testler yazdın mı?
EventEmitter sınıfını uygulayın: event ve handler parametreleriyle abone olmak için subscribe(event, handler) metodunu ve tüm abone olanları çağırmak için emit(event, data) metodunu. Ayrıca unsubscribe metodunu da uygulayın.
Bir projede yeni yığın ve Legacy kodun birlikte var olma sorununu nasıl çözdünüz? Mikro-frontendler veya web bileşenlerini düşündünüz mü?
Vue 2'den Vue 3'e geçişte deneyimin var mı — tam olarak kendin ne yaptın?
Debounce fonksiyonunu uygulayın.
Sanal kaydırma uygulamak: uzun bir mesaj listesi var (10.000 öğe), yalnızca görünür öğeleri, yüksekliği 300px olan sabit bir konteyner içinde, satır yüksekliği 30px olacak şekilde render etmek gerekiyor.
function createEmitter() { const events = new Map(); function on(event, handler) { if(!events.has(event)) { events.set(event, [handler]) return } events.get(event).push(handler) } function off(event, handler) { // TODO: handler'ı kaldır } function emit(event, payload) { // TODO: tüm abone olanları çağır } return { on, off, emit }; } const bus = createEmitter(); const unsub1 = bus.on("order:created", (payload) => { console.log("handler1:", payload.id); }); const handler2 = (payload) => { console.log("handler2:", payload.id); } bus.on("order:created", handler2);
Görevleri hangi formatta alıyorsun? Yüksek derecede bağımsız mısın?
Pratik görev: iki nesne dizisiyle çalışma — anahtar karşılaştırması için Map yapıları kullanma ve iki döngüyle dolaşma
Test yazma deneyimin var mı? Hangi testleri yazdın ve ne kadar?
function memoize(fn, options = {}) { const { maxSize = 1000, keyOf = (...a) => JSON.stringify(a), lruTouch = true, } = options; let hits = 0; let misses = 0; const cache = new Map(); const getKey = (...args) => keyOf(...args); const wrapped = (...args) => { // kodu buraya yazın return fn(...args); }; // ve buraya return wrapped; }
Neden hazır bir UI öğeleri kullanmak yerine özel bir UI kiti gerektiği sonucuna vardınız?
Sanal Liste (Virtual List) uygulayın: Uzun bir mesaj listesi var ve yalnızca yüksekliği 300 piksel olan sabit bir konteyner içindeki görünür öğeleri render etmeniz gerekiyor. Bir satırın yüksekliği 30 piksel.
İlgili iş deneyiminizden bahsedin.