Frontend
Zadanie 1 Mamy tablicę z 10 000 obiektami (np. "Pracownicy" lub "Produkty"). Musimy zaimplementować komponent do wyboru elementu, który nie "zawiesi" przeglądarki i będzie wygodny dla użytkownika. Co należy zaimplementować (Wymagania): 1. Typowanie danych: Utwórz interfejs Item z polami id: string, label: string i category: string. 2. Wyszukiwanie (Input): Podczas wpisywania tekstu lista powinna być filtrowana. 3. Praca z DOM i zdarzeniami (Nawigacja klawiaturą): * Użytkownik powinien mieć możliwość poruszania się po liście strzałkami W górę i W dół. 4. Po naciśnięciu Enter wybrany element "potwierdza się". 5. Ważna uwaga: Element wybrany strzałkami musi być zawsze widoczny (programowo przewijaj kontener, jeśli kursor wyjdzie za granice). 6. Optymalizacja (Wydajność): * Ponieważ danych jest dużo (10k), omówić lub zaimplementować prostą "leniwe renderowanie" (renderować tylko pierwsze 20-30 elementów lub użyć IntersectionObserver). Wynik komponentu
Opowiedz trochę o sobie, o swoim doświadczeniu zawodowym.
Mamy duży projekt w monorepo z jednolitym flowem wydawniczym. Zdecydowaliśmy się wydzielić frontend i panel administracyjny do osobnych repozytoriów, ale backend pozostał monolityczny. Pojawia się problem desynchronizacji wersji między backendem a klientem. Jak widziałbyś rozwiązanie tego problemu, aby być jak najbardziej chronionym przed awariami na produkcji?
Jak poprawnie przechowywać konfigurację runtime w Nuxt 3? Czym różni się publiczna konfiguracja od prywatnej?
Co oznacza słowo kluczowe satisfies w TypeScript i do czego jest potrzebne?
Czym jest typ pomocniczy Awaited w TypeScript?
Czym jest tryb strict w JavaScript? Czy znasz różnicę między script a module?
Jak przebiega okres adaptacji nowego programisty? Jakie zadania należy rozwiązać, aby pomyślnie przejść okres próbny?
Zadanie dodatkowe: podany jest kod z funkcją MySync, która przyjmuje parametr start (domyślnie 0), wyświetla go w konsoli, używa Promise i rekurencyjnie wywołuje samą siebie wewnątrz resolve, dodatkowo ma osobny setTimeout. Należy wyjaśnić, co się tutaj wydarzy i co zostanie wyświetlone w konsoli.
Jak uzyskać długość zwykłego obiektu za pomocą właściwości length? Jak dodać metodę length do wszystkich obiektów przez prototyp?
Czym różnią się atrybuty async i defer w tagu script?
Weryfikacja unikalności powinna być wykonywana bez uwzględniania wielkości liter. W propsach komponentu dostępna jest cała tabela danych i znany jest id wiersza, który edytuje użytkownik. Jak zmienić walidator z uwzględnieniem tego?
Jaka jest różnica między przechowywaniem danych w tablicy a obiekcie z punktu widzenia pamięci? Który sposób przechowywania tabeli (tablica dwuwymiarowa czy obiekt dwuwymiarowy) będzie bardziej oszczędny pod względem pamięci?
Sam sam skonfigurowałeś Dockera, prawda? Rozumiesz to?
Wspomniałeś o UI-kit. Który komponent był najtrudniejszy lub najciekawszy do realizacji, i który stanowił największe wyzwanie?
Jak można ustawić kontekst funkcji? Czym różnią się call, apply i bind?
Opowiedz o swoim doświadczeniu z CI/CD, Docker — co udało się skonfigurować, jak to działało?
Opowiedz o swoim doświadczeniu z bibliotekami zarządzania stanem (Redux, RTK, Zustand).
Opowiedz o jakiejś naprawdę fajnej funkcji, którą zrobiłeś i z której jesteś dumny. Może to było coś nowego dla ciebie, co zrozumiałeś, albo po prostu dość skomplikowana funkcja.
Przypadek: wyobraź sobie, że otrzymujesz produkt z zadaniem stworzenia i uruchomienia nowego produktu w ciągu 2 miesięcy, mogą być zaangażowane różne zespoły międzydziałowe, ale na razie nic nie jest jasne. Opowiedz o kolejności swoich działań, toku myślenia — dokąd pobiegniesz w pierwszej kolejności?