записывал бы хоть сценарий, текст и продумывал что будешь говорить, так меньше шизофазии было бы
@МихаилБарсуков-т5п2 күн бұрын
акутальна ли нода в 2025 году и возможно ли найти вакансию джуну? Или лучше смотреть в сторону java / c#? (сейчас учусь на 3 курсе, думаю студенту будет чуть проще найти стажировку...)
@uzer-124-90sdj2 күн бұрын
В "хорошем примере" принципа Iterface Segregation, если Dog наследуется от Animal, и уже в классе Dog добавляется метод swim, то зачем нужен класс Swimmable? Почему бы не наследовать Swimmable от Animal, а Dog наследовать от Swimmable и тогда Dog сразу получит методы от Animal и Swimmable.
@sergeisychov98108 күн бұрын
Лучше использовать стек структуру Если скобка открывается, то заносим в стек, если закрывается и она соответствует последней скобке, то убираем из стека. В итоге если в стеке осталось что-то, то не выполнено, если стек пустой, то задача корректна
@Maxlubanclan10 күн бұрын
Плохой ответ как по мне. Нужно выбирать по необходимости в зависимости проекта. Где то лучше использовать постгрес в виду строгой типизации и т д
@foo4444411 күн бұрын
ваще них не понятно жи)
@Disorrder12 күн бұрын
Куратины? 🤔
@Disorrder12 күн бұрын
Спасибо за то, что собирали все самые бесполезные вопросы 🤣 не понимаю, зачем их задают на собесах, буквально тупое штудирование учебника. 0 информации о разработке, как вообще понять, подходит кандидат или нет, чем от остальных отличается
@АшурМезлан14 күн бұрын
Братан, желаю тебе бабосиков и крепкого здоровья. Спасибо за отличный материал.
@evgeniynechaev938614 күн бұрын
Если вам сказали что через месяц наплыв клиентов и вы решили делать рефакторинг работающего кода - вас надо расстрелять еще до увольнения! Вы наверное не работали в реальном продуктовом продакшене :-) Стабильность работы кода важнее скорости в реальном продакшене
@evgeniynechaev938614 күн бұрын
Вообще Level1 решается на стеке. Открывающая push закрывающая pop. И все. А то что написал этот "кандидат" - костыль на костыле с костылями. ИМХО, конечно. Задача с олимпиады для 7 класса программирования :-)
@nurlansadykov228015 күн бұрын
Познавательно. Это на мидл или на сеньёр позицию?
@ars427315 күн бұрын
решение который принял интервьюер из level 1 не будет работать. например для последного теста из видео "())("
@nurlansadykov228015 күн бұрын
Будет работать, "(" +1 далее ")" -1, итог 0. Далее ")" -1, в следующем цикле попадет в условие < 0 и сделает break и вернет false
@ars427315 күн бұрын
@@nurlansadykov2280так потом уже будет 3 ый элемент " )" а не 0
@EugenySche16 күн бұрын
вот бы мне такую халяву где джунам 360рубасов платят :)
@Chirakusan16 күн бұрын
Небольшая помарка в конечном результате Level 1 задачи, условие должно быть acc < 0, не el. Да и вариант с reduce можно оставить, можно после s.split, проверить является ли 1-й элемент закрывающей скобкой, если да то выкидывать сразу false, т.к. открывающей для неё точно уже не будет. Видос топчик!)
@dslaip16 күн бұрын
2.00 ну да, действительно практически одно и то же, с той лишь ГИГАНТСКОЙ разницей, что одно это архитектурный паттерн, а другое это библиотека просто реализующая этот паттерн
@JuniorSoftwareVlogger17 күн бұрын
Ура, наконец-то собедования на Node.JS
@jalsansarylov877917 күн бұрын
Классно! Собеседующий топ!
@ВасяПупкин-р5ч7ъ17 күн бұрын
Крутой собес, даже не верится, что я со своим годом опыта смог бы ответить на все вопросы, потратив на подготовку пару дней. Было бы прикольно, если будешь прикладывать к видосу резюме, с которым тебя зовут на собес
@artyomkorshykau21 күн бұрын
Так старнно читать что люди считают это каким-то мидлл уровнем или выше, он отвечтил на самые базовые джулайские вопросы, но даже этого мало для работы в 2024 году. Это я не беру в расчёт то, что это якобы ученик этого молодого таланта, с заранее заготовленными ответами.
@astra_______23 күн бұрын
49:30 АХАХАХАХАХАХ цитирует ролик ульби тв
@ДмитрийПарамонов-д8з28 күн бұрын
Супер, благодарю за контент!
@GGamess28 күн бұрын
прогрев консли плять
@Mortis50029 күн бұрын
Озвучка от нейросети говно
@Alex.ShaldaАй бұрын
А где ссылка на оригинал???
@thedownwardspiral9787Ай бұрын
Максимально скомканный видос, зато телега, телега, телега, телега, всё в телеге, перейди в телегу, ждем в телеге, было в телеге. Да ну нахер
@azatgalyautdinov3548Ай бұрын
Ни вуя, спасибо за каст
@ДмитрийГусаров-к5оАй бұрын
про евентлуп автор слышал звон и хз где он
@SabilasSalamАй бұрын
Микро таска попадает в вебапи, мы вам перезвоним 😢
@shev911Ай бұрын
Разве setimmediate это микротаска?
@disturb33316 күн бұрын
Макро, выполняется в фазе check
@max_wbwАй бұрын
Когда же вы угомонитесь с этим var? Вы же не экзамен по истории принимаете.
@romandeveloper7720Ай бұрын
никогда
@alexabees682Ай бұрын
После фразы "HTTP делится на IP и TCP" можно отправлять домой
@Гооол-й4чАй бұрын
Перед прочтением рекомендуется открыть форточку. 1) 0:59 Эм, нет, resolve() это не микротаск, это синхронная задача. Функция, переданная в then - микротаск. 1:22 Стоит отметить, что конкретно в этом случае - да, но не всегда. В ситуации, где у нас promise станет fulfilled через условные 2 секунды, setTimeout с 0 отработает раньше. Стоит это понимать. 1:27 Исходя из этого спича, я могу лишь понять, что у нас есть синхронные ( не связанные с webApi задачи ) и асинхронные ( связанные ). Стоит понимать, что , ,например, методы промиса исполняются асинхронно и не являются частью webApi. 1:58 Почему мы должны пройти в webApi, какая очередь микрозадач? Тут вообще какая-то тьма. Я как бы не пытаюсь обличить тебя в том, что ты не понимаешь как это всё работает, но раз ты как бы записываешь ролик и пытаешься пояснять решение задач, наверное нужно немножко поработать над формулировками. Если б я, будучи новичком, смотрел это, то в лучшем случае я бы ничего не понял, в худшем - забил себе голову сомнительными интерпретациями. 2) Будто бы так себе идея проходиться по promises с помощью forEach. У нас контракт promise all подразумевает, что он вернёт ошибку первого rejected promis`a, если таковой будет. В принципе в данной реализации оно так и сработает. Вопрос в том, если нам смысл продолжаться итерироваться после этого момента. По-моему нет. Мол, наверное, лучше проходиться условным for of и после вызова reject делать return. Может я где-то ошибаюсь, но вроде как всё выглядит именно так. Будто бы completed - лишний код. Если в цикле у нас сработает catch, то нет никакого смысла в дальнейшей работе с логикой, расположенной в .then. А до момента похода в catch, у нас всегда будет валидный index. Мы можем сравнивать index+1 === promises.length. Касательно проверки, мол является ли promises массивом. Ну будто это оверкилл, кто-то реально занимается подобными вещами? Тоже самое с моментом, где мы в forEach по сути дела оборачиваем промис в промис. Да, сценариев для падения кода в рантайме становится меньше, может даже они в этом случае пропадают, но это будто бы дорога в никуда. Мол кто-то может посчитать подобное решение очень продуманным и надёжным, но можно представить, во что превратиться ваш проект, если вы в таком ключе будете хендлить все нежелательные входные параметры. 3) 'this потерян' - это конечно интересная формулировка, учитывая что он буквально создаётся в момент вызова функции. Но это как бы мейнстримный жаргон, поэтому вряд ли кто-то за это предъявит. Просто по-моему звучит нелепо. Вот эти кейсы решения проблем сменой типа функции - отдельный вид шизофрении. Я даже не догадываюсь, как это нужно писать код, чтобы потом тебе пришлось решать проблемы сменой типа функции. Но это вполне прикладной кейс, поэтому опять же тут вопросов нет. Но в общем-то смотреть на специфику поведения this в стрелочных функциях, как на какой-то способ решения проблем, связанных с this - такое себе. В принципе this называть контекстом, если вот так подумать, довольно странно. То есть контекст это какое-то окружение, в рамках которого твоя функция исполняется. Когда это объект - всё вполне гладко, но вот как быть в ситуации типа: 'use strict' function qwe(){ console.log('this: ', this) } qwe.call(null) Разве мы можем, сказать, что в этой ситуации у нас функция имеет контекст null? Учитывая, что функция не преобразуется к представлению объекта, как и undefined.
@alexandrbird8400Ай бұрын
console.log(a) var a = 1 будет undefined лол
@jswrlАй бұрын
Да, это ошибка. Консоль лог должен быть ниже чем объявление переменной
@Nikitosss91Ай бұрын
вот тебе и техлид))0(
@WinchesterDАй бұрын
Это происходит потому что переменные всплывают при компиляции JS-а в C++. Однако var работает по классике, переменные "var" всплывают и они доступны до их назначения, однако по умолчанию имеют значение "undefined". В то же время let и const тоже всплывают, но компилятор сознательно блокирует доступ к ним до их объявления, потому при попытке обратиться к переменной let/const до её назначения, будет брошена ошибка (Переменная вызвана до её объявления).
@Гооол-й4чАй бұрын
@@WinchesterD в какой момент js компилируется в C++ и в каком рантайме, если не секрет?
@WinchesterDАй бұрын
@@Гооол-й4ч Блин, фигню написал, в машинный код компилирует а не в С++. На плюсах написан движок V8
@ВладФилиппов-ш6щАй бұрын
очень непонятные примеры
@ВладФилиппов-ш6щАй бұрын
Какое расширение у тебя установлено для отображения json?
@igordzhenkov5860Ай бұрын
Огонь!
@АлександрКнязев-ю1вАй бұрын
Много ошибок, названия переменных тоже перепутаны. Для новичка точно не пойдет, он голову сломает пока поймет, что там ошибки! Так же обещанного кода нет!
@georgecherenkov3064Ай бұрын
В начале "У тебя безграничные ресурсы финансов, апрувов, людей". 15 минута "Еще 1 индекс это дорого". Тут же на каждый вопрос "Вот было бы у нас 5 реплик", "Вот сделать партицирование, шардирование". 7 бед - один ответ. И ответ "У нас все тааааааак нагружено, что не продохнуть". Поэтому решение это ВРЕМЕННЫЕ ТАБЛИЦЫ. Найти дохрена НЕ нужных данных (потому что делать еще 1 индекс дорого, по сути состоящий из уникального ИД (не записи, а клиента) (уже существует) и статуса (енум), которым можно заменить уже существующий) и вложенно искать внутри этих данных (которые не поместятся в память, так как приложение очень нагружено) и будем искать/фильтровать и сортировать с диска. Ну окей, на диск может не успеть скинуть, но, простите когда ты видишь потом из сотен гигов оперативной памяти 3-5-10% уходящих на вот такое вот решение, то проще уже сделать индекс. Мало того что это будет МЕНЬШЕ по деньгам, так еще и быстрее, правильнее. Более того енум можно сменить на бул, если там всего два статуса. А если статусов больше (по логике приложения статус может быть Open/Close, но причина Close может быть разная (например Timeout, ForceQuit, SupportClose)) и хранить в той же таблице - не повод пихать в статус сессии. Итого индекс с текста через энам в бул можно (надо смотреть сколько статусов может быть). А составной с булом это прям не большая проблема. Да, возможно надо идти будет к аналитику, да добавлять колонку тоже займет время, да это не просто 1 строчку в коде написать, но и позиция ТимЛид и вопрос стоит не ограничиваться строками №70-80. Но за неделю-две можно все провернуть с согласованиями. Более того по логике приложения, речь идет о сессиях пользователя. Открытых. Сколько их? 2-3? ПК и мобилка? Остальные по таймауту закроются через час, день. А если таблица на 4Тб, означает что там хранятся исторические данные (потому как 4Тб на, пускай 5 записей, это просто жесть как много людей, возможно больше чем существует на планете). Отсюда вопрос стоит вообще в этой таблице. Партицируй не партицируй, но можно как минимум ее сжимать, а кому надо история сессии годичной давности - может как раз и подождать. След момент: а зачем искать открытые сессии среди всех? Если мы знаем что у нас в логике приложения сессия закрыватся всегда через 24ч, то и искать надо в последних 24часах, а не во всех. Если уж нравится фильтровать. Надо прям список всех открытых сессий - держите их отдельно вообще. И вот тут вступают уже переговоры а надо ли оно, а кеш ли, а партицирование, а другая таблица и т.д. и т.п. Учитывая что у сессии есть TTL и ее закрывать надо (если уж в БД храним), то update set status не так уж сложно добавить будет еще 1 update/insert/delete + set Ну и дальше когда стоит вопрос "мучать продакшен" потому что аналитики хотят - ну это за гранью добра и зла. Когда что-то хотят аналитики, это в 99% случаев закрывается файл, берется аналитик и делается звонок. Потому что решение ЕГО (аналитика) проблемы/хотелки лежит ВНЕ этого файла и этого экз БД. Ибо любой индекс на 4Тб, потому что кто-то не хочет ждать лишние 10 минут из 40 - погоды не сделают. И пусть себе реплику мучает запросами по 2 часа или сутками. Если нет ограничения на клауд и реплики (например как в GCP), то на его реплике (аналитической) сделатей ему его собственный индекс. Более того, реплицировать ему можете тоже только часть данных, а не всю БД/таблицу. Т.е. если анализ идет максимум раз в месяц за месяц - реплицируйте ему все -30д стримом, он остальные данные хранит снепшотами для квартальной/годовой аналитики. Если анализ раз в неделю за неделю - еще проще. Это если решать на уровне инфры (займет меньше дня с согласованиями). Если решать на уровне кода - сделайте ему отдельно ивенты. ЛБ для БД помним, но пул создаем в коде. Есть причины, иногда, знать о пулах в коде, но это не повод их создавать в коде. Опять же ЛБ для БД тоже не дешевая история.
@georgecherenkov3064Ай бұрын
При такой постановке задач, есть не нулевая веротность встретить потом индекс на int64 для ИД пользователя (при базе пользователей в 10 млн душ), но экономия для составного идекса. Или приколы с UUID в MySQL. А какой версии мускуль? А какие параметры его? А как хранится... Если БД задыхается, решать это в 1 лицо девом не стоит. Берется метрики, берется ДевОпс как минимум. И решается проблема комплексно. Начиная от short term -> long term, учитывая все стоимости. Потом за шкирку ПМ и продавать наверх. Мол надо неделя, 2 человека, будет збс. А ПМ, толковый, вообще может подготовить почву заранее. Я бы понял, если бы эти сессии использовались по коду ниже (все). Тогда да, можно действительно говорить о том, что нужны НЕ только открытые. Но, для вывода истории (первые 1-2-3 страницы будет достаточно, можно уточнить у БА/Аналитика UX) можно искать "за последние сутки, день, 50 записей". И класть их в небольшой часовой кеш, что бы пагинация была и прогревать для последующий странц, если надо. Но в 99% случаев не надо. Достаточно сделать копнку "Загрузить детальную историю за последний месяц", и на фоне прогреть кеш человеку. Гарантирую что ее почти никто не будет нажимать и ограничатся недельной историей сессий.
@maskadan1697Ай бұрын
А я хочу себя и хочу быть собой
@AllistirKing2 ай бұрын
Если собес реальный был, то ты прям выдал мощный уровень
@EgorFrade2 ай бұрын
Я если честно плохо понимаю зачем это нужно знать, в спецификации ecma нет таких понятий как micro и macro task, это всё специфика web api определенных браузеров, какой шанс, что explorer будет следовать той же логике, что и хром ? Я не представляю себе реальную задачу где нам нужна была бы гарантия выполнения асинхронных операций.
@O_Shpak2 ай бұрын
Очень хотелось бы посмотреть как размышлял над задачами
@rainlexxx2 ай бұрын
а есть ссылка на полное интервью, где без обрезки решений?
@abubakrjuraev18162 ай бұрын
Лучший! сделай пожалуйста видео для докера для поднятие Фронта типа (Реакт) и Бекенда на Nest js Спасибо за видео
@homelander9732 ай бұрын
Приветствую, еще актуально?
@jswrl2 ай бұрын
Пиши в тг)
@fiddchannel80042 ай бұрын
Часто в требованиях вакансий встречаю тестирование. Тоже важная тема для фронта