Milyen formátumban kapod a feladatokat? Mennyire vagy önálló?
Frontend
Milyen fő HTML-címkéket ismersz?
Mesélj egy kicsit magadról és a legérdekesebb tapasztalatodról.
Valósítsa meg a debounce(fn, delay) függvényt, amely késlelteti a függvény hívását a megadott csendes idő elteltéig.
Mesélj magadról és a munkatapasztalatodról.
Valósítson meg egy osztályt az Observer mintának (Observer / Event Emitter): feliratkozók tárolása, eseményre való feliratkozás, feliratkozás lemondása, feliratkozók értesítése.
Említetted a teszteket — írtál teszteket a [cég]nél és az utolsó munkahelyeden?
Valósítsa meg az EventEmitter osztályt: a subscribe(event, handler) módszert az eseményre való feliratkozáshoz és az emit(event, data) módszert az összes feliratkozó meghívásához. Valósítsa meg az unsubscribe módszert is.
Hogyan old meg a problémát, hogy egy új stack és a Legacy-kód egy projektben együtt létezik? Gondolkodott mikro-frontendeken vagy web-komponenseken?
Implementálja a debounce funkciót.
Van tapasztalatod a Vue 2-ről Vue 3-ra történő migrációban — pontosan mit csináltál te magad?
Virtuális görgetés megvalósítása: van egy hosszú üzenetlista (10 000 elem), csak a látható elemeket kell renderelni egy 300px magas konténerben, ahol az egyes sorok magassága 30px.
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: törölje a kezelőt } function emit(event, payload) { // TODO: hívja meg az összes feliratkozót az eseményre } 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);
Milyen formátumban kapod a feladatokat? Magas fokú önállósággal rendelkezel?
Van tapasztalatod tesztek írásában? Milyen teszteket írtál és milyen mennyiségben?
Gyakorlati feladat: két objektum tömbdel való munka — kulcs szerinti összehasonlítás Map-struktúrák használatával és két cikluson keresztüli bejárás
Virtuális lista (Virtual List) megvalósítása: van egy hosszú üzenetlista, és csak a látható elemeket kell renderelni egy 300 pixel magas fix tartályban. Egy sor magassága 30 pixel.
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) => { // írd meg a kódot ide return fn(...args); }; // és ide return wrapped; }
Miért jutottak arra a következtetésre, hogy szükség van egy egyedi UI-készletre, és nem csak egy kész UI elemeit használták?
Mesélj a releváns munkatapasztalatodról.