Frontend
Úkol 1 Máme pole s 10 000 objekty (například "Zaměstnanci" nebo "Produkty"). Musíme implementovat komponentu pro výběr prvku, který nezpomalí prohlížeč a bude uživatelsky přívětivý. Co je třeba implementovat (Požadavky): 1. Typování dat: Vytvořte rozhraní Item s poli id: string, label: string a category: string. 2. Vyhledávání (Input): Při zadávání textu by měla být seznam filtrován. 3. Práce s DOM a událostmi (Klávesová navigace): * Uživatel by měl mít možnost pohybovat se v seznamu šipkami Nahoru a Dolů. 4. Po stisknutí Enter je vybraný prvek "potvrzen". 5. Důležitá poznámka: Vybraný prvek šipkami by měl být vždy viditelný (programově posuňte kontejner, pokud kurzor přesáhne hranice). 6. Optimalizace (Výkon): * Vzhledem k velkému množství dat (10k) diskutujte nebo implementujte jednoduché "líné vykreslování" (vykreslete pouze prvních 20-30 prvků nebo použijte IntersectionObserver). Výstup komponenty
Povězte mi něco o sobě, o své pracovní zkušenosti.
Máme velký projekt v monorepo s jednotným procesem vydávání. Rozhodli jsme se oddělit frontend a administrátorský panel do samostatných repozitářů, ale backend zůstal monolitický. Vzniká problém nesynchronizace verzí mezi backendem a klientem. Jak bys viděl řešení tohoto problému, abys byl co nejvíce chráněn před poruchami v produkci?
Jak správně ukládat runtime konfiguraci v Nuxt 3? Čím se liší veřejná konfigurace od soukromé?
Co znamená klíčové slovo satisfies v TypeScriptu a k čemu je potřeba?
Co je to Awaited utility type v TypeScript?
Co je to strict mode v JavaScriptu? Znáš rozdíl mezi script a module?
Jak probíhá režim adaptace nového vývojáře? Jaké úkoly je třeba vyřešit, aby úspěšně prošel zkušební dobou?
Bonusová úloha: zde je kód s funkcí MySync, která přijímá parametr start (výchozí 0), vypíše ho do konzole, používá Promise a rekurzivně volá sama sebe uvnitř resolve, navíc je zde samostatný setTimeout. Vysvětlete, co se zde stane a co se vypíše do konzole.
Jak získat délku běžného objektu přes vlastnost length? Jak přidat metodu length všem objektům přes prototyp?
Čím se liší atributy async a defer u tagu script?
Ověření unikátnosti by mělo být prováděno bez ohledu na velikost písmen. V props komponenty je dostupná celá tabulka dat a je znám id řádku, který uživatel upravuje. Jak upravit validátor s tímto zohledněním?
Jaký je rozdíl mezi ukládáním dat do pole a do objektu z hlediska paměti? Který způsob ukládání tabulky (dvourozměrné pole nebo dvourozměrný objekt) bude pro paměť jednodušší?
Ty jsi sám nakonfiguroval Docker, že? Rozumíš tomu?
Zmínil jste UI-kit. Která komponenta byla při realizaci nejkomplexnější nebo nejzajímavější a která představovala největší výzvu?
Jak lze nastavit kontext funkce? Čím se liší call, apply a bind?
Povězte o své zkušenosti s CI/CD, Docker — co se vám podařilo nakonfigurovat a jak to fungovalo?
Povězte nám o svých zkušenostech s knihovnami pro správu stavu (Redux, RTK, Zustand).
Pověz mi o nějaké opravdu skvělé funkci, kterou jsi udělal a na kterou jsi hrdý. Možná to bylo něco nového pro tebe, co jsi pochopil, nebo prostě dost složitá funkce.
Případ: představte si, že dostanete produkt s úkolem vytvořit a spustit nový produkt do 2 měsíců, může být zapojeno mnoho různých křížových týmů, ale zatím není nic jasné. Popište pořadí svých kroků, svůj myšlenkový proces — kam poběžíte jako první?