Подготовка к собеседованию на Frontend Developer
Менторы
Специалисты своей области, которые смогут помочь вам
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
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
всем привет на очередном выпуске от собеседования сегодня меня зовут владислав из компании деле mobile рядом со мной стас из компании хабр сегодня мы собеседование слова владислав представьте расскажи сколько тебе лет всем привет мне сена след сейчас я живу в казахстане в городе алматы на данный момент работаю в веб-студии как и junior front-end разработчик ok расскажи как ты попал во front-end вообще во фронт и на самом деле мой путь такой достаточно долгий сначала я решил просто изучить программирование
00:00:04 - 00:01:27
войти так сказать войти посмотрел на java понял что там эти интерфейсы которые можно с ней построить они мягко говоря такие себе мне больше хотелось визуала ну и пошел по пути наименьшего сопротивления сразу во front-end а это вообще как давно было вот и сказал что тебе [музыка] около двух лет назад до 15 лет ты занялся таким программирование мужа я тоже хочу неплохо молодец а почему да вот ну два frontend понят игры что тебе не нравилось как интерфейс выглядит но там вот кроме фронтэнда же есть там не знаю интерфейсы которые там
00:00:47 - 00:02:18
для приложения делаются можно же было туда пойти почему-то захотела вот именно web ну браузер мне кажется более доступной чем мобильное приложение ну то есть те понравилось что можно очень быстро начать писать код и дальше все работает ничего не надо ставить классно расскажи тогда какие задачи сейчас решаешь на текущей работе с чем сталкиваешься сейчас на мне висит один проект которая делала на view а так по большей части ну как полагается web-студии то бесконечной правки и такая работа но может какую-то задачу выделишь прям
00:01:36 - 00:03:01
такую сложную откату не можешь тоже долго работать много всего изучить самая сложная она я думаю произошла даже не на работе с моим под проектам которые сейчас делаю я сейчас работаю над десктопным приложением на электроне и с использованием framework of you ну и камушка конкретным не знаю кисть сказаниям что что у тебя там вызвало боль или трудность тут скорее даже больше не по фронтэнда во франции я там ничего сложного нет это обычный в приложении тут скорее больше в такой части работе системы с
00:02:20 - 00:03:42
файлами конкретно с картинками их обработкой маккейн утверждение что фронтэнда сложного ничего нет это конечно вспомнил сейчас мы это и проверим это мы будем еще проверять ok расскажи тогда почему вообще решил пройти вот это собеседник потому что ты сейчас работаешь джуном ты идешь себе звезды джуна но вроде получается что ты уже джун чтобы ты хотел узнать хотел бы ну самое главное проверить себя и насколько соответствуют жену и возможно ли уже нужно продвигаться дальше изучать более сложные технологии
00:03:02 - 00:04:23
например прогрессе web applications очень хотелось бы туда в ту сторону двигаться сейчас мне worker и эти немножко тежеловато не особо туда вникал авеню тебе как вот это я так понимаю твой первый фреймворк ну фронтэнда и пока единственный ну и как тебе ощущения от работы с ю очень даже приятно и он очень дружелюбный а можно в сумме с чем сравнить ну а есть может быть во вью что то что тебе при мне нравится и вот очень сложно следим работать ни с кем не сталкивался ну ничего страшно это это с опытом ты
00:03:48 - 00:05:13
увидишь что там есть вещи над которыми можно можно поработать в экосистеме view вот давай тогда влад немножко пар формата что скажем и небольшое вступление перед началом собеседник значит формат у нас какой у нас будет три блока вообще мы надеемся нам хватит одного по java script у но если нам не хватит то мы догоним и все обязательно блоком по html и css там будут такие хорошие вопросы собственно а потом подведение итогов и будем закругляться но и дисклеймер маленькие у нас также появился рубрика
00:04:33 - 00:05:56
sb киндерами вот так же появились отдельные способы их похвалить за их работу на патреоне поэтому кто у кого есть желание подписывайтесь на их и наш patreon оставляйте заявки на backend frontiers у которых есть друзья бы киндеры показываете выпуске им ну и оставляйте заявки участвуйте в от собеседованиях публичных это очень интересно ну что поехали ну что давайте до приступим ну как уже влад сказал у нас будет большой блок по джессу вот и мы тебя здесь будем конечно спрашивать вещи все таки пазовый наверное вот но они для
00:05:13 - 00:06:52
джона мне кажется тоже сложные для понимания как это работает вот первую очередь давай поговорим про то как мы объявляем переменные то есть ключевые слова лет const и war который уже как бы устаревший вот как ты понимаешь во первых когда это и будешь использовать лет и const и в чем как ты думаешь вообще принципиальной разницы между ними нет это объявление этой переменной который мы будем еще изменять дальнейшем accounts это это константа мы и дальше не планируем изменять может быть не знаешь никаких подводных
00:06:04 - 00:07:22
камней в плане того чтобы менять как-то переменную то есть у нас с тобой есть разные ну типа данных анализа конечный технический термин но у нас тобой есть какие-нибудь строки числа есть объекты вот если мы присвоим тот же const объект мы же можем его менять куда мы можем изменять в таком случае несменяемость реализм до тип объекта но короче говоря const он все-таки не про то что мы не можем значение поменять а скорее про ссылку все-таки скорее да окей ну давай тогда сварим сравним вот war это вообще супер вообще первый
00:06:44 - 00:08:19
способ объявления джей-си который появился вот в чем вообще ключевая разница фара и вот этих двух остальных способов у фары насколько помню нет блочной области эффективности то есть где они объявили она глобальная а это как рамолино ну то есть мы можем в джесси сделать просто обернуть переменную фигурными скобками и если мы обернём тот же виталик он стал мы его не сможем уже в нете фигурных скобок или вне функции товаром будет особенно виза ну то есть я могу написать функции war фу равно 1 выполнить эту функцию
00:07:31 - 00:09:19
после выполнения функций я могу обратиться винду . фу имя там будет единица да по-моему до war конечно не так работает жестко если бы это было так мы бы конечно вообще страдали и лет konce появились бы гораздо раньше там ravens вот ты затронул вот эту область видимости давайте все-таки разделим какие области видимости вообще бывают вот и назвал блочную какие вообще еще есть полотна и и функциональная она еще получается что гала-шоу глобальная глобальной за да вот мы разобрали что war точно не глобальные потому что это
00:08:28 - 00:09:53
мой очень странно дано винда увешать вообще все что надо долины глобальный объект как ты думаешь все таки в какой области работает war ну если логически предположить так-то квар это все-таки блочное или господи но блочно у нас где используется у нас с тобой по дочь на уже есть способы определения переменных ты уже сам сказал что у вас есть лет const они за того что у нас с тобой остается только на средства только функциональная да точно а в чем вот эта разница собственно в этой области видимости но вот есть
00:09:10 - 00:10:32
функционально есть блочная какой она вообще разница что что то что то честно сказать точный ответ я не дам но не приходился каким циклы писать допустим с варом с иваром нет не приходилось но уже пришел после с 6 до ну вот раньше было просто такая проблема что писали цикл из ворам и и счетчик мог перескочить на какой-то следующий цикл после этого потому что он объявлял новые функции вот цикл у нас блочный поэтому можно было одной переменной случайно перес пользуйте там и там и особенно с вором в чем ты можешь написать два раза
00:09:53 - 00:11:16
там var ay равно 1 там war ae равно и что-то еще это все равно будет 1 тот же это один тоже идентификатор а и который т.к. через ворота не будет ошибки что типа уже идентификатор определён ты его просто перезапишет тем значением которые ты указал и все очень swarm очень многое таких вот поведения неочевидных есть и вот поэтому и придумали это const которые работают понятнее мне кажется даже с ними сложнее себе выстрелив ногу то есть ворам обычно очень сильно стреляли в ногу когда забывали просто отследить
00:10:37 - 00:11:49
какая перемена объявилась на уровне функции кто там konce попроще окей давай тогда поговорим вот про типы данных то есть я уже привел пример когда у нас с тобой есть строки там числа и так далее то есть объекты вот но они называются и мутабельные и мутабельные типа данных но еще обычно матабеле называют ссылочные типы данных давай с тобой разберемся тогда в чем вообще ключевое отличие этих типов данных вот почему они в эти мутабельные мутабельные так а ну веди бандосы в как раз в контексте этого конста и
00:11:15 - 00:12:51
мутабельные скорее нет мутабельные это объекты и мутабельные то настройки че лай и все остальные кроме всех кроме объектов их чем-то примитива обычно до примитива за что а в чем собственно этот смысл mouth обильность как это вообще работает то есть ну почему я не могу там что-то сделать и мат обильными и что-то могу висмут обильными ну как я думаю мутабельные мы с ними работаем через с теми объектами мы работаем через обжиг прототайп с массивными через рэй прототайп нет с массивами мы тоже работаем
00:12:02 - 00:13:34
уже конкретный сырым да точно могу сказать что это вообще не с прототипами связано прототипы это вообще бы другое да это просто какие-то ну какие-то значения вот хочется понять как ты понимаешь что как какая-то вещь она ему табельное какая-то мутабельные как то понимаешь что это будет работаем коде как ты различаешь вообще не знаю как ты вот можешь из кода понять что здесь не могу значение поменять а здесь могу как я думаю это все вот эти константы ну то есть ты это связываешь с тем как то объявляем переменные да так
00:12:48 - 00:14:01
ну вообще на самом деле как раз это штуки параллельные то есть твои переменная это просто указать или куда-то и указывать они могут на что угодно давай наверно какой например покажем чтобы было понятней у тебя был хороший пример про замену одной буквы в строке да вот добавить потом посмотрим пример какой-нибудь строки вот и что я хочу сделать я хочу чтобы у меня вот в этой переменной давай даже так ждем лет на всех случай чтобы ничего сломался мы хотим в этой переменной поменять ну допустим первый символ
00:13:30 - 00:14:56
сделать его x как ты думаешь что будет здесь происходить [музыка] насколько я а я вот не уверен по моему у нас строка не изменится а почему ты так думаешь потому что таким образом для чего тогда существует метод replace это хороший вопрос ну давай тогда разберем что делает метод replace replace ищет символ в строке и его заменять на другой и все ну и дает из сроку окей как от него то хорошо давай это свяжем с тем вот как я сейчас пытаюсь заменить почему у нас есть метод replace и почему я вот пишу такой код и и казалось бы он
00:14:17 - 00:16:05
должен работать почему в отдельно тут надо во первых я немножко в клинике нас сказать что если вы пытаемся закон свою лошадь фул в скобочках нолик то нам все-таки выведет первый символ этой строке ну давай напишем дальше что мы хотим посмотреть что символ поменялся а почему взамен то не работает . я точно помню что именно так я получал первый символ но чтобы его заменял да ну как ты так вот ты думаешь вот почему и мы не можем сделать вот здесь такую замену как я могу это максимально понятно объяснить это наверное что то строка
00:15:18 - 00:16:46
работает только на get tune net сеттера получается мы не можем и это прям сложно как то давай дальше пойдем давай мы с тобой посмотрим другой пример теперь я беру объект и у него будет x1 вот почему я могу в объекте сделать вот так base x равно 20 вопросов во первых будет ли это работать во вторых почему вот эта штука не сработает а вот эта штука сработает видим и мы возвращаемся к тому вопросу омут обильности и имут обильности потому что с объектом это точно будет работать так как у него это параметры объекта
00:16:11 - 00:17:52
со строкой происходит когда тогда магия давай попробуем просто разобраться в счет такой объект уже в скрипте вот фундаментальной основу объект вообще чем нем есть для чего нужен объект это список параметров которые внутри него и его свойств получается вообще вообще мне кажется самый главный самое главное в час подаем построена то есть и борта же но объекта построим получается здесь строка born объектах нет это это примитив мы получается не все построен на объектах да ну кроме pretty примитивов окей но
00:17:09 - 00:18:45
про слово параметры она немножко такое расплывчатая все таки у нас есть в объектах ну все основные вещи это ключ и значение то есть у нас объект представляет собой такую структуру которая хранится пары ключ-значение все больше в нем принципе ничего нету то что там прототипа это все дополнительные всякие штуки в целом его задача вот такая вот и когда мы делаем вот так x мы здесь не меняем цифру 1 то есть число 1 она не меняется она остается в памяти где-то лежать мы не трогаем когда я пишу bore x
00:18:01 - 00:19:26
равно 2 я меняю то куда смотрит этот ключ то есть ключи 1 раньше смотрел на значение единица я поставил двоек он начинает смотреть на двойку вот почему это не работает со строкой потому что строка является значением я не могу взять и поменять вот это значение которое примитив если я бы мог бы так сделать то есть представь что у меня был бы написано бар равно фу если бы это работало то у меня и бар тоже по поменялся и это java скрипте сделать нельзя минут там еще вопрос с памятью связано что а если ты захочешь не 1 куб имеет
00:18:44 - 00:20:03
вставить две буквы например что должна сделать строка внезапно увеличится по размерам это было бы очень и оптимально да но ключевой смысл в том что значением и примитивные вообще менять не можем то есть они существуют как есть мы всегда ссылаемся на одни и те же значения если есть у нас в программе единица то весь код который он работает будет ссылаться именно такое значение на эту единицу и нельзя поменять во всех участках эту единицу другое число нужно поменять ссылки вот и здесь очень важно понимать
00:19:27 - 00:20:29
что то что ты пишешь там допустим конус что-то не означает что значение внутри нельзя поменять если там будет объект ты можешь поменять 1 ссылок внутри объекта вот окей плат но я бы еще поговорил о том что делать с объектами если мы не хотим их менять можно ли как-то запретить менять объект вроде как можно да я честно не знаю как они приходилось тебе сталкиваться с тем что она не хочется чтобы тебя объект ну чтобы мог кто то влиять на него какая третья сторона особенно в объеме с хорошей очень актуально до вот меня
00:19:58 - 00:21:21
хороший пример по view а если ты не хочешь чтобы у тебя реактивный объект был реактивным то есть отключить реактивность что тебе надо сделать чтобы отключить реактивность то есть запретить честно я не знаю но это такая девушка продвинутая не можно потому что во вью когда ты сталкиваешься с тем что тебе нужно убирать реактивности тоже кейсы такие выходят немножко за границы стандартных задач окей предлагаю влад но и для приходится к следующему расскажи про операторы сравнения вот у нас есть много оператор во-первых какими ты
00:20:47 - 00:22:15
пользовался вот так это получается двойное равно тройное нервно больше больше равно меньше меньше равно ему больше меньше вот например двойной тройной равно в чем их разница двойное но приводит к одному типу отрывной ануса нет двойной она сравнивает с приведением типов а тройное она сравнивает без приведения типов что допустим объект является абсолютно таким же объектом почему нам нужно приводить типа даже у меня просто такая более подходящая мысль что двойное она сравнивать именно значение но это тройное она сравнивает полностью
00:21:37 - 00:23:27
весь объект это как а если мы объекты сравниваем а ну блин проще на примерах это показать но рассказать в двойном если мы будем сравнивать число два и строку в которой жить 2 с двойным равно она будет она покажет труба 30 и скажут что у них разные типы покажут вас руки и а что будет если мы будем сравнивать например объекты объекты насколько вам не они все но каждый новый объект не рога и саму себя этого происходит честно говоря не особо знаю а если мой ум сравнить через двойное равно и объектах будет содержаться одинаковые
00:22:42 - 00:24:38
значения будущем рубля полностью не критичный объекты вот мы пытаемся сравнить их и даже без тройного равно просто двойной это я даже покажу простой пример который хорошо ли стрижает как можно сравнить вот смотри такой котик вот у нас есть первый объект у нас есть второй объект они оба абсолютно одинаковые формы видишь них ничего нету они пустые вот им и стопы хотим посмотреть является ли 2 похожим на 1 похож на 2 и еще страны в равно на всякий случай вот как ты думаешь что здесь будет результатом и почему так происходит
00:23:47 - 00:25:21
так ну построенным равно это он выдаст ру от строений как мне кажется видос falls а причем двойным упаду струн потому что у них хоть нити у них одни и те же свойства и внутри и вот эта пара ключ-значение сейчас они конкретно пустые и объекта не как похожи друг на друга то есть получается что джером но у нас сравнивает как бы форму объектов он не сравнивать значения он берет объекты начинает рекурсивно проходиться по всем ключам потом в каждом ключе находит свойство проверяет что оно совпадает с
00:24:36 - 00:26:05
тем же свойством другом объекте в нем тоже рекурсивную перебирает если это объект и то есть и так далее так далее это такая штука прямо гипер сложное получается сложно почему мы то почему у нас тогда существуют какие-нибудь там не знаю вещи к функции в java script те которые там глубоко сравнивает объекте почему у нас для этого и отдельные функции пишется мы же могли с тобой просто двойное равно написать и по логике то что ты говоришь это прямо то но есть нет вообще не знаешь вообще двое поговорим как часто ты в проекте пишешь
00:25:22 - 00:26:34
двойное равно двойной равно чаще всего мне и слинг не дает написать говорит сравнивая или как ты думаешь почему он так делает он же не зря делает но ты пишешь если invisible и нет-нет я все как он говорит я пишу тройное равно скорее службы возьмем чему я думаю чтобы не выстрелить себе в ногу вопросов то как можете выстрелить ну допустим отправить число вместо строки если число вместо строки куда отправить на сравнении на сравнении с чем-то да это плохой пример но ты правильно говоришь все так мы
00:26:05 - 00:27:54
можем случайно сравнить с каким-то примитивом и получить неожиданный результат или страница объектом получить еще более неожиданный результат потому что будет приведение типов если у нас разные типы данных не объект с объектом там сравниться примитив с объект вот нас начинается вот эта игра с приведением и все правильно но надо все-таки понимать тогда ключевое отличие что приведение типов она собственно этим занимается она пытается два типа привести к одному типу чтобы ты сравнил мне число со строкой
00:27:09 - 00:28:22
там число с числом строку со строкой вот она сначала приводит к этим значениям причем через большую цепочку может приводить она может там несколько итераций сделать сначала к одному типу привести потом другому и так далее если допустим с болевым значением странами вот она проходит эту цепочку и потом самом конце она сравнить через тройной равно если простым языком говорить она сравнивает полное соответствие значений и тогда вопрос про трона и равно почему все-таки как ты думаешь у нас с тобой при сравнении двух объектов которые по
00:27:45 - 00:28:57
одинаковой форме все-таки будет фолз мы тебе подсказку да им что там будет фолз то мне бы не будет true не в первом случае не во втором как думаешь почему так производит блин даже где-то читал про это то что каждый новый каждое объекту создается а ты можешь вообще в java скрипте допустим создать два одинаковых объекта 2 одинаковых да вот абсолютно одинаковых объекта нет можно можно склонировать объект do not a его склонил сразу будет другой то ты вернешь на объект этим самым учатся каждый созданный объект java
00:28:23 - 00:29:42
скрипте он как новый да все так каждый объект скрипте это уникальное новое значение соответственно когда мы с тобой сравним два пустых объекта но они там созданы по в разных местах участка кода это не один и тот же объект то у тебя всегда будет фолз потому что это два разных значения и так как мы сравним значения у нас там будет falls вообщем сравнивают посылки ссылки разные и все фолз да так ну что будем продвигаться дальше и дома давай поговорим с тобой про функции и про функции мы с тобой поговорим про
00:29:15 - 00:30:32
про контекст текста контекст функциях как ты думаешь что такое контекста функция как это работает в голове как ты понимаешь что вот сейчас ты напишешь зыс и у тебя там будет вот точно вот этот объект так контекс функции он я несколько смутно об этом понятии потому что больше всего с контекстами работал во вью потому насколько помню он кульпин dice и каждый раз совью его бензин в функции если говорить про роуд-шоу 100 [музыка] где использовался из последний раз это наверное в конструкторах окей но за из конструктора хён несколько
00:30:02 - 00:31:37
особенный потому что он ссылается на тот объект который будет создан до поэтому в конструктор язык он ведет немножко по-хитрому поэтому я думаю есть смысл обсудить здесь в рамках типа в стандартных каких-то способов применения зис потому что у зыс и есть куча всяких до исключения и вот сейчас мы их как бы в сторону пока вы берем мы на них не смотрим просто обычный способ применения вот есть функция какая-то у нее есть зыс от чего вот этот здесь будет зависеть мы выбираем отсюда сразу конструктор и
00:31:00 - 00:32:10
просто просто создаю функцию как этот здесь будет меняться в зависимости от того как эта функция вызывается чувства даже вспомнить не могу ни какой пример когда использовал из но тебе не приходилось допустим этот контекст менять как-нибудь в свой контекст подставлять у тебя функция ждет один контекст или там уже есть какой-то контекст а ты хочешь свое прокинуть нет не приходилось ну жаль потому что тем это важная на самом деле защиты что ты работаешь view там же контекста полно в том же в том же огрехов тоже функции дата когда
00:31:34 - 00:33:02
создаешь данные там тоже есть контекст в компьютер он уже на самом деле все для завалил он сказал что там маги ну там магия но она понятна принципе магия вот но контекст конечно надо изучить это это важная штука вот особенно когда ты будешь работать с классами вот и говорю что ты в конструкторе писал здесь но в классах это вообще супер важная тема вот ты возьмешь какой нибудь допустим метод из класса которые у нее есть перри присвоишь его другую переменная он тебе перестанет работать и без понимания контекста ты не сможешь
00:32:26 - 00:33:36
разобраться почему же метод не работает вот это в тоже важные вещи джейси окей плат можешь продолжить до поговорим про замыканием вот ты уже обсудили что у функции есть область видимости у нас есть нам глобальное функциональная и объектная а вот что же такое замыкание чем же она отличается от области видимости и так замыкание это когда одна функция при вызове одной функции она отдает тебе еще одну или несколько в которых как раз замкнутые переменные и эти перемены они недоступны где-то еще и skoda
00:33:01 - 00:34:59
не работают конкретно этих полученных функциях пока сложно то есть для замыкания нам нужно обязательно медиа функции первая функция которой мы вызываем вторая функция которая возвращается из 1 так по моему да а если у нас одна функция то есть в одной функции самой по себе замыканием не может быть насколько помню нет не может а переменной которые там внутри объявляешь не функции как получается существует но нам же невероятно с тобой иметь какие-то ссылки на эти перемены во внутреннем ложной функции это
00:34:01 - 00:35:15
необязательно чтобы тебя за мука не существовало замыкание существует в любом случае если у тя есть функция то есть это не является критерием того что надо вернуть функции то это не обязательно критерий нет ну хорошо я пытаюсь использовать какой-нибудь вопрос чтобы чтобы точно чтобы не сказать ответ да да чтобы не сказать ответ и как бы тебе еще по мне немножко давай представим пример что тебе надо скрыть какие-то данные через замыкание у тебя есть какой-нибудь не знаю компонент который занимается кэшированием ты ему
00:34:54 - 00:36:08
даешь там на вход какой-то ключ и значение возвращает функция функция типа получить значение установить значение так далее как бы ты использовал замыкание чтобы скрыть данные которые лежат вот в этом кэша чтобы мы их не видели ну так я бы создал функцию в которой я бы положил вот это значение переменной которые надо кэшировать и от толпы объект с двумя функциями и дал бы просто функцию get парам в которой который был задавала значение почему мы не можем получить вот это вот значение которое внутри функции
00:35:42 - 00:37:30
потому что получается переменная п в апреле навкой в области видимости только конкретно функции и при выходе за эту функцию мы по переменному получить никак не сможем сложно сказала что ж сказала да девушка тоже пытался понять смысл в том что ты можешь можешь обращаться к переменам которые у тебя есть во всяких функциях которые оборачиваю функцию то есть все что ты все ссылки которые смотрят тебя как бы наверх ну да представим что такое бы наверх то есть в оборачивающихся циях ты можешь обращаться все что во вложенных функциях
00:36:47 - 00:38:21
ты к этому доступ никакого не меньше то есть если функция возвращает функцию то вот это оборачивая верхняя функция на верхнем уровне она не может смотреть переменные той который внутри вот это фундаментальное к его вещь но это их не только функции касается это еще блоков касается вот и говорю про блоки там та же самая история ты не можешь посмотреть переменный которые лежат внутри блока но при этом сам блога может смотреть переменной который вне этого блока лежат то есть и снаружи как бы вот вот такая
00:37:39 - 00:38:42
штука про замка не окей так ну мы разобрали с тобой в базовые всякие вещи по роджерс теперь разберем немножко не базовые и касаются они асинхронности вот как ты понимаешь вообще что такое асинхронность чем у нас с тобой синхронный код отличается от асинхронного асинхронный насколько он не блокирует поток то есть в то время как асинхронный код выполняется может выполняться вас 1 год ну ты сказал столько много умных терминов попробуем бизнес на что даже поверил я почти поверил но вы сейчас перепроверим все-таки ты сказал что
00:38:10 - 00:39:50
каким-то образом нас асинхронный код выполняется как-то параллельно с синхронным кодом как как такое возможно ты же сказал что но у нас с тобой смотри в асинхронном коде синхронный кот всегда правильно да насосе chrome коде выполнять какие-то синхронной операции как так может быть что у нас с тобой параллельно выполняются рядом две синхронные операции просто одна из них как бы началась асинхронно а другая синхрон да ты же сам вспоминал сегодня веркер и если бы код мог работать параллельно она бы никогда не пришлось
00:39:07 - 00:40:29
веркер и использовать но раз они есть значит что-то не так работает на север не так часто никогда не задумывался даже когда их писал полагался виден на какой-то магии что она работает на самом деле и опять говоришь что ужасное слово программирование никакой магии не существует давайте посмотрю работой и четко и понятно связанную как раз таки с асинхронным кодом [музыка] но смотри мы давай допустим что мы уже с тобой такой promise а это типа какой-то синхронный кода вот у нас с тобой есть promise
00:39:47 - 00:41:15
написал свои кроме за показ нас там пишет свои провисы нет конкретного так нет а чем ты пользовался только там всякими клиента месте теперь запросов я про миссы с примесями работал через осинка в эфир с когда осинка функции она дает promise сейчас попробуй даже как-то может быть поинтересней представить это чтобы было понятней я просто хочу запустить как бы два кода получается [музыка] два года параллельно когда говоришь да это равно нулю меньше ну да будет допустим миллион да и я + + и мы здесь просто будем выводить
00:40:41 - 00:42:32
число консоль lakai а вот этом асинхронном коде мы будем делать давай мы сделаем абсолютно тоже самое запустим два параллельных цикл у нас получается тобой даже состоянии гонки здесь некоторые духа сделай этот самый префикс мы сделаем здесь джей здесь будет ai но вот смотри мы с тобой запустили такой код как ты думаешь что мы с тобой видим в консоли так давай сократим для для читабельности до 1000 чтобы было проще в первую очередь мы увидим к значения ой как я думаю и позже потом и уже потом увидим j как мне
00:41:45 - 00:43:25
кажется но смотрит и сказал что асинхронный код он работает параллельно с нашим вот этим достойным ну синхронным как бы то есть у нас в момент когда вы цик консоль лука и ну давай представим что консоль лак у нас прям очень тяжелая операция там занимает по 100 миллисекунд и мы сразу стартанули вот этот promise он тоже где-то там выполняется и он то что как бы работает медленно тот же самый console.log почему же у нас начал вы видите вот здесь тысяч ой а потом только здесь тысячи почему они не будут выводиться
00:42:46 - 00:43:54
последовательно типа 1a и 1b и потом 2-ая 2j почему так не будет тоже можем все рассказал работает нет я еще ничего не рассказала я хочу понять почему мы с тобой вот увидим сначала тысячу здесь потом тысячу тут так я кажется начинаю понимать почему это все клонится то есть если я сказал не правильно то совершала будет а и потом сразу j потом и слова и потом джей все почему это насколько пункт понимаю связано с even глупом вообще вот тут-то мы тебя и поймали да потому что неправильно будет не тот
00:43:20 - 00:44:47
вариант который ты предложил не тот вариант который я предложил его мы с тобой white вариант вообще назвали ну если интересно правильный вариант быть такой сначала мы увидим тысячу j а потом увидим тысячу ой но это особенности promise а потому что все что передается callback про мясо но синхронно выполняется вот пошли было синдром первым да процента х2 асинхронный код собственно что мы хотели узнать то что у тебя синхронный код он возвращает сразу значения асинхронный код он возвращает значение когда-то то есть вот этот код
00:44:06 - 00:45:18
он ведет себя типа как асинхронный код но по сути это синхронный год он выполняется здесь сразу же и все видишь я там даже резко не написал resort я здесь ничего не люблю вот если ты тут вызовешь фу . зин он конечно выполнится никогда но и во первых не случится никто никогда вот этот код выполнится и сын мы здесь не сможем вызвать callback он не сработает вопрос потому что я вне зарисовывал вот и получается что это как бы синхронный код но я написал promise и мы можем теперь сказать что синхронной на
00:44:42 - 00:45:56
самом деле нет вот смысла синхронности в том что мы просто можем какой то какой то результат вернуть спустя какой-то промежуток времени то есть вот здесь мы можем стать функций и мы не знаем с тобой когда этот dance работает то есть это полностью решает вот этот promise когда вернусь здесь значение когда мы пишем с тобой просто какую-то функцию которая синхронная типа если это был асинхронная функция то мы бы сразу вернули значения то есть мы здесь можно получить там какое-то значение который вернул функция
00:45:19 - 00:46:28
прям сразу же с асинхронными функциями тебе придется сначала подождать когда вы полностью этот call back то есть передать сюда callback он когда-то вызовется когда мы не знаем мы даже предположить не можем когда это произойдет и от решает вот этот под promise но и аналог подобную конструкцию это синкавы до assassin ковых равно пишет сайт до assassin к в этом ты наверное привык писать что вот так пишет away тфу это абсолютно тоже самое что я напишу завис выполнив у а потом выполнить этот кубик и в этом
00:45:53 - 00:47:10
клубе киты присваиваешь значения в бар и у тебя будет баром нарезал вот это будет вот тоже самое только это будет написано в синхронном стиля но не отменяет того что это все работа с асинхронным кодом ну окей я бы еще задал вопрос типа про мизом есть хороший черный дом наверняка а тебе приходилось делать постою ткани запросы когда начали допустим запросов допрашиваешь юзера а у юзера запрашиваю что пустим посты то есть тебе нужно сделать 2 поставят на их запрос а вот про бизоном с этим очень помогают и вот мой пример очень
00:46:31 - 00:48:01
хорошо это отображает сейчас так видно но собственно тут вопрос значит у нас есть promise который возвращает какую-то дату есть очередь несколько зенов во-первых интересует будто эта конструкция работать можно ли делать так во вторых у нас тут еще во время всего происходит много всякой магии и главный вопрос что в итоге сработает console.log или консоль р то бишь успешно завершиться или с ошибкой твои предположения мои предположения как мне кажется что выполнится кажется что выполняется первый zen
00:47:17 - 00:49:00
sun data and one выведется ретируется так а потом так что будет потом я все будет ли что то потом плен несколько тонов после promise а это выглядит очень интересно как мне кажется из за того что здесь дата дальше выведется просто ошибка потому что мы пытаемся отзыв уже получить еще один за там никого кроме свою жизнь будет сны та же функция которая отправится как я понимаю ну да то есть мы его promise of majorca один раз получается получается да тогда почему работает кач тоже интересно хороший вопрос а что у
00:48:22 - 00:50:20
нас еще кроме сына кич есть в файле можно еще и файлы что то сделать а зачем нам вообще есть ну нужен файл или если получается так что мы можем вызывать их только в конкретном порядке то есть мы не можем с тобой вызвать типа 2 раза z и потом catch the чем таком случае файл или если мы всегда будем писать . zend потом . catch либо просто . catch разве нужен на таком случае файлы и вот и я его как раз никогда не использовал хватало задача но не будете мучить можно зона вписать сколько угодно в этом и
00:49:36 - 00:50:51
фишка про мясо что ты когда пишешь в ответа . зин ты создаешь новый promise то есть результатом выполнения zend будет promise в этом и фишка что ты пишешь ведь он возвращает promise потом . зин возвращающий promise land еще один promise еще один promise еще один promise и так далее то есть каждый новый день это новый прогноз ты можешь параллельно следить за вот этим face . зин первым и одновременно следить за вторым сыном которые после первого ведь ты можешь просто в переменный записать и следить за ними
00:50:16 - 00:51:21
по-разному мы все узнали про все еще произойдет дальше тоже выполнится в итоге так после такого объяснения теперь мне кажется что понять не знался нет чуть понятнее стало на не знаем насколько это правильно потому что теперь и ко мне кажется не получив faith она номер eternit резалт n23 залп энту а когда она дойдет долго трон rh она выведет нам ошибку и учатся это закончится ну что ж такую шапку что мы вообще вам в ошибке увидим рост error мы видим сам зато вас рожь и это что будет консоли лог следующий
00:50:49 - 00:52:47
зоновские или все-таки консоль error и или вообще ничего какая-то своя ошибка вы так или может быть у видимо и консолей лак и консоль error мне кажется мы увидим только консоль error is a в казарме видится солдата и ну хорош то есть у нас получается 2 вот этот закон не сработает есть 2 и 3 за на ней как бы про пуститься и мы как то каким образом придем к третьему сыну то есть который уже то есть вот так вот типа сондо the heather и это будет ошибка да это все что мы увидим в конце почему нужно пустили с тобой первые вот эти вот 2 за
00:52:07 - 00:53:43
на потому что они еще функционирует мадам рязани нужно как думаешь резалт как-то связан с этим со всем у тебя же сам дата пришла откуда-то [музыка] солдаты так раз есть резал получается что как она будет путешествовать по этим ценам но получается она вернет нам пройдет первый за пройдет второй и они но они нам ничего не возвращают ну как там же хотел вращаю возвращают но в консоль ничего не пишут а вот смотри тем сцене в закинет ошибку как же как же мы поймали это смотри но в итоге так все все-таки что мы
00:52:59 - 00:54:47
увидим с тобой в ошибке какой ризал придет вот в этот третий сын сейчас вопрос стоит и вот так ну что будет здесь может быть такое что скажется начала чуть-чуть понимать ну опять можно неправильность города солдата n2n ту затем уже хрр это все в конце р видится и это правильный ответ как ты пологий они туда придут вот мне интересно узнать как что поменялось твоем вот понимание кроме за что ты понял что они так слинг улицу вот я посмотрел найти ритер на а ну ты просто не видишь что возвращается там
00:54:03 - 00:55:49
значение нет я увидел но я как то как то более пристально в них посмотрел что ли интуитивно метод газда на изучение года это тоже нормально но ok давайте вот еще чуть-чуть если я изменил код на вот так что что у нас поменяется в нашем алгоритме у нас готовься в каталог что мы увидим то есть вот у нас так было после моих изменений что что появится ты так быстро делать изменение что я даже не успел заметить что поменялось но только в том-то и дело поменялось и сильно я не увидел просто какой кусок
00:55:03 - 00:56:34
мне найти перечень теперь к чаще как мне кажется не будет не должен обрабатываться отрабатывается чему потому что ошибка она не выбрасывается на просто тоже отдается также как и это после первых двух сезонов и ты считаешь что при этом течь не сработает да потому что террор это он вернется как объект так и вернется в конце логе но огонь и объяснение устраивает именно это и поменял все правильно у нас не будет ошибкой но это ошибка вот то есть мы вернем объект ошибки той же самой датой но в конце локи
00:55:56 - 00:57:51
после оттуда фрау брал да ну так в том то и дело что я просто не то что мы не выбрасываем да никто и даже не замечает все уже видят авроры все у них триггера окей неплохо неплохо но если честно у нас вопросы по джесс секций закончились и как раз мне кажется мы в час уложились поэтому я думаю что давайте подводить какие то итоги небольшие тем более так уже все понятно да владу я дам тогда первое слово по результатам нашего собеседование опять темнее первое слово дают даже мы уже наши традиции нарушен ну что могу
00:56:57 - 00:58:27
сказать нам получилось тип орла и сидишь ты говорил что java script это просто view это просто вот мы давим когда-нибудь обязательно доберемся на наших собес и потому что там тоже обманчиво просто и вот то что ты говоришь магия мне например категорически не нравится как ты говоришь маги это значит что она как то так работает я не знаю почему но я принимают как должное а если она так не будет работать то все я буду сидеть там нас the cover of law гуглите не понимаете ли там ходить по часикам и спрашивать как как тут у меня
00:57:48 - 00:58:58
работает почему мне тут реактивность потерялась а тут а тут у нас слишком часто работает вот это мне вот не понравилось ну то есть объективно что видно что опыта у тебя пока еще маловато то есть абсолютно типичные ошибки что вот ну с варом хорошо наверно и ты вряд ли имел дело но вот сразу видно что ты там используешь view id это мне пишешь сам функции то есть и не работаешь не из контекста мне пишешь танки это сложный алгоритм и кроме завод используешь такая библиотека там на получение то есть это очень
00:58:23 - 00:59:40
сильно ограничивает скажем твои возможности как программиста то есть ты не знаешь всех возможностей java скрипта и поэтому так это если в документации что-то не будет написано значит наверное это никогда в жизни использовать не будешь или кто-то пока тебе не скажут а если ты это встретишь коде тебе это вызовет огромные трудности то есть то что ты junior я согласен видно что то с чем то работал что-то знаешь но это очень-очень слабо то есть мы прошлись по базе по функциям вот самый большой вопрос то есть ладно там с
00:59:02 - 01:00:19
переменными q как мы ответили а вот с функциями просто провал вот ну и как-то так считаю но это все легко исправляется есть хороший ресурс или java script точка ру на нем можно как бы подтянуть все свои знания в основном жесткой пнями ну и что стас расскажи что ты думаешь об этом да я думаю что то в конечном и ожидали гораздо большего в плане он тут сознание каких-то базовых вещей в частности вот там про функции потому что про контекст функции g нам узнать мне кажется важно и про то как promise и работает тоже супер
00:59:40 - 01:01:04
важны тем более ты говоришь что ты использовал осинка weight синквейн он построен на про мисах и когда у тебя что-то пойдет не так с осинка в этом тебе придется разбираться что такое promise ну сейчас наверно тебе в принципе хватает от того инструмента с которым ты работаешь то есть есть понимание какой-то джорджу скрипта ну может быть она просто неглубокая но тебе хватает решения задач но дальше чтобы тебе расти и становиться уже не джона момент лом тебе точно понадобится это все изучить потому что без этого дальше
01:00:25 - 01:01:30
двигаться вперед серьезно не получится его очень в частности это касается promise of ее функции вот по самому советую я думаю что на джона но это на это конкретное собеседника не могу сказать чтобы ты прошел да тут все таки хотелось бы хотя бы какую-то более меня половину что ли вопросов так твердо знать то есть чтобы мы даже придраться не могли к терминам которых называешь потому что все вот любят говорить громки термины там even клуб в основной поток но то что что скрывается за ними обычно вот
01:00:57 - 01:02:16
так опускают немножко ну кстати вот лупы все не было на удивление да мы даже не добрались до винт лупа там все еще сложнее чем то что мы тут спирали вот поэтому я думаю что следует подучить вот эти штуки по крайней мере у тебя сейчас есть направление чем можно прокачивать и стать таким реально крепким джином которые там из собеса будет себя чувствовать очень комфортно вот и я думаю что там как раз тот посоветовал java script руки в этом очень хорошо поможет вот но в качестве собеседников мне кажется было все хорошо
01:01:36 - 01:02:44
ты старался держаться изо всех сил даже когда там не понимал что происходит это хорошо там вроде почти не день не растерялся вот так держать всегда пытаться найти какой-то ответ на вопрос ну и до больше говорить того что в голове происходит как ты мыслишь каких с концептах может быть мой конечно вопрос сегодня так немножко распушите задавали я уже сам заметил но бывает тоже у нас такое вот в целом у меня впечатление хорошее но знание считаю что недостаточно длина пока что ну исходя из этого собеседник конечно же то есть мы
01:02:10 - 01:03:24
не все спросили что должен sijun возможно ты знаешь какую то часть которой мы не спросили очень хорошо это тоже может быть вот и давай послушаем твои впечатления тоже от собеседования что тебе понравилось что не понравилось ну мне очень понравилось как мне дали направление конкретные штыку там нет точно нужно лезть чтобы где у меня слабые стороны потому что когда ты сидишь и работаешь у тебя как-то более ограниченный что ли вот такое ограниченное мировоззрение используешь одно и тоже постоянно там
01:02:48 - 01:04:17
готовые библиотеки это а вот я на работе нет старших коллег у которых можно там набираться всего интересного еще есть конечно ну то есть ты не смотришь что они делают обычно у них одни проекты у меня меня другие совсем и в код особо ну и вот что ты будет работать в офисе работаешь или удаленно довольстве но тем более если в офисе не стесняйся там не знаю если есть возможность покопаться в коде и сеньоров ее кому-нибудь поприставать а расскажи что это за фигня там не знаю увидел 3 точечки в коде типа что это за фигня
01:03:32 - 01:05:14
такая знаешь . куда сдать тест тест оператор вот так как он работает знаешь как он работает реликт волос фото а почему то есть еще должен вызывать вопросы да вызвать опросы а как а почему а что вот не стесняясь спрашивайте у своих коллег потому что поскольку вы работаете что называется в одном помещении или вот вблизи то у тебя есть возможность получать знание от них потому что там самообразование это конечно прекрасно это хорошо если ты умеешь но если ты не умеешь что проще всего получать что-то
01:04:22 - 01:05:36
новое у коллег еще и так понимаю что у вас нет такого понятия как коды review то есть твой кот не смотрят старшие специалисты то есть ли там что-то пишешь и ладно да да главное чтоб работало вот если не постесняешься и покажешь свой код коллегам и попросишь фидбэка мне кажется это тоже очень сильно тебя продвинет то есть вот этого стесняться ни в коем случае нельзя там попросить посмотреть а что там а куда там тебе наверняка этом и какие то может быть ошибки укажут что тоже посоветую ну ты же ведь хочешь
01:05:00 - 01:06:10
развиваться и идти дальше лоррейн это конечно голод поэтому я думаю вот стесняться не стоит у тебя есть лет во все инструменты ну я ещё идём себя вспомнил о стоп предложу тебе как можно тоже прокачаться когда уже ты пройдешь этот этап с изучением ли java script ru когда попросишь коллективе мишка по review ведь можешь перейти еще на следующую ступень и начать разбираться как работает те инструменты которыми ты сейчас пользуешься ты же пользуешься тем же в по ком ты пользуешься view и если ты будешь
01:05:35 - 01:06:47
допустим считать там исходники инструментов ну не бежали чтобы там теперь понимает впадешь в депрессию на ты сначала впадешь в депрессию потом придешь такое ощущение осознания происходящего до любом случае то есть поглубже копаться в вещах которые ты используешь не просто там взял какую-то библиотеку а работает и работает если ты разработаешь view там типа просто по наитию как-то ну это один уровень а когда ты уже пример чем внутри происходит совершенно другой и это это тебе как раз будет тоже сильно
01:06:11 - 01:07:17
прокачивать то есть понимаете как работает твой инструмент это очень хорошо для front эндера вот но я считаю что все таки 17 лет уже знать java script и понимать что-то происходит я считаю что это очень круто что это очень хорошо да и уже работает не ты представляешь на самом деле да он большой молодец мы его тут зря накинулись я всему цвет еще бил полки крапиву и считал что у меня все хорошо ты молодец что так уж и рано начала все познавать дальше будет еще интересней это самое главное что я понял как куда
01:06:44 - 01:07:56
мне идти куда мне двигаться что где у меня провалы почему то что я использую как все инструменты это как черная коробка кто-то что-то кладу мне выплевывает значения мне вы кривой что-то я радостный все работает но вот кстати я еще могу последовать один хороший способ получать информацию там или ответы на свои вопросы может быть то есть в какой мучать экипаж view в телеграме when спойлеры реклама не атлет вот о чем у нас есть прекрасный чат для этого за рекламе для вас туда клуб юджи из разработчиков может
01:07:20 - 01:08:54
туда заходить если у тебя будут какие то вопросы по view а водили бежать тебе подскажет на видео вышел тоже вот там и у нас собственно там тусуемся все мы там есть еще более экспертные специалисты которые прям view уже вдоль и поперёк изучили там вот стас например сесар у нас кстати есть создать документации павел наталья она будет очень рада любым вопросам и предложениям вот и не стесняйся заходи и все остальные кто нас смотрит тоже это лучший способ получать информацию когда есть какой-то комьюнити
01:08:07 - 01:09:51
когда есть коллектив который сможет что-нибудь рассказать коллективный разум лучше чем единичный ну и все наверное закругляемся всем спасибо кто смотрел не забывайте подписываться наш канал ставить лайки колокольчик куда же без него не забывайте про то что есть patreon new бэг-энда и и у нас фронтэнда есть общие когда если вы хотите поддержать нас всех мы были несказанно рады это будет стимулировать нас во первых делать выпуски чаще вторых более качественно вот вступайте тоже в наш чатик от собеседование в телеграме то можно
01:09:05 - 01:10:24
позадавать вопросы то есть мы там тоже все находимся ибо киндеры контейнеры тоже отвечаем на вопросы ну и все всем пока все пока
01:09:44 - 01:10:08