СОБЕСЕДОВАНИЕ JUNIOR FRONTEND РАЗРАБОТЧИКА | FRONTEND | REACT

Подготовка к собеседованию на Frontend Developer

Транскрипция видео:

  • Итак дорогие друзья Всем привет Вы долго ждали собеседование и вот продолжаем у нас очередной выпуск Сегодня у нас в гостях Тарас Привет Тарас Расскажи немножко о себе Привет привет да это раз занимаюсь уже непосредственно разработкой четыре года последние четыре года начинал все с Java был курс университете была тема по разработке мы заинтересовался сжал и перешел на PHP работал чуть там и Года четыре назад со своими друзьями одноклассниками открыли стартап по онлайн-школе Ну и тогда заинтересовался

    00:00:00 - 00:01:23

  • в реакции во всей этой движухи связанные с GS работали работали Ну и как-то завершились потому что все уже по находили настоящие работы нормальные работы которых платят деньги не на одной на одном энтузиазме выезжали Ну работал сначала в конторе которая пилила crm-системы под ключ я делал там круты но Джес писал чуть-чуть экспресс чуть-чуть фай потом устроился ушел из компанию устроился в этот самый американскую консалтинговую компанию которая когда я пришел начинал заниматься это грубо говоря это звонил когда

    00:00:41 - 00:02:23

  • принимать звонки когда переводить звонки на автоответчик Когда записываться штуки делали на основе тогда я познакомил Это был такой очень серьезный опыт жест тогда как раз познакомился с отрисовками некоторых штук на канвасе Ну и потом тоже так не сложилось два года работал ушел и сейчас работаю в конторе которая занимается системами для отслеживания изменений пациента для госпиталей Ну и продолжать работать в этом направлении очень интересно но я понял это больше такой тех для медицины да да к примеру вот сейчас проект у нас

    00:01:33 - 00:03:08

  • это отслеживание изменения состояния то есть нам приходит API который нужно у нас сервер напайтоне который нужно рассекретить потому что не все врачи имеют доступ ко всем пациентам здесь определенное разделение врач может видеть только пациентов с какой привязан Но это было интересно занимаюсь и тоже очень интересен Потому что много графики сейчас сначала использовали чарт для отрисовки очень очень сложно системой сказал даже Слишком сложная слишком много настраивать для обычного проекта и сейчас у нас два отдельных раньше

    00:02:24 - 00:03:52

  • разработки один это написать свою систему Ну по сути там не надо много знаний что на канвасе точку as.b соединить Ну и еще есть библиотека новая как там называется не помню уже Будем пробовать её Но это такой вот прямо сейчас занимается разработка Я помню знаю что которая платная библиотека значит по-моему да да на 300 долларов год что-то такое Все все понял да но я очень много корпорации использует вот по моему если Кстати на канвасе есть очень прикольно Я забыл когда называется она такая больше низкоуровневая по моему

    00:03:10 - 00:04:28

  • как-то не именно вообще вот самая большая проблема хайчард любой библиотеки если выбираешь это то что отрисовка идет свг идет примеру когда врачам нужно сделать изменения то может быть такое что сверху будет таблица значений а сни разделятся свэшка потому что это Диф элементы которые разделяются и ты не можешь никак соединить чтобы перенести на Следующую страницу это очень известная проблема которую я смотрел там 2014 моста коэфлоу не могут решить Поэтому если стоит выбор что нужно вот такую штуку делать это

    00:03:51 - 00:05:13

  • по-любому канвас потому что свг это может вызвать проблемы Ну да ну на канвасе на самом деле рисовать прям таблицы Это тоже не очень прикольно ну ладно я говорю это уже там мне кажется вам видней в компании уже там этот Какие решения принимать Но это просто реально на кровать недавно вроде бы Google Dogs но недавно где-то полтора два года назад что ли они переехали на канвас сначала флаг был типа переходить сейчас я не знаю сейчас он по дефолт стоит вот мне кажется там прямо вообще то есть какая-то Супер это работа была сделана

    00:04:37 - 00:05:43

  • Ну то есть Прямо эти слои все вот отслеживать клики и так далее Мне кажется это прям очень больно Хотя графики рисовать по фактус Это все зависит от самого графика есть там же есть разные гантовские гантовские вот эти вот которые знаешь как ты видишь даже есть Patcher самые простые та которая линеарны их Ну рисовать фигня ты ставишь на канвасе несколько точек и просто соединяешь но отслеживать мышку Да это проблема потому что там есть какая-то Короче проблема что когда-то наводишь на точку Ты должен добавить 10 пикселей

    00:05:10 - 00:06:21

  • сверху и снизу потому что мышка у тебя почему-то съехала или что-то такое Я пытался делать и было как раз такая проблема Ну окей ладно давай на этом не зацикливаться Тогда слушай давай то сейчас еще один быстрый Вопрос такой сейчас получается все таки на фронте больше да фокусируешься Или работаешь кактуса да да чисто фронт чисто фронт если бы кто пайтон уже как-то и не помню как последний раз или что-то Окей Хорошо хорошо давайте начнем с такой разминочной задачки Вот смотри у нас есть Creed Counter и

    00:05:46 - 00:06:56

  • что можем сделать можем использовать вот так вот Кореи аккаунтер потом что можно сделать из золота например два раза Да и Давай представим что я выведу ризалд точка Count и что пока соли можешь искать и почему что выйдет что выведется и почему мы создаем инстанцию два раза инкрементьевым потом возвращаем [музыка] а стоп подожди у нас же нету скорее всего два выведется но давай этот Давай прежде чем Ответ давать и показывать консоли Давайте все-таки расскажешь почему вы видите 2 потому что ну мне самому интересно там или ничего

    00:06:21 - 00:07:54

  • не изменится или выведется 2 потому что у нас во-первых функции внутри функции если мы так Обращаемся то было бы неплохо Наверное через This потому что у нас ledge как она называется Блочная область видимости Ну и было бы неплохо как-то обратиться к этому аккаунту сказать Что сказать что он находится во внешнем сколопе ну и плюс эта функция которая другой вопрос конечно если мы будем обращаться This мы обратимся к This который function increent у нас будет Я немножко Если честно не понял о чем сейчас речь идет то есть ну здесь смотри

    00:07:13 - 00:08:32

  • если у нас будет ЗИС точка аккаунта мы будем обращаться к который внутри инкременты они внутри creat Counter потому что у нас функция внутри инкремента внутри инкремента что если смотреть ничего нет поэтому это будет Я просто предположил что что это так Ну давай тогда чуть более детально Окей вот В текущей записи да то есть ну этот ответ получается ты говоришь 2 дай Ну не я Я говорю 0 Я говорю Мне все-таки кажется что тут есть какой-то подвох что нам нужно что-то сделать чтобы был чтоб оно приняла изменения Мне кажется будет

    00:07:56 - 00:09:16

  • Ага Так а ответ 0 правильный вот а почему можешь объяснить То есть это как бы ответил правильно уже хорошо вот но как бы почему это самое интересное ну самое сложное что не могу объяснить это вот функция внутри функции Нужно же как-то Достучаться до этого внешнего аккаунта Достучаться до внешних Алан Давай сейчас немножко другую задачку от этой идем чтобы порассуждать получше Да давай представим что у нас будет функция Вот такая вот Creed ID Просто я предполагает что возможно ты немножко там волнуешься

    00:08:35 - 00:09:42

  • сейчас я постарайся навести на мысль Давай сделаем что у нас вот так вот иди плюс плюс Так давай сделку где-то равняется Create ID и вот например допустим сейчас давайте сразу за комментин Так что сделал давай вот если будет Вот так вот если я сделаю знаешь как Консул лог Китая и три раза до что будет выводиться Ну последовательно Каждый раз будет выводиться как он называется Один потому что каждый раз каждый раз сделаем функцию подожди у нас Крита Иди вот здесь где-то идти так я не могу врубиться на что ты меня

    00:09:14 - 00:10:58

  • подталкиваешь Ну скорее всего Каждый раз будет выводиться один но не могу Наверное словить Почему Давайте покажу что будет водиться в консоль тебе просто надо будет зайти Ну значит справа Там же есть этот сайт бара открыть консоль да будет выводиться 012 давай попробуй поговорить почему можно тоже консоль блок сделать Да здесь вы видите это Ну то есть один раз Ну один раз вы видите просто вы видите 0 здесь консоль важен то есть мы создаем функцию Creta где у нас создается LED она создается этот самый колбек который

    00:10:10 - 00:11:24

  • мы вызываем Каждый раз когда мы вызываем нас изменяет айтишник плюс один интересно Ну понимание почему так происходит а не туда Скорее всего нет Так слушай Ладно давай тогда чуть-чуть попроще попробуем задачу Давай просто расскажешь немножко про теорию поговорим я поторопился сразу перешел к практическим заданием Давай в первую очередь поговорим про то что такое замыкание JavaScript замыкание замыкание механизм когда функция возвращает другую функцию функция возвращать другую функцию Ну в целом это

    00:10:53 - 00:12:09

  • одна из ситуации Как происходит замыкание но в целом как бы так глобально Как ты вообще понимаешь да здесь такая функция возвращает функцию здесь есть замыкание но в целом что ты понимаешь под замыканием то есть бывает какие-то еще ситуации Ну вот когда говорят замыкание Я всегда думаю что это у нас есть условно функция которая возвращает еще одну функцию которую мы можем использовать но создается внутри функции которую У нас есть скол по определенный Ну да то есть функция она создается в каком-то

    00:11:37 - 00:12:40

  • сколпи правильно Да да А какие у нас скобки есть в Джесси глобальный сколп и в три штуки 2 глобальный сколп У нас есть скоб модулей и функциональность скоб который находится внутри функции Ну скоб который находится внутри функции правильно скоб который внутри модулей Ну типа в теории можно сказать даже такого-то рода скоб Ну окей обычного как бы не называет да Давай скажем так а третий какой есть скоб глобальный не смотри глобальный функциональные еще один То есть модулей я говорю да какой-то мере можно сказать

    00:12:16 - 00:13:40

  • что это скоб типа и насколько обычно заворачивать каждый модуль то есть в отдельную функцию то есть какой-то мере Давай посчитаем Давай скажем так мы считаем модульный клуб Вот давай ладно еще тогда скажем еще один какой блочный Да верно А можешь привести примерно пример Я не знаю То есть функциональный скоб У нас вот здесь верно Вот у нас OK хорошо блочный можешь показать пример где будет у нас тут конь кода где у нас будет ну так скажем Ну скорее всего это блок внутри функции вот это вот когда мы вызываем аккаунт

    00:13:01 - 00:14:18

  • аккаунт минус Минус функциональный блок функции Ну то есть это какой-то функция Может просто пример блочного сколку показать или нет когда он у нас в этих как они называются в скобках этих это в целом Да давай ладно тебе мучить не буду просто сейчас это знаешь типа этот время потратил смотри ну типа по сути блочный скоб это Например и в там я не знаю типа и лсней функции но здесь например аккаунт 0 Let Cam вот один как бы видишь нет ругается такого не существует Вот нокаунт видишь не ругается они создались

    00:13:40 - 00:14:59

  • перемены создались копии так Окей Хорошо смотри Давайте помогу всем что такое замыкание замыкание это как бы в какой-то мере способность функции сохранять референс да то есть сохранять доступность к скопов которым она была создана то есть видишь Вот здесь почему вывелось 123 Да кстати Ну ладно давай перейдем выбилась 123 потому что этот потому что вот функция возвращается но она в скобки функции Create adi была создана понимаешь да и в Creed ID у него есть LED ID равняется 0 То есть например Здесь в этой функции Давай сделаем вот

    00:14:23 - 00:15:34

  • так вот Давай сделаем retur Ты же по идее можешь сделать там Windows там consel что-то там Лог либо Windows там я не знаю edivent list здесь ты можешь сделать А почему к Windows доступ есть потому что но эта функция создана в глобальным скопе да то есть глобальном смысле глобального всегда есть доступ правильно вот а вот у этой функции она была создана внутри функции Поэтому scope в котором лето равняется 0 за доступ у него будет Вот как-то так вот поэтому нас 812 хорошо с этим разобрались то есть Давайте перейдем к

    00:14:59 - 00:16:09

  • Creed Counter прям быстренько Теперь у тебя есть идея вообще почему все так происходит и почему появляется он все-таки он все-таки вывод 0 Давайте покажу на примере потому что Да вот Ну вот Еще раз про эти консоли 0 вы видите Ладно и просто да да вижу Ну раз это самое раз это тогда у нас ну в Интернете у нас функциональный скобка которая никак не влияет на изменение аккаунта и у нас просто возвращает изначальное значение а то есть подожди ты говоришь получается в интернете аккаунт никак не меняется да

    00:15:35 - 00:16:57

  • скорее всего хорошо ладно Давай я дам последнюю подсказку и и мы пойдем дальше если не получится Давай сделаем вот так вот Питер каунт и так давай просто еще раз я задам один вопрос getcount что здесь вернет есть идея то тоже вернет 0 или все-таки вернет нормально 0 до вернет А ладно давай покажу Это что такое что делать Просто ставлю так а он вернет два то есть вот есть идея Почему либо можем идти дальше Ну либо я могу рассказывать Почему так не Расскажи мне очень интересно почему почему мы возвращаем

    00:16:17 - 00:17:44

  • каунт у нас выводится два если просто его так через вроде вызываем функции потом хотим хотим получить значение через функцию нас возвращается два через Просто если мы стучимся просто в комнату нас ничего не возвращается на самом деле ответ довольно таки простой Давай я по своей любимой традиции Попробуйте навести на ответ еще одной задачей Вот давай пока тут все комментин и в любом случае мы дальше пойдем так здесь он ругается на Ну не знаю это конечно тебе вопрос Вот так подожди давай сделаем этот так и

    00:17:01 - 00:18:20

  • собственно Какой ответ будет Вот тут не равно объекты сравнивать по ссылке А это будет True или false B у нас равно а Falls да А подожди объекты ты говоришь у нас сравнивать по ссылке да А если мы Подожди если мы Передаем без спреда оператора не у нас будет труп Потому что если было должны были передать через спред оператор Да это верно Тогда у нас выйдет все верно все верно Окей хорошо Теперь со ссылкой соответственно изменения в б у нас делают хорошо Классно Классно Нет ты ответил давай теперь еще раз да то есть у тебя есть

    00:17:42 - 00:19:15

  • идея почему вот здесь так все работало вот в Creed Counter вот эти выше Ты можешь открыть и почему танки правильно давал аккаунт неправильно вот Мне кажется ответ очень просто на вообще не могу понять Ладно все давай короче уже не буду больше мучить Давай лучше другие эти проверим знания Хорошо смотри в чем прикол Давай сейчас просто расконечно для простоты А мне просто приятнее на код смотреть смотри В чем смысл мы создаем аккаунт здесь наверно немножко те запись заблудила да смотри вот эти функции инкремент они работают

    00:18:39 - 00:19:44

  • нормально То есть это функции которые созданы в скобки вот этой функции Ну сколько функций Creed Counter Creed Counter создается свой столб создается инструмент правильно А вот у них есть доступ к каунту они его Нормально Ну как бы Кремень то есть ну повышает его значение уменьшает значение но Проблема в чем проблема в том что мы здесь создаем объект правильно который возвращается result Давайте вот так сделаю каунтер Да и что получается вот эта запись она чему равняется кому равняется аккаунт правильно И вот здесь каунт в свойства

    00:19:15 - 00:20:17

  • он передается по ссылке или по значению если здесь у нас 0 по значению Да он передается по значению соответственно Ты сколько как это говорится с вот этим кому-то мне играю здесь останется значение которое ты передал понимаешь да получается в getcount у нас ссылка на аккаунт он вернет настоящее значение Да он вернет значение которому передали То есть это как бы этот как его Да если здесь например сделать просто 8 там это и B равняется А B равняется Ну 5 у тебя как бы будет false Правильно Потому что примите его

    00:19:46 - 00:20:51

  • передается по значению а объекты после посылки Да да конечно вот собственно это вот решение есть Окей хорошо я такая простая задача вот ну ладно это ничего страшного Давай попробуем еще про что-нибудь поговорить Давай сейчас посмотрю в свой списочек и что можно тебе дать Давай немножко попроще возьмем задачу просто быстренько посмотреть Давай скажем у нас есть массив здесь числа 128 1596 3 А можешь его сумму найти сумма элементов в массиве нужно воспользоваться методом радиус который вращает аккумулятор и

    00:20:18 - 00:22:01

  • посмотреть аккумулятор и как второй аргумент Передаем изначально значение самого аккумулятора но и можем можем Кстати мне интересно консоль блок Рей я бросал и Ну похоже на правду 25 OK родился Хорошо хорошо так хорошо такое хотел задачу забыл Окей давай тогда сделаем немножко другую задачу с этим все хорошо смотри у нас опять есть Рей и там есть например один а sdf Test например 15 объект Опять асдф опять 15 и там хоть просто объект давай нам нужно знать что сделать нам нужно найти нам нужно получить новый массив в

    00:21:14 - 00:23:16

  • котором хранятся только уникальные значения а только уникальное значение Да уникальное значение но значение мы сверяем по тройному Давай скажем так что два объекта это сделать Ну по тройному равно Короче смотри два объекта ну здесь Давай в данном случае что Ответ должен быть Вот такой чтобы тебя не запутывать я добавил два объекта здесь будет ответ один а сдф 15 пустой объект и еще раз пустой объект Да я правильно написал Ой один тест 15 пустой объект А из еще раз повторяться не будет 15 повторяется не

    00:22:37 - 00:23:50

  • будет объект еще будет такой ответ Должен быть то есть Удалить все которые повторяются Удалите который повторяется Ну мой массив уникальных значение потому что я изначально думал что просто вывести уникальное значение проще всего было сделать мне кстати интересно попробовать такой вариант если мы сделаем сюда массив И раскроем должен опять вернуться все ему по идее должны сейчас можно сделать рестарт из сервер при старте сервер по идее Должно все нормально встать Да ладно я неправильно один тест 15

    00:23:18 - 00:24:49

  • начали снесет оно работает А почему она сработала можешь объяснить но у нас как работает под капотом просто сравнивает значение когда он сравнивает значение к примеру объект никогда не равен этому самому объекту потому что опять же По ссылкам сравниваются Хорошо хорошо все верно все верно осмотри Есть еще такая структура надо можешь рассказать Для чего нужно вообще и чем она отличается от обычного объекта Ну вообще Map это не объект это грубо говоря массив в котором массив массивов которым у нас же вообще еще есть

    00:24:27 - 00:25:52

  • носивность а потому что у нас Map сам по себе является Ну когда мы его переводим массива у нас возвращает ключ который первый элемент массив таплов если говорить так носки является первым элементом было значение если мы переводим если мы переводим обмассив не в целом если переводить мап массив это верно но в целом Давай поговорим вообще под капотом На что он больше похож на объект или на массив Давай такой вопрос и это больше объект потому что ну который возвращает специальные функции которые мы можем воспользоваться для А давай

    00:25:10 - 00:26:33

  • такой вопрос на работе использовал Ну то есть там на продакшене А для чего ты его использовал то есть каких кейсах Ну сами по себе объектом неудобно пользоваться поэтому ума возвращает функции именно очень удобно манипулировать когда примеру нужно связать что-то если примеру ключ значение просто хочет получить через get Она всегда намного удобнее ну и плюс К примеру если мы работаем на ТС и у нас есть эпизация к примеру что в объекте есть а которая равно 5 ну и плюс Случайно у нас а будут отдыхать

    00:25:57 - 00:27:14

  • через объект Ну и просто через Map это будет лаконичнее что мы можем написать если такой если есть значение то он пропускает если нет не будет выдавать хорошо то есть ты говоришь в том плане например смотри если мы проверим ума по Типа если хес там какой-нибудь ключ и тогда мы потом возьмем Get уже где-то типизация будет правильно то есть они не будет там Возможно ты про это говоришь Ну да Давай посмотрим на примере я просто покажу Давай сделаем функцию тест например она принимает ключ который Стрим давайте

    00:26:35 - 00:27:53

  • сделаем об какой-нибудь что там будет стринг Допустим Допустим Да так ты сначала ругается Ладно давай здесь спасибо то есть получается смотри то есть мы делаем вот так вот да делаем и получается мап.гетки давай сделал так letv и быть связаться Стрим или вот а почему так происходит подожди [музыка] HS возвращает пуля Ну значит не такой же на безопасный Да можно Ну ты не знаешь Да почему так да Окей Ладно хорошо Но он же никак не влияет Скорее всего он же просто скажет есть нет и как-то какой-то внутри тайп скрипта Мы точно не

    00:27:16 - 00:29:14

  • будем точно никогда не будем уверены что типа что в будет будет именно стрингование просто сделать так что не будет ошибки а то что в undefind Это скорее всего то что внутри не имеем влияние не все верно потому что он если быть чуть более так скажем этот Чуть более точным он является тайгардом и в целом нормальный typeguard под Map нельзя то есть тайм-гард это функция которая ну проверяет что из из да да то есть функция которая гарантирует правильную типизацию То есть вы внутри пишете свою логику функция typegard

    00:28:24 - 00:29:48

  • возвращает Булин но немножко другая типизация Вы можете про это почитать Вот либо если интересно Напишите в комментариях можете сниму видос про это вот но и основной смысл это в том что у него есть немножко другая запись которая также позволяет давать скрытую информацию о типизации а вот has в данном случае не является таким тайпгардом поэтому Ничего здесь Не сработает и в целом как бы Get У него у самого типизация такая что он всегда возвращает Стрим или антифайнт То есть даже если здесь какой-то тайгард был бы

    00:29:06 - 00:30:01

  • то есть например если мы сами сейчас захотим взять и написать функцию чтобы она была Type гардом для мапа То есть у нас там обхесбой функция это все Не сработает Вот хорошо ладно давай пока мы далеко от темы не ушли а как будто написал этот блок чтобы было правильно типизация то есть давай сотру тебе нужно то же самое сделать чтобы там Давай сделаем вот так вот у нас просто концу Лог концу блок в как бы ты написал чтобы у нас ну как бы в например был стрингой сюда вот здесь вот Я спрашиваю именно через него вообще без

    00:29:36 - 00:30:47

  • разницы то есть главное чтобы пизация правильно было и чтобы код работал точно так же то есть там можно использовать можно использовать можно свою функцию написать сам по себе Get возвращает string или отдыхает не все верно все верно хорошо но туда в данном случае has не нужен правильно да получается так но у нас же как это защищает нас от того что мы будем пытаться пробиться к значению которое не существует А если совсем не существует Где же просто и так сама вернет а давай представим как есть у нас пустая

    00:30:21 - 00:31:29

  • строка будет у нас работает этот год или нет Да пустая строка пустая строка ну Не сработает как-то можно переписать О так если вы не равно в целом Да так тоже можно я бы использовал тайпов но Окей это сработает Все давай про это забудем Окей хорошо Давай вернемся к мапу возможно немножко забыл о чем мы говорили но последнее что я помню ты сказал что мап это больше такой как бы больше вспомогательная так скажем структура данных которая делает работу наш там с как бы так скажем таблицами Чуть более

    00:31:07 - 00:32:32

  • удобной да то есть ключ структуры данных более удобной но у меня есть один вопрос Если принципиальная разница между матом и объектом Давай Допустим мы пишем скрипте мы там я не запишем код Короче нам разницы нет Есть принципиальная ситуация когда можно использовать мап но нельзя использовать объект или все-таки это получить такой просто синтаксический сахар так скажем [музыка] о насколько я помню у там что так еще раз если мы какой-то еще раз если принципиальная разница в которой например ситуации в которой можно

    00:31:50 - 00:33:04

  • использовать мапнув который нельзя использовать объект То есть если к это принципиальная разница или это просто для удобства используется но структура данных Map По крайней мере я не могу вспомнить что было принципиальная Разница вообще шмап используется объект вообще использовался всегда как мам исторически сложилось что у нас есть ключ и значение это по сути являлся Так мы начали использовать этот типсацию хорошо Хорошо давай просто чтобы это долго не задерживались на самом деле принципиальной разницы есть в объект

    00:32:32 - 00:33:40

  • например в объект да А нельзя положить ключом Ну не примите через точку они примите Ну да то есть например смотри ума покатизация может быть например могу сделать вот здесь вот так вот а ну типа ключом будет массив массив стрингов и значение будет string и здесь может вообще любой тип быть здесь может быть не только примитив И это прям принципиально разница между маппом и объектом то есть в объекте в объекте ключом может быть только Стрим и если засунешь то там другие не за объект Самары еще что-то он просто Турин

    00:33:05 - 00:34:18

  • вызовет и ключом в конце концов будет этот ну строка все равно вот сделать вот равняется там 5 сделаем Консул влог object Как видишь что у нас консоли вывелось у нас вещь Ну да да Ну то есть разницы никто не будет Хорошо хорошо ладно [музыка] Так какой бы задачку дальше дать какой бы задачку дальше дать хорошо можешь немножко рассказать про Event loop не Иван клуб это механизм внутри JavaScript который Ну у нас же Джес однопоточно Но это по сути такой механизм который берет задачи ставят их там у нас есть что хип

    00:33:42 - 00:35:26

  • У меня сейчас Самое он сначала выполняет как они называются микрозадачи макро задачи сам по себе работает мы создаем какую-то задачу Он берет и выполняет То есть у нас это к примеру У нас есть очередь и он берет первую очередь и выполняет и делать дальше дальше дальше работает пока есть задача в очереди останавливается соответственно если задача нет в очереди нету ну к примеру если мы возвращаем какую-нибудь функцию которая возвращает колбек То есть у нас есть условно какая-то функция которая возвращает

    00:34:38 - 00:36:05

  • другую функцию он сначала выполнит эту функцию и Возвращение эта функция иную функцию новая которая создалась поставит в конец очереди потом все выполнит И у нас вот это вот колбек который вернулся потом выполнится ну и соответственно у нас еще есть разделение на микрозадач макро задачи и микрозадачи [музыка] если правильно помню микрозадача это любые маленькие задачи макро задачи это там рендеринг Каких какие-то еще большие задачи Слушай давай я чуть здесь я поправлю во-первых рендеринг же это отдельная стадия в

    00:35:23 - 00:36:44

  • браузере вообще ну то есть она как бы к микро макро задачу не относится это своя нативная история вот потом смотри история которой ты описал задачами то есть Давайте попробуем переформулировать а ты сказал что нас есть Hip Да правильно хип это же больше а сам у нас это самое выполняется задача У нас есть очередь нет У нас есть колбэкстейка а ты очередь правильно очередь задач У нас есть очередь задач У нас есть стек это там где уже непосредственно задачи выполняются Да хорошо XX там задача выполняется Да есть получать

    00:36:11 - 00:37:27

  • Q какой-то да то есть это очередь хорошо а получается Здесь макро таски микро тоски это что вообще такое То есть это не Где находится в очереди они в очереди находится очередь у них одна Не не конечно у нас есть микро очень много очереди Да а почему две разные очереди то есть ну в чем в чем смысл ты их разделять но есть какая-то разница между ними Ну да есть но микрозадача Ну ты знаешь или нет давай так Я просто знаю что есть две очереди микро и макро задач но какой-то принципиальную разницу что почему так Окей хорошо давай

    00:36:55 - 00:38:18

  • я расскажу Так что есть приоритет а микро тоски выполняется всегда как только освобождается Call Stack то есть только выполняется вначале выполняются Эти как его задачи из как раз очереди микро тасок и в чем у них смысл у них приоритет выше То есть это а микротоки не можешь привести кстати говоря Это как их насадить знаешь или нет Какие Ну действия нет нет полностью смотри микро тоски это всякие промисы это миточена в зервер там есть майкросок этот функция вес 8 добавили или с седьмом что ли Это просто снег

    00:37:50 - 00:39:19

  • Стик в ноут Джес так вот да они получаются летать в очередь микро taskick и как только освобождается там ничего нету в первую очередь идут как раз микро тоски Да это проми тоже назвал уже не помню хорошо И в чем их прикол а это очередь будет вызываться вызываться вызываться до тех пор пока Ну как раз очередь микро тасок не станет пустой соответственно если одна микро таскать другую микро тоску у нас как бы браузер вообще встрять может ну либо же да вот а есть макро таски макро таски они соответственно выполняется Но одна за

    00:38:34 - 00:39:47

  • другой они просто по очереди то есть только что-то освободиться к этому придет свое время Event loop там возьмет одну тачку выполнить и потом может пойти дальше свои дела какие-то делать Вот они одна за другой выполняется Ну есть Animation фрейм арендеринг там вот это reflow repaint и все такое это отдельный стадии браузера он самых менеджер вот там прям уже детально Как бы мне кажется этот Ну я например на самом деле особо детально не знаю когда он вызывает Но это вот уже прям его свой процесс если

    00:39:11 - 00:40:07

  • он когда там сам определять Когда нужно Перри рендерить скрин я так предполагает от девайсов зависит и так далее всяких настроек и от того что происходит там знаешь там насколько там задача забиты там есть возможность Перри рендерить или нет про этот процесс Мне кажется особо даже сильно знать и не нужно Давайте сможешь сделать хук который будет называться USB стоит И в чем он должен заключаться то есть значит стоит да давайте просто покажу пример надо Давай сделаем вот так вот у нас будет const your State обычный на

    00:39:39 - 00:40:56

  • false здесь у нас будет Извини был сет из да что же такое visible и Давай представим что у нас так так так так так Давай сделаем функцию мини функции здесь два вдавая фрагмент или даже добавим Button вот тут сейчас я напишу потом расскажу задачи будет он Клик с Извини был так ноты из визе было Окей хорошо давай вот здесь вот извизи был и здесь добавим фрагмент давай вот представим нас такой сейчас есть Ой ну что ж такое Старт или на У нас есть такой примерчик небольшой мы просто то глянем собственно Наш

    00:40:16 - 00:41:59

  • текст и у нас есть да и например сейчас у нас одна функция Давай просто представим кейс нам нужно часто такой код использовать мы Передаем сначала пример Да у нас здесь визи был и там если US call back там нужно передавать значит Ну вот так вот там да надо менять Привет стоит и так далее Давай представим что это неудобно Мы хотим сделать бульон стоит чтобы он сразу отдавал какие-то функции которые помогали бы нам удобно работать в трусать и так далее стандартный хук Я не знаю использовал не использовал Давай

    00:41:11 - 00:42:17

  • просто подумал что нужно сделать какой-то абстракция там чтобы работать с бульвами переменными сделаем вот на значение можем кстати вот так сделать [музыка] [музыка] которая берет сет из setstate обращается через колбек к предыдущему и делает его [музыка] и возвращается соответственно у нас сив первое значение которого будет стоить второго будут вот так вот вы чтобы использовать можем Убрать эту штуку потому что у нас изначально если был пусть будет Передаем сюда Давай скажем так у тебя проблемы

    00:41:46 - 00:43:34

  • стабилизации тебе надо исконс добавить Давайте мучить не буду Может как бы это убрать А ты вообще знакомств конструкции Для чего нужно ну к примеру если чтобы сказать что у нас неизменяемое если мы примеру Передаем строку если у нас примеру есть конфиг нам туда нужно передать строку скорее всего у нас typescreen будет ругаться на то что мы Передаем туда строку потому что строка может измениться нас нужно писать после строки чтобы у нас было неизменяемое значение Ну в целом верно Это один из кейсов но как бы typescript приводит его

    00:43:31 - 00:44:46

  • в регион летит то есть вот это вот массива То есть это был массив далее булинов либо функции он сделал тупого вот как бы в конкретный прям тип приведет что ну прям как будто константы то есть прям ваш код как будто становится можем к примеру написать что мы возвращаем можно так написать да То есть можно написать там и этот Можно так сделать Можно я просто предпочитаю Но это кому как нравится Окей хорошо в целом но руку написал Давай попробуем сделать так давай попробуем чуть прокачать То есть первый кейс Давай если

    00:44:08 - 00:45:21

  • я хочу сделать вот так вот шоу Hide Вот и давай у меня будет угол да типа три кнопки давай вот по такой сделан и еще один кейс касательно функции того А вот то что она вот так стоит То есть как ты думаешь Вот для универсального хука Это нормально или нет просто подумать вопрос то что ну просто мы функцию создаем без всяких наворотов там хорошо или нет для универсального какого-то такого хука не понял вопрос на примере покажу Давайте создадим компонент Button Давай сделаем так вот он терн Баттон Давай сделаем Просто что нас

    00:44:44 - 00:46:17

  • пробс Что у нас там будет так должно быть Да это так должно быть и здесь это я просто писаться скопировал из этого изнативного так хорошо что нашел нас ругается Да props из declayersal US Never use хорошо вот так вот они что наругать теперь мемы из not defind импорт это что мы все тогда и Давай мы сделаем знаешь как мы сделаем вот так вот ругается теперь а это я слинг Короче ладно здесь страны конфликт если в код боксе вот давай вот я просто поменял позицию теперь все работает нормально Давай вот эти два кейса во-первых у нас

    00:45:32 - 00:47:10

  • три три батона появилась и потом нас теперь это Давай скажем общий такой компонент у него есть Мема Вот как раз два вопроса есть да как во первых под вот по три кейса вот эти вот адаптировать наших и наверное Ну второй вопрос Нормально ли что у нас function просто так написано внутри хука Не ну вообще если у нас стояла задача просто у нас должен быть угол который меняет значение то я думаю что вот так вот нормально если если у нас к примеру нужно чтобы у нас возвращалась какой-то определенное значение то можно

    00:46:27 - 00:47:31

  • написать который просто будет обращаться к делать Ну или просто передавать значение в тогу мы будем передавать Я думаю это нормально если у нас к примеру если мы тогал повсеместно используем просто чтобы Да нет Да ну если True Falls True forestrufalls А если нам нужно какой-то общую написать то скорее всего Нам лучше будет сделать волью вот так вот чтобы мы передавали непосредственно Ну хорошо В целом ладно В целом просто я говорю что есть так пишет Получается уже Разницы нету между использованием

    00:47:00 - 00:48:20

  • нативного стейта Да ну то есть я скорее к этому вел Ну просто что я хотел увидеть Давай просто расскажу это рус это Фолз типа знаешь как массивом Ну да это что я хотел написать Хотел написать вторую проблему рассмотрим Так давай ты уберём ладно value так это надо Вот так вот валдинивал Я хорошо ладно давай так оставим шоу хайду берем пока что но вот Представь нас батон А вот можешь рассказать Мема Как работать с ним работал когда первую очередь про это поговорим Да я плюс-минус представляю как мимо

    00:47:47 - 00:49:00

  • работает это у нас минимализации компоненты чтобы ну у нас же каждый раз идет render если у нас пример меняется как какой-то пропс А если у нас пробс не меняется то есть соответственно Мема делает так чтобы при изменении какого-то пропуска при не изменении прокси У нас не было рендер самого батма То есть у нас он оставался ага хорошо ладно а вот сейчас если мы толить будем у нас Бат будет или нет можно этот вопрос пожалуйста ответить Ну на что у нас состояние не меняется потому что мы Передаем просто

    00:48:28 - 00:50:01

  • не должно хорошо ладно Давай я поставлю консулок консулок и здесь например сделаю рендер Да и Давай теперь ты откроешь консоль обновить страницу и чуть потыкаешь тогу два раза это из-за стриг мода Да но у тебя есть идея почему он обновляется или нет потому что скорее всего потому что то был изменяется да то был изменяется но как можешь рассказать но у нас если мы хотим чтобы он не изменялся но скорее всего обернули его в uscalback Ну окей ладно как давай пока ты пишешь Ну расскажи пожалуйста какие School Back

    00:49:14 - 00:50:48

  • работать сейчас и массив называется массив Боже я забыл слово массив в зависимости хорошо скопируем не вставляется за контур хорошо когда памяти нам скорее всего попросит сюда передать стоит попросить подожди потому что у нас стоит не будет Ну да и соответственно мы убрали то что у нас рендерится каждый раз мы сделали через Хорошо хорошо с этим разобрались Окей А давай немножко поговорим а вот тогда давай ладно еще один вопрос раз мы пошли про кэширование смотри Давай представим Так что у нас все-таки

    00:50:08 - 00:51:58

  • будет еще одна кнопка давай вот мы решили знаешь там поменять дизайн нам нужно стандартная кнопка нам нужно тут вонючая которая дефолтная ну у нас нет разницы в дизайне Давай представим что предыдущие которые компонента она была с дизайном Да вот давай просто абстрактный кейс что у нас ничего нету у нас просто передается тогал в нативный нативный элемент натянуть jsx элемент и в таком случае если смысл использовать ее school.by если мы точно знаем что никаких Мемо компонентов у нас приложение прям сто процентов Не будет

    00:51:22 - 00:52:25

  • Мы там используем только вот знаешь там где вы и вот это вот все если в таком случае Используйте сковок Ну вообще эти вот смена их используем только тогда когда мы хотим сделать render если у нас такой вот кейс то Ну зачем нам использовать кэш закидывать туда очень много значений к примеру функции другие функции оношно просто сделать просто сделать код медленнее если потому что не просто функция под капотом делать да под капотом еще много делает кроме самой функции Что изменяется что перекеширует на

    00:51:54 - 00:53:20

  • изменение Например если мы сюда просто стоит напишем каждый это будет Каждый раз при рендериться как она называется тянуть весь юсколбэк для того чтобы просто у нас кнопочка нет смысла если если мы не следим это просто ну это просто Окей Хорошо давай вот прям последний вопрос касательно из коллбэка А вот у нас вот эта функция сейчас передается внутри скул бэка верно А давай Допустим даже скажем так если у нас используется US call back Будет ли у нас какой-то Профит с точки зрения функции созданных

    00:52:39 - 00:53:58

  • Каждый раз при вызове хука то нас каждый раз к обновляется об у нас каждый раз будет вызываться на Уют стоит верно и по идее если у нас нет skulback это у нас вот эта функция будет каждый раз заново создаваться верно Ну то есть у нас будет каждый раз новый референс из-за этого и даст если мы используем usculpack Будет ли какая-то хотя бы Выгода с точки зрения того что нас меньше функции будет создаваться каждый на каждый render То есть у нас не создается функция usculpaction как кэширует Да он типа по

    00:53:19 - 00:54:12

  • идее старый старую функцию возвращает то есть Будет ли это с этой с этой точки зрения какой-то Профит или нет не Ну мне кажется что нужно еще помнить что как бы ну вот Профит который мы достигаем то что у нас типа не будет равно что все равно в кэше начинается скапливаться какое-то значение но мне кажется если так сравнивать лучше не использовать когда когда его лучше использовать когда его нужно использовать просто так везде пихать тоже не стоит доволен ответом хорошо Не я просто хотел знаешь как это подловить на такую штуку

    00:53:45 - 00:54:57

  • часто делают Я часто делаю прям очень часто проходит на неопытных ребятах то что они думают что все-таки поможет создавать меньше функции Free рендере но это неправда потому обычная функция и ты вот это вот компоненты [музыка] опять создаться это наоборот будет хуже если мы не хотим рендера какого-то компонента который внизу у нас небо используют Ну да да все верно то есть количество функций будет таким же но заодно через колбек свой этот свои действия под капотом будет выполнять да Хорошо хорошо Здесь отлично

    00:54:29 - 00:55:46

  • давай тогда Давай тогда здесь разобрали хорошо задачки есть да чуть подумаю чтобы дать так вот прикольная задача смотри смотри сейчас Давай за комментин весь код который у нас есть сделаем вот так вот сделаем наверное Или давай а поставим просто удалим Ладно давай заново сделаем об экспорт здесь дефолтный экспорт Apple же function да так function и Давай сделаем вот так вот у нас есть здесь будет что там виндовый винт Давай представим просто что у нас есть компонент допустим здесь есть какой-нибудь гифчик

    00:55:10 - 00:56:36

  • Ну что ж такое дивчик здесь есть лорам допустим какой-то текст и у нас есть такая абстракция которая называется Windows для чего она нужна давай пока на типизацию ты заигнорируй ее Я сейчас напишу вот в чем смысл как она работает ну это по сути просто абстракция чтобы мы могли легко навешивать ивенты на Windows в реакте да то есть мы не будем там сами юзафекцию это писать мы просто создадим через эксперимент Windows Event то здесь у нас будет Type например клик и здесь будет хендлер Давай скажем вот так вот Консул

    00:56:04 - 00:57:17

  • Консул лог Клик Мида хорошо а так давай сделаем теперь еще вот так здесь общины они опциональные сейчас я добавлю интерфейс интерфейс Windows Давай сделаем так ивент это будет Стрим эндлер Ну ладно давай вот так вот сделаем воет ивент и собственно общего с это что будет Ладно возьмем просто обжиг там есть отдельный тип Я забыл как он называется Да спасибо что здесь добавил эпизацию Смотри а сейчас что у нас будет так так Клик А это ивент ивент Клик смотри что у нас ругается общины они опциональные хорошо

    00:56:40 - 00:58:14

  • так смотришь у нас будет а сейчас сейчас Да у нас компонент в целом статический как может проверить Да там обновить приложение на склики работает да и у нас по сути компонент статический то есть Никаких действий здесь не происходит Вот Но если мы добавим какой-то стоит Да здесь например сделаем State Falls и здесь опять Вот извини был и сделаем сет Изи был добавим сюда такую логику и добавим Button опять же у нас будет того и будет он Клик сейчас чуть подготовлю с этой связи был у нас теперь появляется такая проблема

    00:57:36 - 00:59:03

  • Смотри сейчас объясню мы кликаем все нормально работает происходит угол да А какая у нас появляется проблема то есть смотри у нас есть эффект и здесь каждый раз если добавить толок например Консул лог эффект То есть у нас каждый раз при вызове Клик Мида у нас будет из эффект срабатывать Видишь там влоги Button и вызывается юзефект Вот и почему так происходит так происходит потому что мы передали свои вент передали хендры хендлер и передали options и как видишь вот здесь хендлером каждый раз заново

    00:58:27 - 00:59:47

  • создается верно Так я накосячил здесь должен быть Вот так вот А как можно сделать компонент Windows Event более удобным то есть Сейчас сейчас да все-таки хочется иметь вот такой вот API чтобы нам не нужно было значит во внешнем компоненты каждый раз заворачивать Ну нашу функцию правильно но это неудобно Тогда зачем вообще этот использовать Давайте сразу эффект напишем А вот то есть мы хотим как бы так скажем одной пулей сразу двух Зайцев убить Мы хотим оставить оставь удобство этого компонента но мы

    00:59:11 - 01:00:23

  • не хотим чтобы у нас каждый раз вызывался Юза эффект зачем мы просто каждый раз добавляем ивент а хэндлер удаляем ивент хендлером то есть зачем эти периндеры Да у нас как бы Клик есть и все как бы нам норм да то есть Нам нужно раз в Клик там ну совершать какие-то действия а заново и вен лист и навешивать не надо то есть как можно обойти Вот эту вот проблема с депсами в данном случае то есть ты понял задание или не совсем то есть проблема в том что у нас хендлер каждый раз при создается Мы хотим этого

    00:59:47 - 01:00:38

  • избежать ну и соответственно потому что у нас эффект называется еще раз и каждый раз создается функция которая удаляет все правильно все правильно но Смотри сейчас еще раз она объясню потому что немножко так хаотично рассказал А есть хэндлер и в целом он может меняться Да потому что сейчас у нас статический ну так скажем если мы вынесем как бы наверх назовем Как там хендер Тамер у нас будет статический Давай представим что здесь могут использоваться всякие стоит здесь может использоваться что-то из Тора эта

    01:00:14 - 01:01:16

  • функция динамическая но мы хотим сделать компонент Windows удобным чтобы вот при изменении хендлера у нас не перенавешивался ивентлер на Windows не вызывался заново Юза эффект НАСА на не вызывался это листнер Но мы хотим чтобы все таки когда вы когда мы кликали а функции у нас вызывался актуальная самая последняя вот нам нужно получать актуальную функ внутри этой вентлизнера но также нужно чтобы эффект каждый раз не вызывался вот что здесь можно сделать есть какие-то идеи или нет хэндлер US call back

    01:00:47 - 01:01:56

  • вообще можно обернуть но я говорю это неудобно То есть каждый раз когда мы используем Windows нам нужно с этим сидеть как бы нянчиться правильно вот и надо Ну то есть давать скажем так задание является в том что нам нужно поменять что-то в компоненте Windows нам обязательно сохранить Вот то что у нас оно как А не все все я понял то есть запись должна меняться [музыка] у меня такой вопрос а и вот мы нажимаем на кнопку да да это тоже какой-то эффект дает на Windows просто интересно тогда я сам виндов ивент

    01:01:22 - 01:02:39

  • находится это просто находится не я просто хочу посмотреть где он в доме находится где вообще клики происходит не не в доме в доме на всем винда клики происходят вот в дом ничего не рендерится тернал то есть так скажем этот компонент хук так скажем да А мы просто Но если хук вернешь проблема такая же будет ну то есть у нас виндовый винт это будет хукон там ЮС виндовый винт и будет такие параметры передавать это в целом в целом будет ну как бы такая же проблема Так ну честно говоря как-то нету каких-то идей что

    01:02:07 - 01:03:40

  • сделать просто функция будет возвращать Ну Хеллер Каждый раз будет функция да Ну вообще идея правильно надо что-то с хэндлером сделать вот но нужно обойти как чтобы чтобы он оставался правильным эффекте но его не было депсах остался правильным не было а так мы сможем его здесь здесь обернуть Покажи как ты его вернешь так Ну я сейчас возьмем серый будет не не Подожди подожди если ты сделаешь хендлеров я смело так У тебя каждый раз он будет заново вызывать Ну да ну нас видишь Проблема в чем то есть у нас

    01:03:11 - 01:04:41

  • функция она прям создается вот пропсах внутри да Ну давайте подсказку небольшую дам что юзема и Юз колбек здесь не помогут Это неправильное решение знаешь почему потому что Ну то есть ты же не знаешь в конце концов какие-то стоит и здесь используется правильно здесь стоит в компоненте может быть то есть если хочешь делать его надо Ну делать там где создается функция Вот здесь внутри компонента ты не знаешь какие реально зависимости то есть вернешь его School Back а в итоге окажется что Ну тут еще

    01:04:16 - 01:05:10

  • какие-то дополнительные зависимости должны быть Вот поэтому это не выйдет Давай я тебе просто там чуть времени Ну как бы еще подумать секунд 10-15 и если нет как бы нет И я расскажу просто честно говоря не знаю чтобы ну у нас задача убрать просто хендлер из dependencer правильно Ну да Ну просто вот так вот не уберешь ее верно потому что неправильно будет Ну да ладно самом деле здесь Ответ простой но взрыв создать на нее средств на хендлер Не сработает если самый первое значение получишь надо создать Вот так и тебе

    01:04:46 - 01:06:01

  • надо каждый раз обновлять Ну можно вообще в рендере делать вообще если прям самый Колхозный можно так вот каждый раз его обновлять в рендере и ладно Вот после этого с этого момента ты можешь Дописать функцию Давай мы сделаем так вот что использовать Ну ладно да короче этот ну просто риф Коран правильно использовать у тебя идея такая ну Да просто возвращает функцию Ну ладно это неправильно Знаешь почему Потому что Рив Коран типа он то есть смотрите в начале передал реф правильно ты один раз передал рев а

    01:05:27 - 01:06:40

  • ссылка на Лев никогда не поменяется поэтому use эффект вызовете только один раз вот эта функция она вызвать только один раз принявшего рендере вот ну При учете того что остальные там ивенты общем с не будут меняться так вот что получается каждый передаче рефточка Карен А у тебя вот в этой функции вот у тебя по сути первый раз она сразу вызовется ивент лица запомнить не Лев а то он функцию запомнить понял самую самую первую Да он самый как ему Карен передаешь понимаешь понял проблемы или нет или не понятно объяснил

    01:06:13 - 01:07:21

  • честно говоря смотри Давайте скажу что Решение вот такое на самом деле сделал вот так вот а и почему так происходит собраться немножко мыслями чуть понятнее объяснить смотри у тебя Юза эффект вызвать один раз Почему Потому что зависимости не меняются вот Ну в данном нашем примере общем у нас не передаются всегда будет антифайт ивент всегда будет ну клик и у него референс были одинаковы то есть ничего не изменится так вот дальше какая проблема есть дальше проблемы есть из то что один раз у нас вызвать Союз эффект вот эта

    01:06:46 - 01:07:46

  • функция соответственно вызывается только один раз только один раз когда она один раз вызывается что она сделает она сделает вот так вот конус FN Ну давай просто чуть-чуть перепишем Да наш код значит вот это FN Что будет при первом самом первом вызове это будет самый первый instance вот этой функции правильно вот и получается мы его и Передаем понимаешь то есть у нас вот эта функция FN никогда не поменяется потому что у нас вот эта функция никак не будет зановозываться понял понял или нет Или я теперь понял

    01:07:19 - 01:08:26

  • Ну это Это разница такой никто не сделает понимаешь потому что мы один раз получили функцию вот и у нас рев как бы ну мы его не дергаем никогда Да конечно объект и он хранится там Коран ссылка одна и та же останется Но Карен Мы оттуда один раз достали так вот и проблема в том что актуальный Коран получать А мы его не получаем актуальным его один раз только взяли все так вот Чтобы избежать Чтобы избежать нам нужно просто обертку создать то есть она Я просто не знаю такие темы знаешь Обычно когда видео объясняешь

    01:07:56 - 01:08:56

  • одну как будто немножко готовишься так с это сходу немножко сложно бывает вот объяснить но надеюсь ты понял Не я понял я понял да то есть заворачиваешь и В целом все так Окей Ладно ладно у нас уже больше часа получилось Я так предполагает и устал и Наверное это немножко плохое настроение Вот в целом Давай немножко подведем итоги Давай начнем заново самого начала на самом деле честно скажу чуть общались в начале рассказал про свой опыт наверное здесь какой-то моей стороны знаешь такая ошибка была я подумал зачем там какие-то

    01:08:26 - 01:09:41

  • простые задача Сначала с хордовой начала это немножко усложнил эти собеседование правильно то есть немножко взволновался в начале Ну так запаковала я как-то вот это вот сразу растерялся собеседованию не готовился вообще мне было интересно какие у меня проблемы Ну да есть пробелы вот примеру самых простых ивент лупе начал путаться Вроде такая достаточно простая задача Окей Ну ладно смотри то есть в целом 19 лет прям отчаиваться сильно не надо До сих пор 19 описал Ну уже сменил уже изменил уже 20 Ну

    01:09:04 - 01:10:15

  • ладно короче все равно я говорю То есть все еще впереди то есть ничего отчаиваться не надо в целом прикольно то есть многие там возрасте в универе учатся особо там писать не могут У тебя какая проблема Мне кажется основная да то есть и начал работать и ты как-то вообще забил то есть на всё да то есть я могу писать код А я так предполагаю что кот в целом ты пишешь нормально то есть Ну чтобы он просто работал да есть задача надо её выполнить у тебя как бы с этим нормально Ну то есть плюс ты скорее всего тут я

    01:09:48 - 01:10:38

  • рад на рейке живёшь так предполагает Она говорит на английском там разговариваешь Английский знаешь что в целом тебе искать там на 100 грфлоу не сложно то есть к решению ты можешь прийти но проблема какая то есть у тебя проблемы как и у многих разработчиков то что блин ну то есть вроде работаю Вроде бы как-то там нормально что-то там деньги получаю А зачем дальше что-то учить а вот могу написать Но это на самом деле не так Потому что знаешь это всё зависит от того что ты пишешь смотри как с реактом да то есть мы

    01:10:13 - 01:11:05

  • убедились же то что у тебя есть пробелы в рендерах в целом пока ты пишешь какое-то приложение которое не надо оптимизировать топишь хоть там по десктоп Да и в целом там не особо как-то часто обновляется компоненты Там норм да то есть там все нормально работает но если начнет писать Например еще что-то либо будет что-нибудь сложное там я реально много рендеров или Dragon дропы тогда уже начнутся проблемы и В таких случаях уже ну полезно понимать как работает реакт и совет единственное которое могу дать это реально ну то есть

    01:10:39 - 01:11:42

  • и пишет фичу и ты должен примерно в голове понимать вот эта функция Она никогда не меняется значит когда Ну то есть дочерний компоненты они не должны никогда рендерить то есть открыл там профайлер реактовский ну то есть с ним знаком правильно надо открыл его То есть замеряешь там девочки это операции там Кликаешь на кнопку и смотришь Блин что за фигня то есть меня тут вообще все рендерится все приложения то есть что это за дичь начинаешь искать на начинаешь разбираться Ну либо консулоге расставить

    01:11:10 - 01:12:02

  • там есть хук Например я на канале снимал который называется White update там есть апдейт короче как-то так да то есть там можно пропустить посмотреть какие пропсы поменялись Почему зари рендерился компонентов это прям не идеальный вариант но в целом Может помочь тебе разобраться Да но в конце концовка ты пишешь реакции тебе нужно как-то более осознанно к нему подходить то есть понимать что такое Мема понимать что такое бэк там Юза мемы и так далее То есть И вообще его И вот я сонный так скажем хуки Да и его

    01:11:36 - 01:12:31

  • так скажем методологию А вот и на самом деле реакция не настолько сложный то есть пару хуков есть и нужно понимать там референсы и как он под капотом чуть работать что он работает семью то был стритом То есть все понимаешь можно писать нормальный код это не так сложно а часть Он из-за этого такой прям и Ну не знаю мне например часть Он из-за этого и нравится да а с реакция с этим скриптом То же самое то есть в целом Я прошу конь код написать там вот здесь вот например ты знаешь да мап тоже значит с ним скорее

    01:12:04 - 01:12:58

  • всего работал ты его нормально применяешь но понимание нет да то есть дома прикольно использовать для чего нужен Ну как бы понимали нету скаутерами то же самое с референсами то есть какие-то такие базовые прям задачи ты решаешь нормально но когда уже знаешь какой-то микс появляется ты уже начинаешь теряться то есть видно что ты умеешь писать код и видно что есть такой задачу дать ты можешь разобраться и решить её То есть она бывает ребята реально по теории норм прямо вообще отлично но вот прям даже код писать

    01:12:32 - 01:13:32

  • такой блин значит такой понимаешь что ну то есть прям по теории значит ли там медлые некоторые так ответить не могут там пишут код там задачку такой там вот прям пять минут там 10 минут сидеть там торчать и то как-то не до конца напишут у тебя в этом плане наоборот но база нужно знать прям база нужно хорошо знать нужно разбираться и нужно понимать что ты подтверждает Как это работает и как твой код влияет там ну на твое приложение да и на то там сколько будет Сколько будет там всяких рендеров Да там

    01:13:02 - 01:14:02

  • она какая будет сложность кода и так далее То есть что вообще происходит в целом фидб какой-то такой да то есть нужно прям базу подтягивать не только реактор но и Джесса Ну слушай реально вот если честно говорит это не значит не в обиду там и никак там тебя Знаешь оскорбить либо принизить просто Например если я брал бы на метла Я скорее джекнул бы то есть я брал бы на Джима Я бы взял затяну То есть ты пешку отца нормально Ты можешь разобраться ты можешь дойти она жена Я взял бы ну как бы вот Но у

    01:13:32 - 01:14:30

  • тебя опыт работы намного больше то есть должен как минимум метлом быть уже как минимум уверенным вот своим опытом и это как бы Повод задуматься да такой в целом в целом наверное у меня на этом все А если кстати такой интересный момент на нас норвегией Может расскажешь там буквально там на пару минут что это за история как туда Переезжал и как там вообще с рынком АйТи и так далее Мне кажется многим будет интересно как такой финальный бонус Ну вообще как-то [музыка] просто Ну я сам из Украины хочется в политику

    01:14:01 - 01:15:15

  • уходить Ну да когда началась война переехал Ну и устроился в компанию вообще рынок идти в Норвегии очень сильно голодает Если есть возможность куда-то ехать то скорее всего выбор может пас на Норвегию потому что несмотря на высокую цену жизни здесь квартиру всегда зарплата остаются деньги чтобы купить себе потусоваться там купить что-то прикольное себя Да конечно проблема норвежского рынка это то что тут очень сильно не хватает никаких специалистов войти берут гребут все те кто могут писать код уже находят

    01:14:42 - 01:16:01

  • себе работу Ну да думаю так и есть в плане вилок ты вообще-то есть понимание какой там Junior сколько там там в год же обычно говорят Ну смотри Джуниор в год может получать сейчас доллары перевести не говорил евро Я говорю там ребята 42 до 50 75 но и сеньор принципе там уже от 90 и за 100 до прикольно тысяч Ну на самом деле насколько я знаю мало кто столько платит в Европе но не ну в Норвегии просто проблема того что нету специалистов и поэтому очень большая вилка я понял понял Окей хорошо хорошо Прикольно Прикольно

    01:15:26 - 01:17:14

  • Ну самуте зашло даже налог высокий там сколько 30 процентов 35 Да да зарплаты 35 процентов 35 до зарплаты но тут налог он динамический то есть чем больше зарабатывает до прогрессивный чем больше зарабатываешь тем больше налог Ну да да Хорошо хорошо Классно Классно Ладно давай на этом закругляться я так предполагаю что уже устал Спасибо тебе большое за то что выделил на канал показал свои возможности вообще очень хорошо что пришел как раз это будет толчок такой что можно можно дальше сидеть что-то

    01:16:27 - 01:17:49

  • сидеть читать очень полезно было Спасибо большое Все ладно тогда давай удачи тебе Пока пока друзья на этом У меня все если есть пожелание пишите обязательно в комментариях также не забудьте подписаться на телеграм-канал там я каждый день выкладываю дополнительный пост и если вы хотите записаться на ревью точнее отправить свой проект на линию либо записаться на собеседование тоже переходите туда сообщение есть секреты о том как это сделать всем хорошего дня всем пока

    01:17:08 - 01:18:05

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    Middle .Net Developer

  • Сущенко Татьяна
    Сущенко Татьяна

    Senior Product Manager

  • Гудков Денис
    Гудков Денис

    Middle Python Developer

  • Курочкин Константин
    Курочкин Константин

    Ведущий программист

  • Гудман Макс
    Гудман Макс

    Backend Software Engineer (PHP)

  • Гребенкин Антон
    Гребенкин Антон

    Senior .NET/C# developer

  • Ахназаров Фёдор
    Ахназаров Фёдор

    Middle DevOps Engineer | Tbilisi, Georgia

  • Шорохов Дмитрий
    Шорохов Дмитрий

    Middle C# .NET

  • Жуков Александр
    Жуков Александр

    Senior PHP-разработчик

  • Мазикин Павел
    Мазикин Павел

    Middle python developer

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru