Sobes.tech

Осы билеттерден біртұтас, үздіксіз маршрут құрастыруға болады. Маршрутта қайталанулар мен қайталамалар жоқ. Сізге осы билеттердің объектілерін маршрут бойынша ретімен қайтаратын бағдарлама жазу керек. ```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' }, ])); ```

265

Жүйенің жүктемесін RPS-те анықтадыңыз ба? Қанша болды? Техникалық кезеңдерді лайв-кодинг форматында өту тәжірибеңіз бар ма?

257

Қолданба, код немесе қызмет қауіпсіздігімен айналысқан кезіңіз болды ма?

254

Біздің чат қолданбамыз серверден келетін жаңа хабарламаларды мүмкіндігінше тезірек көрсетуі керек. Хабарламаның форматы: interface Message { id: number text: string } Ең алғашқы хабарламаның id-і 1-ге тең, ал келесі хабарламаның id-і алдыңғысының 1-ге артық. Біз хабарламаларды дұрыс тәртіпте көрсетуіміз керек, бірақ сервер жіберілетін хабарламалардың дұрыс тәртібін кепілдік бермейді. Уақыт сызығы: // (келеді) [phone] // (суреттеу) . 1 2 3 . . 4 5 6 7 8 Хабарламаларды көрсету үшін render функциясын пайдалану керек: render(message)

221

Node.js-пен жұмыс тәжірибеңіз туралы қандай да бір жобаның мысалы арқылы айтып беріңіз, нақты не жасадыңыз?

191

/** * Белгілі бір миллисекундтар санында "ұйықтайтын" асинхронды функция жазу керек, * және содан кейін сәтті аяқталуы керек */

180

JavaScript-тің жалпы түсінігі: параметрлерді беру, асинхронды жұмыс, прототиптер, қателерді өңдеу.

175

// Мәселені екі сервисте тексеру үшін шақыру керек: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Егер екі сұрау да true қайтарса - success деп жазу // - Егер біреуі false қайтарса - fail деп жазу // - Егер біреуі жауап бермесе - error деп жазу // - Егер біреуі 1 секундтан ұзақ жауап берсе - timeout деп жазу

167

Рөлдер бойынша — басқару жолына ма, әлде техникалық бағытқа ма барғыңыз келеді?

162

Atwint-те жұмыс тәжірибеңіз туралы айтып беріңіз: жобалар, міндеттер, команда, процестер.

161

/** * Бұл массивте бүтін сандармен берілген нүктелер бар (x, y). * Түзу бар-жоғын анықтау керек, * ол нүктелерді осы түзумен симметриялы екі топқа бөледі. * Ескерту: Ыңғайлылық үшін нүктені [x, y] массиві ретінде емес, {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) { // код осында }

155

/** * `asyncAuth(callback)` функциясы callback-ты қабылдайды, оған * қате (бірінші аргумент ретінде) және * бэкендтен алынған деректер (екінші аргумент ретінде) берілуі мүмкін. * asyncAuth((қате, деректер) => {}); * * Сіз `auth()` функциясын жүзеге асыруыңыз керек, * ол `asyncAuth()`-ты шақырады, бірақ Promise қайтарады. * * @returns {Promise} */ export function auth() { // asyncAuth((қате, деректер) => {}); }

152

Қолданбаны орналастыру, CI/CD және конфигурациямен айналыстыңыз ба?

151

/ ** * Массив берілген. Сан мәні бойынша тақ сандарды өсу ретімен сұрыптау керек, * ал жұп сандар өз орындарында қалуы керек * / export function oddSort(numbers) { // кодты осында жазыңыз } 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] // Бұл тапсырманы екі сервисте тексеру керек, шақыру арқылы: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Егер екі сұрау да true қайтарса, console.log() ішінде success деп шығарыңыз // - Егер біреуі false қайтарса, fail деп шығарыңыз // - Егер біреуі жауап бермесе, error деп шығарыңыз // - Егер біреуі 1 секундтан ұзақ жауап берсе, 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); }

151

Үш бөлімнен тұратын код берілген. Әрбір 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); // ??

150

/** * `tryAuth()` функциясы `auth()`-ты пайдаланады және қате болған жағдайда, * N қосымша әрекеттер жасайды. * Барлық әрекеттер сәтсіз болса - соңғы қатені шығарады * * @returns {Promise} */ export function tryAuth(n) { }

149

// groupBy әдісін жүзеге асырыңыз, стандартты массив әдістерін кеңейтіңіз. // Бұл әдіс массивтің топтастырылған нұсқасын қайтаруы керек – объект, // оның әр кілті fn(arr[i]) функциясының нәтижесі, // ал әр мәні – сол кілтпен барлық бастапқы массив элементтерін қамтитын массив.

147

Соңғы жобада өзара әрекеттесу қалай ұйымдастырылды? Ол Agile ме, әлде басқа бір нәрсе ме?

145

Сіз мақтан тұтатын шешім немесе жақсарту қандай? Мүмкін, өте күрделі немесе маңызды тапсырма шығар?

142
/2