Frontend
Nell'applicazione (dashboard delle vendite in React+Redux), gli utenti segnalano che non funziona come previsto. Trova i problemi e correggili. L'applicazione include: un elenco di prodotti ordinati per vendite, una visualizzazione delle vendite sotto forma di grafico a barre (ECharts), un modulo per aggiungere nuovi prodotti. La principale lamentela: si dice che il prodotto venga aggiunto tramite il modulo, ma non appare nell'elenco.
Hai mai avuto esperienza di lavorare senza un analista, quando dovevi capire il compito da solo?
Come fai a conoscere il numero della domanda per aprire lo schermo della domanda?
Cosa succede quando l'HTML entra nel browser? Quali sono le entità bloccanti e come gestirle?
// Sono forniti tre tipi. È necessario creare un tipo Delivery basato su di essi, che conterrà tutti i campi dei tipi forniti.
async function f(result = 1) { let promiseB = new Promise(resolve => { setTimeout(() => resolve("1e"), 200) }); let promiseA = new Promise(resolve => { setTimeout(() => resolve("ab"), 1000) }); result += await promiseA; result += await promiseB; alert(result); // ? } f(null);
Conosci l'operatore di asserzione non-null (!) in TypeScript? Perché è considerato un anti-pattern?
Parla di CORS.
Hai una comprensione di come funziona Zustand sotto il cofano?
La richiesta OPTIONS viene inviata in ogni caso di richiesta cross-domain o solo quando necessario? Qual è la differenza tra richieste semplici e complesse in questo contesto?
Come convertire arguments in un array nel vecchio modo (ES5), senza Array.from e spread-operator?
Hai usato qualche accordo per scrivere i commit?
Hai esperienza con Next.js? Raccontami della tua esperienza.
Si è verificato un errore in produzione, è necessario correggerlo urgentemente, ma il branch dev è già molto avanzato con nuove funzionalità. Come procederesti?
Hai mai dovuto interagire con un project manager in tempi stretti? Quando qualcosa deve essere fatto molto rapidamente, ma tecnicamente non è possibile farlo velocemente.
È necessaria una funzione toggleLoading separata o si può fare a meno di essa?
Immagina una coda di macro task con cinque `setTimeout`, mentre microtask aggiungono infinite nuove microtask, ad esempio tramite `Promise.resolve().then()` ricorsivi. Cosa succederà all'interfaccia e questi cinque timeout verranno mai eseguiti? Perché?
#Modulo di registrazione React 1. Spiega come funziona StateProvider, condividi i tuoi pensieri con l'intervistatore. 2. Dai un'occhiata a /src/api/mock, spiega come funziona. 3. Controlla il colore del SubmitButton e correggilo. 4. Implementa la validazione del modulo client nel componente Signup. (\*) Ricorda il compito numero 9. Regole: - I campi Username, Email, Password e Repeat Password devono avere almeno 6 caratteri; - La Password deve corrispondere a Repeat Password; - La validazione deve essere eseguita al clic sul pulsante "SignUp"; - I campi con valori non validi devono essere contrassegnati (props error e helperText); 6. La risposta API può contenere un errore che deve essere visualizzato all'utente vicino al campo corrispondente. 7. Assicurati che il componente UserName renda il nuovo nome utente dopo una sottomissione riuscita. 8. Implementa il nuovo componente SignupSuccess. Deve essere mostrato invece del modulo di registrazione. 9. Implementa la validazione del server per i campi appropriati. --- Codice da mock.ts: ```typescript const fakeResponse = (userName) => ({ code: 200, user: { id: 42, userName, }, }); let a = 0; const api = { '/signup': function (userName: string, email: string, password: string) { a++; return new Promise((resolve, reject) => { setTimeout(() => { if (a % 2 === 0) { return resolve(fakeResponse(userName)); } else { return reject( new Error( `Il nome utente "${userName}" è già preso. Per favore, prova un altro.` ) ); } }, 500); }); }, }; export default api; ```
Quali miglioramenti potrebbero essere apportati in futuro per aumentare la qualità del prodotto?
Hai menzionato Docker, CI/CD, GitHub Actions, GitLab — puoi spiegare cosa facevi esattamente, quali pipeline, cosa c'era nei container?