Em que formato te chegam as tarefas? Qual o grau de autonomia?
Frontend
Quais são as principais tags HTML que você conhece?
Fale um pouco sobre si e a sua experiência mais interessante.
Fale sobre si e a sua experiência de trabalho.
Implemente a função debounce(fn, delay), que adia a chamada da função até que o tempo de silêncio especificado tenha passado.
Implementar uma classe segundo o padrão Observer (Emitter de Eventos): armazenamento de assinantes, assinatura de eventos, cancelamento de assinatura, notificação de assinantes.
Mencionaste testes — escreveste testes na [empresa] e no teu último emprego?
Implemente a classe EventEmitter: o método subscribe(event, handler) para subscrever a um evento e o método emit(event, data) para chamar todos os assinantes. Também implemente o método unsubscribe.
Como resolveu o problema de coexistência de uma nova pilha e código legado num projeto? Considerou micro-frontends ou web components?
Tens experiência em participar na migração de Vue 2 para Vue 3 — o que exatamente fizeste tu mesmo?
Implementar a função debounce.
Implementar scroll virtual: há uma lista longa de mensagens (10.000 elementos), é necessário renderizar apenas os elementos visíveis dentro de um contêiner com altura fixa de 300px, com altura de linha 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: remover o handler } function emit(event, payload) { // TODO: chamar todos os assinantes do 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);
Em que formato recebes as tarefas? Tens um alto grau de autonomia?
Tarefa prática: trabalhar com dois arrays de objetos — comparação por chave usando estruturas Map e percorrendo com dois ciclos
Tens experiência em escrever testes? Que tipos de testes escreveste e em que volume?
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) => { // escreve o código aqui return fn(...args); }; // e aqui return wrapped; }
Por que chegaram à conclusão de que é necessário um kit de UI personalizado, e não apenas usar elementos de uma UI pronta?
Implemente uma lista virtual (Virtual List): há uma lista longa de mensagens, e deve-se renderizar apenas os elementos visíveis dentro de um contêiner com altura fixa de 300 pixels. A altura de uma linha é de 30 pixels.
Fale sobre a sua experiência de trabalho relevante.