Sobes.tech

Расскажите о своём последнем месте работы и проектах, которыми занимались.

Middle+
Mayflower
3

/* Наше приложение-чат должно отображать новые сообщения, которые приходят с сервера. Сообщение имеет формат: interface Message { id: number text: string } Id самого первого сообщения = 1, а id каждого следующего сообщения на 1 больше, чем id предыдущего. Нам нужно выводить сообщения в правильном порядке, однако сервер не гарантирует правильный порядок сообщений, отправляемых в наше приложение. Таймлайн: // (приходит) [phone] // (рисуем) . 1 2 3 .. 4 5 6 7 8 Сообщения от сервера приходят в обработчик функции connect: connect((msg) => { ... }); Отображать сообщения нужно с помощью функции render: render(msg) */ function solution(connect, render) { connect((msg) => { render(msg); }); }

Middle
Лига Цифровой ЭкономикиЛига Цифровой Экономики
3

import React, { useState, useEffect, useRef, useContext, useReducer, useMemo } from 'react'; export default Effects = () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("each render 1")); console.log("each render 2"); useEffect(() => console.log("each render 3")); return ( <> <button onClick={() => setCount((prevProps) => ++prevProps)}> Increment </button> </> ) }

Middle+
IT OneIT One
3

/** * Implement the function that will execute a callback with the data * and return an array of responses Response[]. * The solution should execute all requests in parallel * but no more than [limit] requests can be executed concurrently. * The goal is to minimize the total execution time. */ type Props<RequestData, Response> = { callback: (args: RequestData) => Promise<Response>; data: Array<RequestData>; limit: number; }; export async function runWithLimit<RequestData, Response>({ callback, data, limit, }: Props<RequestData, Response>): Promise<Response[]> { // START SOLUTION HERE if (limit < 1 || data.length === 0) { return Promise.resolve([]); } if (limit >= data.length) { return Promise.all(data.map(callback)); } const result: Response[] = new Array(data.length); let index = 0; const run = async () => { if (index >= data.length) return; const elem = data[index]; try { result[index] = await callback(elem); } catch (err) { result[index] = (err) as Response; // todo: handle error } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }

Middle
SIGNAL
3

Какие способы скрыть элемент в CSS ты знаешь?

Middle+
Employcity
3

Расскажи немного про предыдущий опыт, чем занималась на прошлой работе. Какие-то интересные кейсы или какова роль в команде была?

Middle+
РунитиРунити
3

Если ты увидела в уже готовом коде, который уже отдали, что-то явно плохое — как быть?

Middle
Нетвижн
3

В чём проблема использования enum в TypeScript при компиляции в JavaScript? Чем можно заменить enum?

Middle
Электронные офисные системы
3

Зачем может понадобиться метод apply в решении runOnce?

Middle+
Яндекс
3

Какие тесты писали, для чего, что тестировали?

Middle
Major Auto
3

В чём отличие FormGroup от FormArray?

Middle
AstonAston
3

Это был B2B или B2C сервис? Были ли метрики для отслеживания ошибок и пользовательского опыта?

Middle+
Mayflower
3

Виртуальный скролл вы реализовывали самостоятельно или использовали библиотеку?

Middle
ИРИ
3

// а каждое значение — массивом, содержащим все элементы исходного массива с этим ключом. // code here // Пример 1 const array1 = [ { id: 1 }, { id: 1 }, { id: 2 } ]; const fn = (item) => item.id; console.log(array1.groupBy(fn)); // { // 1: [{ id: 1 }, { id: 1 }], // 2: [{ id: 2 }] // } // Пример 2 const array2 = [1, 2, 3]; console.log(array2.groupBy(String));

Middle+
Яндекс
3

Как вы оцениваете себя: middle, middle+, senior?

Junior
ИП Ганус Александр Андреевич
3

Как тебе подходит наш формат работы? Насколько он привлекателен?

Middle
Premium IT Solution
3

Что бы ты взял для сборки UI-кита с нуля?

Middle
МВидео/эльдорадо
3

Какие типы визуализаций были? Какие делал лично?

Middle
ВШЭ
3

Какие плюсы и минусы кастомного UI-кита?

Middle
МВидео/эльдорадо
3

Из этих билетов можно построить единственный, неразрывный маршрут. Петлей и повторов в маршруте нет. Нужно написать программу, которая возвращает эти же объекты билетов в порядке следования по маршруту. ```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' }, ])); ```

Middle
Яндекс МаркетЯндекс Маркет
3
/201