Sobes.tech

Frontend

От тези билети може да се построи единствен, непрекъснат маршрут. В маршрута няма цикли или повторения. Трябва да напишете програма, която връща същите обекти на билетите в реда на маршрута. ```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 по-голямо от предходното. Трябва да показваме съобщенията в правилния ред, но сървърът не гарантира правилния ред на съобщенията, изпратени към нашето приложение. График: // (пристига) [телефон] // (рисуваме) . 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 - изведете в console.log() success // - Ако поне една върне false - изведете в console.log() fail // - Ако поне една не отговори - изведете в console.log() error // - Ако поне една отговори повече от 1 секунда - изведете в console.log() timeout

167

Що се отнася до ролите — искаш ли да поемеш към управлението или към техническото направление?

162

Разкажете за своя опит в работата в Atvint: проекти, отговорности, екип, процеси.

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((error, data) => {}); * * Трябва да реализирате функцията `auth()`, * която извиква `asyncAuth()`, но връща Promise. * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }

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, да се изведе 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