Ai experiență cu Docker?
Frontend
Vorbește despre componenta select personalizată.
Exercițiu RxJS: există un Observable la care se abonează de trei ori în șablon. Cum se face o singură abonare în loc de trei, fără a folosi direct pipe-ul async? În ce diferență sunt Subject și BehaviorSubject față de un Observable obișnuit (flux cald vs rece)?
Cum se rezolvă problema cu trackBy dacă în array există valori duplicate și nu există un identificator unic?
Exercițiu CSS: trei blocuri div plasate unul sub altul, fiecare cu margin-top de 10px și margin-bottom de 30px. Care va fi distanța dintre blocuri? Ce se va schimba dacă înlocuim div cu span?
Problema JavaScript: scrieți o funcție care primește două array-uri și returnează un array cu elementele care sunt prezente doar într-unul dintre ele (diferența simetrică). Evaluați complexitatea algoritmului.
Aveți experiență în scrierea propriilor biblioteci UI sau biblioteci de componente?
Componenta părinte utilizează strategia OnPush, componenta fiu — Default. Ce se întâmplă cu componenta fiu în cazul modificărilor? În ce direcție se face verificarea detectării schimbărilor — de sus în jos sau de jos în sus?
Cum va reacționa randarea la modificarea unui element din listă? La ce folosește trackBy?
Povestește despre componentele personalizate pe care le-ai scris pe baza bibliotecii NgZorro (NzZor). De exemplu, un selector de date cu restricții comerciale în zilele de weekend.
Exercițiu TypeScript: există o clasă Animal cu metodele move și bark, și o funcție process care acceptă un animal de tip Animal și îi apelează metoda bark. Va exista o eroare TypeScript? Cum restricționezi corect tipul? Cum scrii un type guard?
Exercițiu JavaScript: determină tipul (typeof) pentru diferite expresii — new Array(), obiect, Map, număr, Infinity, rezultatul concatenării de șiruri și numere.
De ce nu treceți la o versiune mai nouă de Angular în proiectul dvs.?
Care este diferența dintre strategiile de detectare a schimbărilor OnPush și Default? De ce să folosești OnPush?
Exercițiu RxJS: determină rezultatul utilizând combineLatest cu două fluxuri cu întârzieri diferite. Ce va afișa forkJoin?
Povestește-mi despre experiența ta din ultimii 3-4 ani. Ce sarcini ai rezolvat?
A fost implementată suportul pentru tastatură în selectorul de date personalizat?
Ai menționat mai multe aplicații frontend independente — sunt micro frontends? Ai lucrat cu Module Federation?
Exercițiu RxJS: optimizarea lanțului de operatori (pipe cu filter, toLowerCase, switchMap). Explicați de ce se folosește switchMap, în ce diferă de concatMap și exhaustMap. Care operator este mai bun pentru procesarea cererilor de plată?
De ce părăsiți locul de muncă actual și ce căutați într-un nou loc?