¿En qué formato recibes las tareas? ¿Qué grado de autonomía tienes?
Frontend
¿Qué etiquetas HTML principales conoces?
Cuéntame un poco sobre ti y tu experiencia más interesante.
Implementa la función debounce(fn, delay), que retrasa la llamada a la función hasta que pase el tiempo de silencio especificado.
Cuéntame sobre ti y tu experiencia laboral.
Implementar una clase según el patrón Observador (Observer / Event Emitter): almacenamiento de suscriptores, suscripción a eventos, cancelación de suscripción, notificación a suscriptores.
¿ Mencionaste las pruebas — escribiste pruebas en [empresa] y en tu último trabajo?
Implementa la clase EventEmitter: el método subscribe(event, handler) para suscribirse a un evento y el método emit(event, data) para llamar a todos los suscriptores. También implementa el método unsubscribe.
¿Cómo abordó la tarea de coexistencia de una nueva pila y código Legacy en un solo proyecto? ¿Consideró micro frontends o componentes web?
Implementar la función debounce.
¿Tienes experiencia participando en la migración de Vue 2 a Vue 3? ¿Qué fue exactamente lo que hiciste tú mismo?
Implementar desplazamiento virtual: hay una lista larga de mensajes (10,000 elementos), se necesita renderizar solo los elementos visibles dentro de un contenedor con una altura fija de 300px, con una altura de línea de 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: eliminar handler } function emit(event, payload) { // TODO: llamar a todos los suscriptores del evento } 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);
¿En qué formato recibes las tareas? ¿Tienes un alto grado de autonomía?
¿Tienes experiencia escribiendo pruebas? ¿Qué tipo de pruebas has escrito y en qué volumen?
Tarea práctica: trabajar con dos matrices de objetos — comparación por clave usando estructuras Map y recorrido con dos bucles
Implementa una lista virtual (Virtual List): hay una lista larga de mensajes, y solo se deben renderizar los elementos visibles dentro de un contenedor con una altura fija de 300 píxeles. La altura de una fila es de 30 píxeles.
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) => { // escribe el código aquí return fn(...args); }; // y aquí return wrapped; }
¿Por qué llegaron a la conclusión de que se necesita un kit de UI personalizado, y no simplemente utilizaron elementos de una UI existente?
Cuéntame sobre tu experiencia laboral relevante.