Gdybyś projektował taką aplikację, mając na uwadze monorepo, jak podzieliłbyś ją na pakiety, uwzględniając jednolitą bazę kodu dla platform web i mobilnych (React Native)?
Frontend
Dlaczego React używa MessageChannel zamiast setTimeout do tworzenia kolejki renderowania kolejnych ciężkich renderów?
Czym jest tryb współbieżny i renderowanie współbieżne w React? Jak to działa i do czego służy?
Czy używałeś Apollo GraphQL tylko do zapytań, czy także do zarządzania stanem lokalnym (pola tylko po stronie klienta, pola reaktywne)?
Załóżmy, że mamy jednolitową stronę docelową. Wysyłamy zapytanie, otrzymujemy JSON na 50 tysięcy linii, a podczas parsowania UI zawiesza się z powodu jednordzeniowości JavaScript. Co byś zasugerował i jak zoptymalizować filtrowanie i parsowanie tego JSON, aby strona się nie zawieszała, a UI pozostało responsywne?
Wspomniałeś, że pracowałeś z monorepo — jak było zorganizowane? Czy używałeś mikrofrontendów?
Czy pracowałeś kiedyś z React Native i React Native Web?
Czy możesz wyjaśnić, z jakich zasad składa się SOLID?
Podaj przykład zasady odwrócenia zależności w rozwoju frontend.
Masz więcej doświadczenia w zadaniach technicznych, mało wspomniano o aspektach biznesowych? Byłeś raczej technicznym liderem zajmującym się architekturą, czy raczej tworzyłeś zwykłe funkcje biznesowe?
Jak działa Fiber i jak jest zorganizowane priorytetyzowanie (scheduler) w React?
Jak można uniknąć kaskadowego ponownego renderowania komponentów potomnych przy zmianie stanu w komponencie nadrzędnym?
Załóżmy, że nie można zrobić paginacji na backendzie i Web Worker jest niedostępny. Jak rozwiązałbyś ten problem?
Podaj przykład zasady segregacji interfejsów w rozwoju frontend.
Zobacz dwie opcje kodu (z rekurencyjnymi obietnicami/mikrozadaniami) i powiedz, jaka jest różnica między pierwszą a drugą opcją pod względem blokowania strony.
Jaki znany problem pojawia się przy dużej liczbie sekwencyjnych setTimeout z zerowym czasem oczekiwania?
Z jakimi menedżerami stanu musiał pracować i co Panu się podoba, jakie widzi plusy i minusy?
Z jakich części składa się pętla zdarzeń?
Załóżmy, że mamy aplikację React Native i aplikację webową. Niektóre API przeglądarki, w tym Local Storage, nie są dostępne w React Native (tam używa się Async Storage). Jak zaimplementowałbyś jednolity interfejs do przechowywania danych z różnymi implementacjami dla weba i React Native?
Jak można analizować JSON strumieniowo, dzieląc przetwarzanie na fragmenty, aby nie blokować głównego wątku? Czym można uruchomić przetwarzanie kolejnego fragmentu, aby nie spowalniać strony (np. requestIdleCallback, generatory)?