Z těchto jízdenek lze sestavit jedinou nepřerušovanou trasu. V trase nejsou žádné smyčky ani opakování. Je třeba napsat program, který vrátí tyto stejné objekty jízdenek v pořadí podle trasy. ```javascript function getRoute(tickets = []) { const cities = new Map(); for (const ticket of tickets) { cities.set(ticket.from, ticket); } const result = []; let currentCity = startcity; while (cities.has(currentCity)) { const next = cities.get(currentCity); result.push(next); currentCity = next.to; } return result; } console.clear() console.log(getRoute([ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Spb' }, ])); ```
Frontend
Určil jste zátěž na systému v RPS? Jaké množství? Měli jste zkušenosti s průchodem technických etap v formátu live-kódování?
Musel jste se někdy starat o bezpečnost aplikace, kódu nebo služby?
Naše chatová aplikace by měla zobrazovat nové zprávy, které přicházejí ze serveru, co nejrychleji. Zpráva má následující formát: interface Message { id: number text: string } ID první zprávy je 1, a ID každé následující zprávy je o 1 větší než ID předchozí. Musíme zobrazovat zprávy ve správném pořadí, ale server nezaručuje správné pořadí zpráv odesílaných na naši aplikaci. Časová osa: // (přichází) [telefon] // (kreslíme) . 1 2 3 . . 4 5 6 7 8 Pro zobrazení zpráv použijte funkci render: render(message)
Pověz mi o své zkušenosti s Node.js na příkladu nějakého projektu, co přesně jsi na něm vyvíjel?
/** * Je třeba napsat asynchronní funkci, * která bude "spát" zadaný počet milisekund, * a poté úspěšně skončí */
Obecné pochopení JavaScriptu: předávání parametrů, asynchronnost, prototypy, zpracování chyb
// Je nutné zkontrolovat řešení úlohy na dvou službách voláním: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Pokud obě požadavky vrátí true - vypište success do console.log() // - Pokud alespoň jeden vrátí false - vypište fail do console.log() // - Pokud alespoň jeden neodpoví - vypište error do console.log() // - Pokud alespoň jeden odpoví déle než 1 sekundu - vypište timeout do console.log()
Povězte nám o své pracovní zkušenosti v Atvint: projekty, povinnosti, tým, procesy.
Pokud jde o role, chtěl bys jít směrem k managementu nebo technickému směru?
Zúčastnil se návrhu API?
/** * Dán je pole bodů s celočíselnými souřadnicemi (x, y). * Určete, zda existuje svislá přímka, * která dělí body na dva soubory symetrické vzhledem k této přímce. * Poznámka: pro pohodlí lze bod představit nikoli jako pole [x, y], ale jako objekt {x, y} */ isVertSym([[0, 0], [0, 0], [1, 1], [2, 2], [3, 1], [4, 0], [4, 0]]) // true isVertSym([[0, 0], [0, 0], [1, 1], [2, 2], [3, 1], [4, 0]]) // false isVertSym([]) // true isVertSym([[0, 0]]) // true isVertSym([[0, 0], [10, 0]]) // true isVertSym([[0, 0], [11, 1]]) // false isVertSym([[0, 0], [1, 0], [3, 0]]) // false function isVertSym(list) { // kód zde }
/** * Funkce `asyncAuth(callback)` přijímá callback, do kterého může * být předána chyba (prvním argumentem) a data * z backendu (druhým argumentem). * asyncAuth((error, data) => {}); * * Musíte implementovat funkci `auth()`, * která volá `asyncAuth()`, ale vrací Promise. * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }
Zabýval jste se nasazením aplikací, CI/CD, konfigurací?
Jsou zde uvedeny tři části kódu. Je třeba napsat výsledek každého console.log. var n = 1; function f(n) { n = 3; } f(n); console.log(n); // ?? // ------------------ var obj = { a: 1 }; function f1(o) { o.a = 5; } f1(obj); console.log(obj); // ?? // ------------------ var obj = { a: 1 }; function f2(o) { o = { hello: 1 }; } f2(obj); console.log(obj); // ??
/** * Funkce `tryAuth()` používá `auth()` a v případě chyby, * provádí N dalších pokusů. * Pokud všechny pokusy selžou, vyhodí poslední chybu. * * @returns {Promise} */ export function tryAuth(n) { }
/** * Dán je array. Je třeba seřadit lichá čísla vzestupně, * a sudá nechat na svých místech * / export function oddSort(numbers) { // váš kód zde } console.log(oddSort([2, 3, 7, 4, 6, 1, 5, 8, 9])); // [2, 1, 3, 4, 6, 5, 7, 8, 9] console.log(oddSort([2, 4, 6, 8])); // [2, 4, 6, 8] console.log(oddSort([3, 7, 1, 5, 9])); // [1, 3, 5, 7, 9] // Je třeba ověřit řešení úlohy na dvou službách voláním: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Pokud obě požadavky vrátí true, vypíše success // - Pokud alespoň jeden vrátí false, vypíše fail // - Pokud alespoň jeden neodpoví, vypíše error // - Pokud alespoň jeden odpoví déle než 1 sekundu, vypíše timeout import { checkResult } from '...'; export async function checkResults() { const solution = 'Any answer'; const url1 = 'yandex.ru'; const url2 = 'google.com'; checkResult(url1, solution); checkResult(url2, solution); }
// Je nutné implementovat metodu groupBy, která rozšiřuje standardní metody polí. // Metoda by měla vracet seskupenou verzi pole – objekt, // ve kterém je každý klíč výsledkem provedení předané funkce fn(arr[i]), // a každá hodnota je pole obsahující všechny prvky původního pole s tímto klíčem.
Jak bylo ve vašem posledním projektu nastaveno spolupráce? Pomocí Agile nebo jinak?
Máš zkušenosti s navrhováním architektury služby nebo její části sám/sama?