Frontend
Hai mai lavorato con qualche Legacy, hai lavorato su progetti Legacy, o hai rifattorizzato qualcosa, o hai cambiato l'architettura?
Nel suo precedente lavoro, ha detto che la parte di frontend era relativamente piccola, ma che vi erano coinvolti 6 sviluppatori frontend. Da dove proviene esattamente il team di 6 persone e come si relaziona con il team frontend complessivo dell'azienda?
Cosa succederà con lo stack delle chiamate e la coda dei task in quel momento di ricorsione infinita?
Sai cos'è gRPC (Google Remote Procedure Call)?
Quale selettore CSS ha la maggiore specificità: tag, classe, ID?
Oltre a non gonfiare il costruttore, quali sono gli altri motivi per usare inject invece del parametro del costruttore?
Hai mai dovuto scrivere dei test?
Cos'è l'accessibilità nel web? Quali attributi ed elementi HTML vengono utilizzati per garantire l'accessibilità?
Scrivi una funzione che calcoli il n-esimo termine di una sequenza numerica, dove il n-esimo termine è la somma dei due precedenti, il primo termine è 3, il secondo è 2 (sequenza: 3, 2, 5, 7, 12, ...).
Hai usato FSD (Feature-Sliced Design) in un progetto? Come hai scritto campioni e sottoscrizioni agli eventi in Effector usando FSD?
Hai esperienza con Node.js (frameworks)?
Nel tuo curriculum si dice che hai sviluppato con Next.js — è corretto? Era Next.js con App Router o Pages Router?
Dove passa il confine tra feature e entity? Quando inserisci la logica di business?
Perché avete deciso di usare Proxy invece di Object.defineProperty?
Cosa fai di solito se senti che lo sviluppo è in corso e sei un po' in ritardo rispetto alle scadenze? C'è una data di rilascio, ma capisci che non riuscirai a completare il compito in tempo.
Come è organizzato il vostro processo di rilascio?
Cos'è l'operatore di coalescenza nullish (??) e come si differenzia dall'operatore || normale?
A cosa serve la parola chiave satisfies in TypeScript?
Nel prototipo della rete pubblicitaria, la vendita di spazi pubblicitari è organizzata nel seguente modo: gli acquirenti indicano in anticipo il loro prezzo, e per ogni spazio pubblicitario rispondono se sono disposti ad acquistarlo o meno. È necessario implementare una funzione che, prima di vendere uno spazio pubblicitario, attenda l'approvazione o il rifiuto degli acquirenti con l'offerta più alta, e poi venda lo spazio all'acquirente con l'offerta più alta tra quelli che hanno accettato. La risposta della funzione deve essere il più veloce possibile. Deve restituire l'indice dell'acquirente. Esempi: Gli acquirenti offrono prezzi 1, 5, 10 L'acquirente con offerta 10 ha risposto con rifiuto L'acquirente con offerta 1 ha risposto con accettazione // Aspettiamo ancora, perché potrebbe rispondere l'acquirente con offerta 5 L'acquirente con offerta 5 ha risposto con accettazione // Scegliamo l'acquirente con offerta 5 ------------ Gli acquirenti offrono prezzi 1, 5, 10 L'acquirente con offerta 10 ha risposto con rifiuto L'acquirente con offerta 5 ha risposto con accettazione // Non aspettiamo la risposta dell'acquirente con offerta 1 - non verrà scelto ------------ Gli acquirenti offrono prezzi 1, 2 L'acquirente con offerta 1 ha risposto con rifiuto L'acquirente con offerta 2 ha risposto con rifiuto // Nessun acquirente viene scelto type Buyer = { price: number, accepts: () => Promise<boolean>, } async function bestBuyer(buyers) { const sorted = buyers.map((buyer, index) => ({buyer, index})) .sort((a, b) => a.buyer.price - b.buyer.price); const promise = sorted.map(({buyer}) => buyer.accepts()); for (let i = 0; i < sorted.length; i++) { const accepted = await promise[i]; if (accepted) { return sorted[i].index; } } if (await buyers[0].accepts()) { return 0; } return -1; }
Come funziona this nelle funzioni normali e nelle funzioni freccia? Qual è la differenza?