Frontend
/* Scrie tipul MyRequired — face ca toate câmpurile opționale să fie obligatorii */ type User = { id?: number name?: string } type MyRequired<T> = { } const user1: MyRequired<User> = { id: 1, name: "John" } const user2: MyRequired<User> = { id: 1 }
Ce este mai bine să folosiți pentru un comutator cu două stări (pornit/oprit): toggle sau checkbox?
Ați folosit actualizări optimiste? Ați oferit utilizatorului o indicație în timpul actualizării în fundal a datelor?
Care a fost motivul plecării dvs. din companie?
Ce este modelul OSI? Ce sunt L2, L3, L7?
De ce ai părăsit prima companie?
Dacă Promise nu s-a rezolvat, ci a fost respins, unde putem captura eroarea? Ce alte metode, în afară de then și catch, mai există? Când se execută finally?
Poți să ne spui puțin despre funcționalitatea portalului administrativ pentru agenții de servicii pasageri din aeroporturi?
Când este apelat useLayoutEffect și cum diferă de useEffect?
Ce ați ales ca arhitectură, gestionare a stării și bibliotecă de componente în acel proiect și de ce?
Care sunt principalele diferențe dintre Vue 2 și Vue 3?
Care este diferența dintre autorizare și autentificare?
Vorbește despre Promise: ce este, stările și metodele statice (mai ales diferența dintre Promise.all și Promise.race)?
/** * Funcția 'asyncAuth(callback)' acceptă un callback, în care * poate fi transmisă o eroare (primul argument) și date * din backend (al doilea argument). * asyncAuth((error, data) => {}); * * Trebuie să implementați funcția 'auth()', * care apelează 'asyncAuth()', dar returnează o Promisiune. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * Funcția 'tryAuth()' folosește 'auth()' și, în caz de eroare, * face N încercări suplimentare. * Dacă toate eșuează, returnează ultima eroare. * * @returns {Promise} */ function tryAuth(n) { return new Promise((resolve, reject) => { function attempt(attemptsLeft) { auth().then(resolve).catch((error) => { if (attemptsLeft <= 0) { reject(error); } else { attempt(attemptsLeft - 1); } }); } attempt(n); }); }
Cu ce ai dori să lucrezi în noul tău loc de muncă, ce te interesează în viitor?
Vorbește despre experiența ta din CV: sarcini, tehnologii, succese și realizări în peste trei ani și jumătate de muncă la Sovcombank.
Vorbește despre procesele din ultima echipă: sprinturi, kanban, planificare — cum a fost în practică?
Spuneți mai multe despre dashboard-uri: de unde proveneau metricile, ce metrici ați colectat.
Ai menționat un UI-kit. Care componentă a fost cea mai dificilă sau interesantă de implementat și care a reprezentat cea mai mare provocare?
Cum evaluați sortarea din aplicație — funcționează corect?