Frontend
Uveďte príklad zlé funkčnej komponenty, ktorá spôsobuje zbytočné prerenderovania, a vysvetlite, ako to opraviť.
Čo by si vzal na vytvorenie UI sady od nuly?
Kako boste ravnali v razmerah pomanjkanja informacij in negotovosti, ko morate sami določiti tehnične in vizualne rešitve?
Čo je useContext a prečo by sa nemal používať namiesto Redux/Zustand?
Prečo je lepšie nastavovať cookies na serveri cez HTTP hlavičky, než cez document.cookie na klientovi?
Máte skúsenosti so zberom metrík v Prometheus, vrátane obchodných metrík?
Kedy je potrebné sa odhlásiť z RxJS tokov a aké spôsoby odhlásenia v Angular poznáte?
Na čo je potrebný správca stavu? Čím sa líši od React Context?
Aký je rozdiel medzi call, apply a bind?
Čo server vracia prehliadaču po požiadavke, vrátane samotnej stránky?
Čo sú null a undefined, v čom je rozdiel? Čo vráti typeof null?
Dnes budeme navrhovať messenger. Oboznámte sa s rozložením rozhrania a funkčnými požiadavkami. Je potrebné zhromaždiť nefunkčné požiadavky, diskutovať o technickom stacku, komponentoch a službách frontendu, dátových modeloch, API-och a všeobecnej systémovej architektúre.
Na čo slúži kľúčové slovo satisfies v TypeScript?
V prototypu reklamnej siete predaj umiestnení reklám funguje nasledovne: kupujúci vopred uvádzajú svoju cenu a na každé reklamné miesto odpovedajú, či sú ochotní ho kúpiť alebo nie. Je potrebné implementovať funkciu, ktorá pred predajom reklamného miesta bude čakať na súhlas alebo odmietnutie kupujúcich s najvyššou ponukou, a potom predá reklamné miesto kupujúcemu s najvyššou ponukou medzi tými, ktorí súhlasili. Odpoveď z funkcie je potrebné vrátiť čo najrýchlejšie. Je potrebné vrátiť index kupujúceho. Príklady: Kupujúci ponúkajú ceny 1, 5, 10 Kupujúci s ponukou 10 odmietol Kupujúci s ponukou 1 súhlasil // Ešte čakáme, pretože môže odpovedať kupujúci s cenou 5 Kupujúci s ponukou 5 súhlasil // Vyberáme kupujúceho s ponukou 5 ------------ Kupujúci ponúkajú ceny 1, 5, 10 Kupujúci s ponukou 10 odmietol Kupujúci s ponukou 5 súhlasil // Nečakáme na odpoveď od kupujúceho s ponukou 1 - určite nebude vybraný ------------ Kupujúci ponúkajú ceny 1, 2 Kupujúci s ponukou 1 odmietol Kupujúci s ponukou 2 odmietol // Nevyberáme nikoho interface 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; }
Ako funguje this v bežných funkciách a šípových funkciách? Čo je rozdiel?
Na akých princípoch funguje NGRX? Z čoho pozostáva a ako celý tento mechanizmus funguje?
Kedy sa volajú useEffect a useLayoutEffect?
Môžete opísať štruktúru HTTP požiadavky: z akých častí sa skladá?
Čo robiť na optimalizáciu výkonu React aplikácie (Web Vitals)?
Čo je generický typ v TypeScript a môžete uviesť praktický príklad?