Frontend
Pracoval jste někdy s nějakým Legacy, pracoval s Legacy projekty, nebo refaktoroval něco, nebo změnil architekturu?
Na předchozím místě práce jste řekl, že část frontendu je poměrně malá, ale přitom se jí věnovalo 6 frontendových vývojářů. Odkud pochází právě tým složený ze 6 lidí a jak souvisí s celkovým týmem frontendů ve společnosti?
Co se stane se zásobníkem volání a frontou úloh v okamžiku této nekonečné rekurze?
Víš, co je gRPC (Google Remote Procedure Call)?
Který CSS selektor má nejvyšší specifikaci: tag, třída, ID?
Kromě toho, že se konstruktor nenafukuje, jaké jsou další důvody pro použití inject místo parametru konstruktoru?
Museli jste někdy psát testy?
Co je to přístupnost na webu? Jaké atributy a HTML prvky se používají k zajištění přístupnosti?
Napište funkci, která vypočítá n-tý člen číselné posloupnosti, kde n-tý člen je součtem předchozích dvou, první člen je 3, druhý je 2 (posloupnost: 3, 2, 5, 7, 12, ...).
Použili jste FSD (Feature-Sliced Design) v projektu? Jak jste psali vzorky a předplatné událostí v Effector při používání FSD?
Máte zkušenosti s Node.js (frameworky)?
V životopise je napsáno, že jsi vyvíjel na Next.js — je to správně? Byl to Next.js s App Router nebo Pages Router?
Kde prochází hranice mezi feature a entity? Kdy vkládáte obchodní logiku?
Proč jste se rozhodli použít Proxy místo Object.defineProperty?
Co obvykle děláš, když cítíš, že vývoj probíhá a trochu zaostáváš za termíny? Je stanovený datum vydání, ale chápeš, že úkol nestihneš dokončit včas.
Jak je organizován váš proces vydání?
Co je to operátor nullish coalescing (??) a čím se liší od běžného operátoru ||?
K čemu slouží klíčové slovo satisfies v TypeScriptu?
V prototypu reklamní sítě je prodej reklamních míst organizován následovně: kupující předem uvádějí svou cenu, a na každé reklamní místo odpovídají, zda jsou ochotni ho koupit nebo ne. Je třeba implementovat funkci, která před prodejem reklamního místa bude čekat na souhlas nebo odmítnutí od kupujících s nejvyšší nabídkou, a poté prodá reklamní místo kupujícímu s nejvyšší nabídkou z těch, kteří souhlasili. Odpověď z funkce musí být co nejrychlejší. Je třeba vrátit index kupujícího. Příklady: Kupující nabízejí ceny 1, 5, 10 Kupující s nabídkou 10 odpověděl odmítnutím Kupující s nabídkou 1 odpověděl souhlasem // Ještě čekáme, protože může odpovědět kupující s cenou 5 Kupující s nabídkou 5 odpověděl souhlasem // Vybereme kupujícího s nabídkou 5 ------------ Kupující nabízejí ceny 1, 5, 10 Kupující s nabídkou 10 odpověděl odmítnutím Kupující s nabídkou 5 odpověděl souhlasem // Nečekáme na odpověď od kupujícího s nabídkou 1 - jeho určitě nevybereme ------------ Kupující nabízejí ceny 1, 2 Kupující s nabídkou 1 odpověděl odmítnutím Kupující s nabídkou 2 odpověděl odmítnutím // Nevybereme žádného kupujícího type Buyer = { price: number, accepts: () => Promise<boolean>, } async function bestBuyer(buyers) { const sorted = buyers.map((buyer, index) => ({buyer, index})) .sort((a, b) => a.buyer.price - b.buyer.price); const promise = sorted.map(({buyer}) => buyer.accepts()); for (let i = 0; i < sorted.length; i++) { const accepted = await promise[i]; if (accepted) { return sorted[i].index; } } if (await buyers[0].accepts()) { return 0; } return -1; }
Jak funguje this v běžných funkcích a šipkových funkcích? Čím se liší?