с промисами не будет забитого стека, так как микротаски разрешаются сразу и не попадают в очередь, вернее сказать что умрет рендер таски, так как у них приоритет ниже чем у микротасок, таким образом у нас страница вообще никак ни на что реагировать не будет
1. через какое-то время вывалится Maximum call stack size exceeded, так что стек так или иначе "забивается", кажется, либо функции просто хранят ссылки на цепочку вызовов, и ошибка падает, когда эта цепочка слишком длинная 2. если навесить код, который они пробовали, на какой-нибудь обработчик клика, то интерфейс будет подлагивать, но не встанет, как это было бы с условным while (true), сайт будет отзываться +- нормально. Разве рендеринг не приоритетен в браузерах перед всем остальным (ну и учитывая, что микротаски в их примере реально не будут забивать стек, а будут по одной залетать и вылетать)?
9:02 На самом деле в спецификации HTML5 четко прописано, что очередь задач не использует очередь как структуру данных. Task queues are sets, not queues, because the event loop processing model grabs the first runnable task from the chosen queue, instead of dequeuing the first task. (8.1.7 Event loops)
Интересные задачки, но очень хочется посмотреть полное видео, без обрезок. Плюс желательно поработать над громкостью голосов - у интервьювера и кандидата децибеллы порой различаются на порядок
12:10 какое переполнение с таймерами? Браузер даже сможет кадры рисовать между вызовами таймаута. Если в setTimeout не будет тяжелой функции, то пользователь даже не заметит тормозов. Почему интервьювер поддакивает то?) 18:23 нельзя так дебаунс в рендере определять. Во первых, в момент его вызова внутри него будут значения замыкания из того рендера, который его определил (а не актуальные значения), а во вторых, каждый рендер будет создаваться новый дебаунс. т.е. если рендер поменяет ссылку на дебаунс, то прошлый дебаунс вызовет свою функцию даже во время набора текста (т.к. набор текст откладывает новый дебаунс). Я думал в тинькоффе сильно сложнее собесы, а оказывается даже проще яндекса. В яндексе мне на джуна в свое время давали всякие банкоматы, графы, создание планировщика работы с сетью (который делает ретраи, очередь запросов, отмены запросов через абортконтроллер и прочее).
@@669pain ага, ещё блокирующие задачи разбиваются. Такое может и редко на практике применяется, но если соискатель укажет на возможность такого костыля, то ему жирный плюс будет.
@@АнастасияШагаева-й8ч на литкоде есть study plan бесплатный там точно нужно пройти задачи на графы и DP, ну и ещё там есть список из 150 задач, которые чаще всего попадаются.
Как же нравятся такие вот собесы фронтенда, когда задают вопросы, которые нахрен не нужно задавать ( я про this ). Понимаю, где есть классы, и на this много что завязано, и его реально нужно понимать. Но тут... Видимо, как js тащит в себе недоработки старых версий, так и интервьюеры js вечно будут спрашивать эти тупые абстрактные вопросы.
@@rustamakhmetyanov4404 Вы совершенно правы. В таком случае знания на эту тему будут необходимы. Но чаще всего оказывается наоборот. Вопросы на эту тему спрашивают "по приколу", потому что не было времени / лень подготовиться нормально к собеседованию (так было у меня, у моих знакомых и у многих других программистов). Конечно, глубина знаний важна. Но на мой взгляд, если тот же this не используется в проекте, то лучше спрашивать про те вещи, которые действительно используются. Но это уже холеварная тема
@@rustamakhmetyanov4404 у меня был случай, устраивался в компанию на фулстек. Микросервисы там и все дела. Фронт с тестированием полным, сторибуками и fsd. На все хорошо ответил, но чел решил докапаться, потому что я нормально не смог ответить на вопросы про proto и prototype. - За фронт шарю? - Шарю. - За бэкенд шарю? - Шарю. - За устаревшую ненужную тему, которая нахрен не используется у нас в проекте, шаришь? - Нет. - Вы нам не подходите :D (На самом деле я начал сраться с ним на эту тему, потому что он начал душнить за proto)
@@igortrifonov9339 тут еще по лайту с одним уровнем вложенности. Иногда такую лапшу дадут, что без 100 грамм не разберешься, и даже если понимаешь как это работает, запутаешься, потому что никто в адеквате так не пишет.
11:17 - совершенно неверно !!! да, вы действительно попадёте в рекурсию, но никакой ошибки max call stack у вас не будет, ибо вы добавляете 1 задачу в очередь, в конце она добавляет ещё одну задачу в очередь (суммарно становится 2), а потом первая задача из очереди удаляется, итого остаётся 1 задача. Итого у вас намертво зависнет страница, однажды скорее всего упадёт сама страница как процесс хрома в операционной системе, но js никакой ошибки не выбросит! Ладно собеседуемый не знал, но интервьюеру, который даёт такую задачу и соглашается с тем что будет ошибка - просто позорище
Страница не зависает, даже остается отзывчивой, вероятно, это зависит от браузера, но в хроме, кажется, приоритет есть у рендеров и взаимодействий, а не у микро и макротасок Max call stack size exceeded падает через некоторое время - рекурсии, может, тут и не будет, но, вероятно, вызов функции запоминает все же цепочку функций, из которых была вызвана текущая Вкладка жрет память и может действительно отвалиться
Я также из финтех проекта. Периодически думаю про Тинькофф в качестве перспективы, но отбивает желание все вот эти глупые собесы про промисы и this. Пацаны, ну нафига вот это спрашивать в 2023 году? Код должен быть МАКСИМАЛЬНО простым, чистым, легко чистающимся, разработчик должен быть внимательным, умеющим самостоятельно разбираться во всех вопросах. ЗНАТЬ ПРО ЭТУ БАЗУ нужно только для того, чтобы пройти СОБЕС
Ты абсолютно прав! Если ты начнёшь писать код на проекте по примеру задач с собесов, на код ревью тебе устроят публичную порку. Но всем мест не хватит, поэтому надо повышать порог вхождения))
Согласен полностью. Не знаю, если ты опытный разработчик, ты тип, без проблем найдёшь какие вопросы задать, чтобы понять уровень собеседуемого. Но не вот эта дичь, конечн🤔
Ну на this и на promise - это знание особенностей языка. Не понимаю, в чем проблема. Ты наверное был бы доволен, если бы дали задание, сложить a+b . А то я понимаю, если задача реально душная, а жаловаться от того, что ты просто не знаешь хорошо язык, и тебя на этом могут подловить - такое себе
@@пушистый-ю8с Собес прошел нормально, но выбрали в итоге не меня, фидбек кстати не прислали. Но на собесе показал себя хорошо. Думаю дело в том что мало пет проектов. Был бы хотя бы 1 сильный - взяли бы точно. Без опыта туда не попасть
Первая задача, автор видео показывает как можно решить проблему с this, автор одним из решений предлагает использовать bind, только вот bind не будет работать в такой записи с filter. При этом собеседующий соглашается с неправильным решением, то ли у собеседующего низкая квалификация, то ли это фейковое интервью
@@devnextjs9259 возвращают не функцию, а промис, если мы говорим о примере на 9:21. Функция передана в then. Соответственно, при резолве промиса она будет вызвана.
Фейк собеседование У тимлидов, особенно из таких компаний, как Тиньков, не может быть шума на фоне. Это максимальное неуважение к собеседнику и непрофессионально. Автор клоун.
@@cao_dzecbi может я вас удивлю, но это наоборот дефолт :D. У меня товарищ тоже с хорошей зп, но пк древний и микро такой же ). Пока работает, ничего не меняет.
хотелось бы не обрезанное на решениях
Прикольно, я даже что-то начал понимать
"Вроде начинаю че-то робко понимать"
- Оксимирон Миронович
1:53 - оно не только не красиво, но и не работает
спишем на опечатку, bind'ить надо не к filter, а к функции, которую в неё передаём
А можно и вторым параметром в .filter (принимает необязательный thisArg) помимо коллбэка, передать userService)
+
с промисами не будет забитого стека, так как микротаски разрешаются сразу и не попадают в очередь, вернее сказать что умрет рендер таски, так как у них приоритет ниже чем у микротасок, таким образом у нас страница вообще никак ни на что реагировать не будет
1. через какое-то время вывалится Maximum call stack size exceeded, так что стек так или иначе "забивается", кажется, либо функции просто хранят ссылки на цепочку вызовов, и ошибка падает, когда эта цепочка слишком длинная
2. если навесить код, который они пробовали, на какой-нибудь обработчик клика, то интерфейс будет подлагивать, но не встанет, как это было бы с условным while (true), сайт будет отзываться +- нормально. Разве рендеринг не приоритетен в браузерах перед всем остальным (ну и учитывая, что микротаски в их примере реально не будут забивать стек, а будут по одной залетать и вылетать)?
Не умеешь прогать - начни продавать курсы - Девиз автора
к сожалению провалил этот собес, вопросы были точно такие же, не готовился еще и вечером с работы пришел( но ты затащил, красавчик
Это на джуна?
@@АртурКоролёв-в1ч сколько не смотрел вакансий, в тинькоф джунов не видел. скорее мидл, мидл+
@@АртурКоролёв-в1ч senior
@@АртурКоролёв-в1ч на стажёра)
Тинькофф не ищет джунов.@@АртурКоролёв-в1ч
На превью стоит поменять пример кода а то вроде собес в тиньку а стиль реакта "привет из 2019 года"
9:02
На самом деле в спецификации HTML5 четко прописано, что очередь задач не использует очередь как структуру данных.
Task queues are sets, not queues, because the event loop processing model grabs the first runnable task from the chosen queue, instead of dequeuing the first task. (8.1.7 Event loops)
Какой спецификации ?)))😂
@@sergeys4732 в спецификации HTML5
@@sergeys4732 официальной спецификации языка программирования HTML
HTML5)) @@sergeys4732
Причем тут html и event loop js? 😂
было бы супер, если бы не обрезали, а прям с размышлениями
хотелось бы все этапы собеседования увидеть: алгоритмы, системный дизайн... Почему никто не выкладывает ?
Интересные задачки, но очень хочется посмотреть полное видео, без обрезок. Плюс желательно поработать над громкостью голосов - у интервьювера и кандидата децибеллы порой различаются на порядок
Полностью поддерживаю вышестоящего оратора :D
Очень хотелось бы посмотреть как размышлял над задачами
а есть ссылка на полное интервью, где без обрезки решений?
12:10 какое переполнение с таймерами? Браузер даже сможет кадры рисовать между вызовами таймаута. Если в setTimeout не будет тяжелой функции, то пользователь даже не заметит тормозов. Почему интервьювер поддакивает то?)
18:23 нельзя так дебаунс в рендере определять. Во первых, в момент его вызова внутри него будут значения замыкания из того рендера, который его определил (а не актуальные значения), а во вторых, каждый рендер будет создаваться новый дебаунс. т.е. если рендер поменяет ссылку на дебаунс, то прошлый дебаунс вызовет свою функцию даже во время набора текста (т.к. набор текст откладывает новый дебаунс).
Я думал в тинькоффе сильно сложнее собесы, а оказывается даже проще яндекса. В яндексе мне на джуна в свое время давали всякие банкоматы, графы, создание планировщика работы с сетью (который делает ретраи, очередь запросов, отмены запросов через абортконтроллер и прочее).
Про таймаут верно, даже есть такой костыль чтобы стек не переполнять, большие циклы/рекурсии бьют таймаутами
@@669pain ага, ещё блокирующие задачи разбиваются. Такое может и редко на практике применяется, но если соискатель укажет на возможность такого костыля, то ему жирный плюс будет.
Как я успел заметить этот дебаунс не отработает корректно и мы увидим три вызова на бек. поправьте меня если я не прав
так еще мне кажется потенциальная проблема в том что нет гарантии что запросы отработают в том порядке в котором ушли.
useEffect лишний.
Дебаунс в колбэк и на запрос.
Это автокомплит? Тогда почему убрали вэлью и сделали его не контролируемым
а зачем обрезал все свои фейлы?))
я так понимаю, видео следующей секции не будет, иначе сразу станет стыдно перед подписчиками))
На новеньких рассчитано, чтобы себя показать, а не то как реально собесы проходят
О, знакомые лица😅
Просили зашарить экран или это в окне браузерного ide все происходило и не видели твой рабочий стол?
Спасибо !
классный формат, но слишком много обрезок и в итоге теряется суть и мысль прям на половине действия
Давай братан сделаешь следующий раз начало и сразу конец, зачем себя мучать этими обрезками нам же не интересно как ты мыслишь в процессе
В колбеке фильтра будет потеря контекста (this === undefined), а не Window
будет виндов, вбей код в консоль. Мне консоль виндов вывела
2 ӕтап из 30 пройден
был ровно месяц назад на собесе в тинькофф по реакт и мне задали чисто такие же вопросы) Но я на всё ответил и прошёл на алго собес
Привет! Подскажи, пожалуйста, материал для подготовки к секции алгоритмов
@@АнастасияШагаева-й8ч на литкоде есть study plan бесплатный там точно нужно пройти задачи на графы и DP, ну и ещё там есть список из 150 задач, которые чаще всего попадаются.
Эльдар. Скажи пожалуйста ты прошёл алго собес?
следующий этап будет?
Здравствуйте, вы случайно не из Казахстана. У нас как раз недавно появилась вакансия от Тинькова
А на собесах обязательна вебка?
Как же нравятся такие вот собесы фронтенда, когда задают вопросы, которые нахрен не нужно задавать ( я про this ).
Понимаю, где есть классы, и на this много что завязано, и его реально нужно понимать. Но тут...
Видимо, как js тащит в себе недоработки старых версий, так и интервьюеры js вечно будут спрашивать эти тупые абстрактные вопросы.
Вы думаете старого кода не осталось на проектах? Эти вопросы как мне кажется задаются чтобы глубину знаний проверить) могу ошибаться
@@rustamakhmetyanov4404 Вы совершенно правы. В таком случае знания на эту тему будут необходимы. Но чаще всего оказывается наоборот. Вопросы на эту тему спрашивают "по приколу", потому что не было времени / лень подготовиться нормально к собеседованию (так было у меня, у моих знакомых и у многих других программистов).
Конечно, глубина знаний важна. Но на мой взгляд, если тот же this не используется в проекте, то лучше спрашивать про те вещи, которые действительно используются. Но это уже холеварная тема
@@rustamakhmetyanov4404 у меня был случай, устраивался в компанию на фулстек. Микросервисы там и все дела. Фронт с тестированием полным, сторибуками и fsd. На все хорошо ответил, но чел решил докапаться, потому что я нормально не смог ответить на вопросы про proto и prototype.
- За фронт шарю?
- Шарю.
- За бэкенд шарю?
- Шарю.
- За устаревшую ненужную тему, которая нахрен не используется у нас в проекте, шаришь?
- Нет.
- Вы нам не подходите :D (На самом деле я начал сраться с ним на эту тему, потому что он начал душнить за proto)
@@rustamakhmetyanov4404 в нормальных проектах на столько старых кодов оставаться не должно
@@igortrifonov9339 тут еще по лайту с одним уровнем вложенности. Иногда такую лапшу дадут, что без 100 грамм не разберешься, и даже если понимаешь как это работает, запутаешься, потому что никто в адеквате так не пишет.
11:17 - совершенно неверно !!!
да, вы действительно попадёте в рекурсию, но никакой ошибки max call stack у вас не будет, ибо вы добавляете 1 задачу в очередь, в конце она добавляет ещё одну задачу в очередь (суммарно становится 2), а потом первая задача из очереди удаляется, итого остаётся 1 задача.
Итого у вас намертво зависнет страница, однажды скорее всего упадёт сама страница как процесс хрома в операционной системе, но js никакой ошибки не выбросит!
Ладно собеседуемый не знал, но интервьюеру, который даёт такую задачу и соглашается с тем что будет ошибка - просто позорище
Страница не зависает, даже остается отзывчивой, вероятно, это зависит от браузера, но в хроме, кажется, приоритет есть у рендеров и взаимодействий, а не у микро и макротасок
Max call stack size exceeded падает через некоторое время - рекурсии, может, тут и не будет, но, вероятно, вызов функции запоминает все же цепочку функций, из которых была вызвана текущая
Вкладка жрет память и может действительно отвалиться
Я также из финтех проекта. Периодически думаю про Тинькофф в качестве перспективы, но отбивает желание все вот эти глупые собесы про промисы и this. Пацаны, ну нафига вот это спрашивать в 2023 году? Код должен быть МАКСИМАЛЬНО простым, чистым, легко чистающимся, разработчик должен быть внимательным, умеющим самостоятельно разбираться во всех вопросах. ЗНАТЬ ПРО ЭТУ БАЗУ нужно только для того, чтобы пройти СОБЕС
Ты абсолютно прав! Если ты начнёшь писать код на проекте по примеру задач с собесов, на код ревью тебе устроят публичную порку.
Но всем мест не хватит, поэтому надо повышать порог вхождения))
@@minkostas7232"всем мест не хватит" спасибо, посмеялся
Согласен полностью. Не знаю, если ты опытный разработчик, ты тип, без проблем найдёшь какие вопросы задать, чтобы понять уровень собеседуемого. Но не вот эта дичь, конечн🤔
Это вопросы на знание внутренностей языка и только. В чем проблема то
Ну на this и на promise - это знание особенностей языка. Не понимаю, в чем проблема. Ты наверное был бы доволен, если бы дали задание, сложить a+b . А то я понимаю, если задача реально душная, а жаловаться от того, что ты просто не знаешь хорошо язык, и тебя на этом могут подловить - такое себе
А где алгоритмы?)
Меня одного смущает что Тинькофф на ангуляре?😂
а сколько этапов было?
Так, что ты можешь здесь сказать: я могу сказать, что я пойду выйду через окно)
На собесе по ангуляру+js 1 и 3 вопросы точно такие же были.
а не подскажешь когда было твое собеседование?
Собес на какую позицию, пре мидл?
@@drrrchtв начале февраля 2024
@@НурсатБисенбаев-и9б на мидл, мидл+
а я бы глянул систем дизайн)
Сколько по деньгам?
Тоже будет собес на стажировку Тинькофф Старт через 3 дня, пожелайте удачи
Удачи!❤Отпишись потом)
@@пушистый-ю8с вроде хорошо ответил, еще и с кайфом пообщались с собеседующим, а это большой плюс
@@АртурКоролёв-в1чпозвали по итогу на стажировку?
Уже чтоли? Я выполнил вступительный экзамен мне еще ничего не пришло (
@@пушистый-ю8с Собес прошел нормально, но выбрали в итоге не меня, фидбек кстати не прислали. Но на собесе показал себя хорошо. Думаю дело в том что мало пет проектов. Был бы хотя бы 1 сильный - взяли бы точно. Без опыта туда не попасть
Это себеседование на junior frontend ?
конечно нет) эта секция минимум на мидл плюс, а раз у него после этого был этап по алгосам и систем дизайн то скорее это собес на синьора
@@ivomeadows Вообще может быть для и для junior. Почитайте требования к вакансиям, у низ даже для стажировки требуется знания алгоритмов.
@@ivomeadows то что попало на видео обычная джуновская база
@@NivaiZRUS ну потому что алгоритмы это база вузовская, которую без яп знать "нужно" в их глазах. Сложные вопросы по языку чаще на позиции от мидла
@@true227то, что в видео - далеко не джуновская программа. Это миддл/миддл+
Одни люди умеют работать а другие проходить собесы
подготовиться к собеседованию не сложно. Если чсв запрещает это делать, ну, что ж ))
монтаж не очень
первая задачка про map - после запуска в консольке понял что в видео не верные ответы
это не map, а filter
Первая задача, автор видео показывает как можно решить проблему с this, автор одним из решений предлагает использовать bind, только вот bind не будет работать в такой записи с filter. При этом собеседующий соглашается с неправильным решением, то ли у собеседующего низкая квалификация, то ли это фейковое интервью
Все правильно вообще - то, все работает, сейчас вставил код в браузер
const userService = {
currentFilter: 'active',
users: [
{name: "Alex", status: "active"},
{name: "Alex", status: "deleted"},
],
getFilteredUsers: function () {
return this.users.filter( function (user) {
return user.status === this.currentFilter
}.bind(this))
}
}
console.log(userService.getFilteredUsers())
там нет рекурсии, никакого переполнения там не будет
Как я понимаю, там возвращает функцию, но не вызывает её.
Я тоже так подумал, когда сам пытался решить. Но, запустив код в консольке браузера - убедился, что рекурсия есть.
@@maksimvashkevich1429 там бесконечный цикл, но не рекурсия
Рекурсия то есть, но переполнения не будет, потому что каждая макрозадача ждёт, пока стек опустеет и уже потом выполняется
@@devnextjs9259 возвращают не функцию, а промис, если мы говорим о примере на 9:21.
Функция передана в then. Соответственно, при резолве промиса она будет вызвана.
Судя что интервью с алгоритмами нету - значит этот этап провалил
Ипанутые задачи, если честно. Если Ваш повседневный код требует этого говна, у меня для Вас плохие новости ))
Фейк собеседование
У тимлидов, особенно из таких компаний, как Тиньков, не может быть шума на фоне. Это максимальное неуважение к собеседнику и непрофессионально.
Автор клоун.
Видимо ты до собеседований никогда не доходил)
Да-да-да. Верю, что у тимлида тинков с его зарплатой дишманский микрофон из ашана и шум на фоне@@jswrl
Каждый день рядом со мной в офисе кто-то провидит собесы. Там не только шум, могу еще люди перед камерой ходить, если включена.
ну ты и херню сморозил, дядь))
@@cao_dzecbi может я вас удивлю, но это наоборот дефолт :D. У меня товарищ тоже с хорошей зп, но пк древний и микро такой же ). Пока работает, ничего не меняет.