Подготовка к собеседованию на 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 каналы и чаты
Транскрипция видео:
где есть ключ лучше у меня есть рисунок ключа если человек сидит на месте значит он работает как отличный бой мент это отдельный человек всем привет на двенадцатом выпуске от собеседования меня зовут владислав и из компании дери мобиль рядом со мной стас и с компанией хабр сегодня на обед у нас воле и валерий расскажи из какого то города и сколько тебе лет последние три года живу в москве у меня 23 года сколько лет ты уже занимаешься фронт-энд разработкой три года это уже коммерческая разработка
00:00:00 - 00:01:21
или в общем и целом сколько ты интересуешься и пробовал себя но если фланец ресов то наверно golitsyn а именно чтобы зарабатывать на этом кто-то три года руб как вообще то попал во front-end случайно ну а подробнее получилось то что и отдел сайт это себя занимал с игровым сервером и мне нужен был сайт ну где могли покупать сыграли вот после того как я закрыл серво кроме не стали люди писать типа попробуй там чё по верстать танку из макета и тогда имеет стал получаться и вот как то так затем кем это понравилось но это
00:00:43 - 00:02:27
прикольно когда ты что-то делаешь и получается потом этим пользуются и оставил свои ну как какой-то свой кайф хорошо какими задачи ты решал только там в плане там организации кого-то игрового сервера и к нему каком-то фронтэнда вообще в принципе какие задачи решаются только верстка или какое-то программирование зона не то было программирование вот например системы рулетки то же самое который там с первых систему который написал все платежки там сейчас уже конечно по сложнее стало то что сейчас мы делаем нейросеть николай иванов
00:01:41 - 00:03:23
знаете вот это ну как бы всякие вот эти покрышки изображения генераторы весело но выраженность в тренде я не могу много об этом говорить нет ну я к тому что скорее всего если вы используете россетти то это явно серверная история то есть фронт-энд в этом не могу даже жестких там тоже выложишь в это свет то есть тоже с вэшки это же frontend как интересно один хорошо как отдать выше вот и у тебя сейчас текущая работа получается застудили где работаешь если вы делаете макей и сколько ты уже там вот так работаешь с марта ну вот как
00:02:35 - 00:04:28
твои не знаю ощущения нравится все или устал замучился но я туда пришел после старта про и мне нравится мы начнем то есть он прям такой хороший а это как я понял влияет на то как ты работаешь просто я работал без менеджмент вообще код то есть все сару вот а когда есть как бы чувак который все задачи ставит помогает это вот прямо классно но вот и не знаю ты в какой-то команде который занимается вот фронтэнда мы-то нейросети или вы просто вот front индры вам дают задачу вы делаете и это прям канал
00:03:33 - 00:04:55
должна то есть вы чисто вот занимаетесь от раздачи все время но как тебе нормально то есть не хочется там не знаю сегодня нейросеть поделал завтра еще какую то анимацию прикольно придумал или еще что-то реже щас of fruit and сервиса которое нужно делать каждый день и весело типа пока не источники новый в этот классно ждем запуска этой версии стив production но у да прям уже заинтриговали самому стало интересно какую самую тесную задачу ты решал вот за весь свой опыт интересно как раз аят чего-то такого
00:04:15 - 00:06:04
но то что тебе запомнилось то что ты считаешь что это вот прям пик твоих там способности на каком-то этапе например там сделку это хитрый обход деревьев или какой-нибудь знаю гряды алексеевская таблица со всякими там кастомными фильтрами перетаскиванием ячеек или там рассчитываем формул но понимаешь то есть то что ты сделал то что это законченное то что ты понимаешь это и вот это было прямо хорошим как сказать пунктом там знаем резюме или ты можешь об этом рассказать [музыка] верно фронт конструктора приложений
00:05:09 - 00:06:35
промыть и но это типа классная система на она не совсем легально я то есть этого кейса в этом недавно я написала такую штуку которая заходит под пользователи как будто эта путинцы кидает о кино как расчета все автоматизировано такая картошечка но это был то лет проект будет ну и рулетку наверно тут ещё начинал рулетки это весело но тоже как а.в. именно просчитывать ну просто я очень весело было писать алгоритма который вот работают для владельцев то есть они того не стоят потеряла проценты в определенных или не
00:05:52 - 00:07:26
выпадает то есть такие всякие штучки callebaut с но это ближе к игровым всякими механик я понял хорошо какая самая большая трудность у тебя возникла на последнем месте работы докер не ответ речи скорее пара frontend видишь докер это все таки такой инструмент организации работы больше из разряда д вопросы на фронте сафари делать для него не ел больше не поддерживаете его больше не поддерживать будем говорить красиво интернет эксплорер теперь у нас это бремя интернет explorer'а занял сафари был единственный выбивается из поддержки
00:06:44 - 00:08:50
стандартов потому что выплат своя там своего это особое виденье свой путь реализации этих стандартов хорошо я понял что ты хотел бы получить от собеседования понять урале то есть я проезжаю миллиметр или может что-то больше и меньше ноты как ты примерно себя оцениваешь чего это складывается или почему у тебя вообще есть сомнения что допустим ты не соответствуешь какой-то категории потому что я не заканчивала курсы то есть произошел какой-то сбой вот то есть просто пешка ты попадаешь какие-то подвижки
00:07:50 - 00:09:27
потому что раньше я вообще не знал что типа фронтира потратив легендам цвикки реактивные при варке так далее то есть просто делал сайт это модель часто что-то новое и интересное типа узнать кто ты вот в этом как бы польша как новое направление программировала фонтан bk это совсем недавно все появилось раньше таком него в таком случае это все недавно появилась на 30 лет да то есть мы очень сильно шагнули то есть раньше были страничке они были простые потом мы навестили кучу анимации теперь у нас это
00:08:43 - 00:10:07
почти и полноценные приложения прямо в браузере поэтому мы шагаем вперед еще неизвестно что будет лет через пять лет через пять может окажется там приложение это вообще для лохов и нас to make нибудь не знаю толстые клиенты уже открываются в браузере хорошо значит понять свой уровень и какие у тебя планы на ближайшее там несколько лет строишь это вообще тёплому я почему-то вижу что интерфейса превратятся в голосового управления вот мне кажется не типа можно вот потихонечку в этого как бы у этого проводу люди же вот с
00:09:25 - 00:10:48
появлением технологии становятся ли ними как бы соответственно мне кажется сервис лучше продавать если управлять голосом ну колонки вот эти колеса и так далее и вот короче хочу с голоса будущий поработать у меня вопрос а как ним и люди будут с таким интерфейсами взаимодействуйте таком случае они же есть там кто то бишь к рядом они значат как-то будут нажимать то есть водой мир нарезка в контент грубо говоря мы пришли точнее в ты не хочешь сказать что в будущем у нас будет приложение к в которой грубо говоря одна кнопка оля
00:10:09 - 00:11:42
shazam который ты надиктовывать какой-то набор там команд или их своих хотелок дальше происходит магия серии вот представь еще а ты едешь на машине у тебя одна кнопка это что за магический чтобы узнать скорость свою это каждые пять минут повторишь какая скорость какая скорость ну вот этот интерфейс будет выглядеть примерно так можно сказать чтоб покажи мне скорость но то есть отрисовка цену никуда не денется то есть визуально доставляющий интерфейса она останется в любом случае потому что ну нам глаза как бы зачем
00:11:00 - 00:12:11
таны почему-то не пользуются глазами когда это все есть просто управлять мне кажется было ты прикольнее типа голос какие в конечном итоге у нас же что бизнес любит графики красивые и всякие стройные различные там таблички и прочую историю то есть даже если но и элементы управления будем исключать из своих интерфейсов все-таки вывод красивый красивый вывод информации мастер но останется то есть это касается и интерактивной информации и статической то есть стать я думаю тоже никуда не денутся типографика вся наша останется
00:11:41 - 00:13:04
вот насчет там знают элементов управления я бы тоже подумал потому что сейчас с ними тоже очень много боли которые приходится решать но и представьте едешь в автобусе и каждый начинает голосовым управлением чего-то там настраивать но это будет наверное не очень удобно поэтому интерфейса классно но почему-то пока не повсеместно не получили внедрение в том числе на сайтах но посмотрим может быть все поменяется кто знает давайте наверное переходить к собеседованию до первой секции у нас будет по джессу что логично вот и к тебе
00:12:22 - 00:13:52
первый вопрос как ты понимаешь замыкание еще раз уже в конец кроме замыкание нет зацени promise а это у нас с тобой функции хорошо замыкание очень тесно с как сказать соседствует с другим понятием как области видимости теперь пора так вот основной вопрос тогда если чтобы было более понятно скажем так в чем отличается область видимости от замыкания и вообще если какая-то разница между ними и это жать на своими словами то есть мы не требуем определение тут именно понимание твоего я слышал значение за руками просто на
00:13:06 - 00:14:52
практике применяется но относительности это понятно если ты легенд приложением форекс она бы только функции если глобально боли а замыкание наверно можете из кого то другое слово я пойму что это испугу но как ты понимаешь вот каким переменам ты можешь обращаться и откуда можешь обращаться ну то есть если блоки функцию допустим могут обратиться к лаборант тоже можно обратиться жёстко просто нечего есть переменная k filmu windows . это тоже в основном таки используют слабо непременно внутренние вот функция
00:14:03 - 00:15:45
о новой глобальной область видимости да тут в принципе все понятно она и глобальная там вопросов никаких нет как раз таки его сложности возникают с локальный но в кавычках функциональный точнее говоря в области видимости вот когда у тебя функции есть переменная потом функций у тебя еще есть функция другой функции еще функции они могут оказаться сколько угодно вы собственно вопрос хочу ли можно получить доступ ну неважно там рекурсии не рекурсия у тебя могут функции вкладываться друг друга и у тебя может не знаю она функция
00:14:58 - 00:16:08
верну другую функцию при этом в ней будут какие-то переменные вот вопрос как ты определяешь что вот переменная x доступна в одной функции а вдруг вы допустим недоступна как ты это понимаешь власти к другу функцию передал вот этот x . чтоб я считаю перед она доступна только накину ты передаешь ее через аргумент правильно ты говоришь продажа есть если не через аргументы должен быть удобно club то есть это как бы вы вы не свою функцию да ты можешь вырваться из нутри тогда она в другую функцию не перейдет
00:15:36 - 00:16:51
носит и внутри там прописал какую-то перемену я думаю вам нужно продемонстрировать экран хотя тоже как прописать ну вот смотри вот у нас есть переменная который мы присвоили какое-то значение в это обилие функцию и пытаемся сделать конфлик переменной а что мы увидим здесь так вот три а почему мы увидим ты сказал что переменные видны только те которые объявлены функции либо мы должны передать жажда рамен аргумент а я на hd жалобами и чтобы не глобальная нам уже выйти программой и власти функция функция бы вернуть другую
00:16:18 - 00:17:47
функцию но внутри б объявить счет на переменную что тебе такого до переменную забрать из функций в той же б еще добавить переменную там какой твой и за консоль можете и но посмотрев переменная сейчас не передается не через никакие аргументы вот эта переменная не глобальная будет ли она доступна в этом конце логе почему ты же только что сказал что нужно либо документ либо глобальную переменную или у нас вот этого и станет глобальным называешь после объявил перемен кто возвращаешь но это функция уже будет
00:17:06 - 00:18:51
давать тогда так можно собственно замыкание как раз и объясняет почему переменной y будет видно у функции именно этого объяснения мы хотим от тебя услышать как так получается что у нас вроде область видимости другая но переменная в не видно почему только такая же хорошо то есть область видимости в этот музей примерно то есть смогут опустил вот сделали функцию вообще не на его звали бэйби ну вот тогда подобным просто что будет ордене видимости для вот этой вот стрелочные функции которые конце лог
00:18:01 - 00:19:43
делать вот именно шов стрелочного типа визит но если сделать ритуал факт что написать то пусть так давно не увидит и то есть у нас область видимости зависит от того какая функция стрелочная или не стричь на стрелочку я почему-то себя правило взял то что вместо что вкус указывает что тогда области какие способы но тут конечно совсем все не туда потому что на самом деле ну стрелочные они стрелочные это вообще неважно стрелочная функции у нас единственно отличие от обычной функции это то что у нее нет собственного
00:18:52 - 00:20:23
контекста ты не можешь на нее поставить свой какой-то контекст она его не берет ни откуда вот там используются контекст внешней функции в которые она обернута вот а собственно область видимости вот для этой функции сейчас в которой влад в переменную а уже поместил у нее будет область видимости сначала б потом глобальной область видимости то есть она как бы будет вложено но сначала посмотрим где находится переменная а точнее где находится переменного и она находится в области видимости б если находится берет из бы если нет идет
00:19:38 - 00:20:41
дальше в глобальной областью видимости так вот будет подниматься пока не идет да глобальном стильность короче вот пример так nokia да мы разобрались давайте дальше туда пойдем вот ты сказал что-то про promise вот давай тогда поговорим про promise и что такое promise и вообще что такое асинхронный код чем у нас с тобой асинхронный код отличается от синхронного хранишь тайну the promise to rush его подождать чтобы он выполнить потом уже ты делаешь чтобы отправить можешь вернуть то либо рис of the valid ответ
00:20:10 - 00:21:38
либо какую-то ошибку и сушки какашек поэтому катера поочередно выполнить действие ну давай уточним что такое подождать ты можешь и в синхронном коде подождать ты пишешь while true начинаешь там делать какие-то операции ждешь на ты подождал и вернул результат всем тогда отличие от асинхронного года мои что допустим к серверу хочешь братец цифр счет подождать и потом записать в про мисах всегда ты возвращаешь кпк или ты просто ждёшь давай уточним вообще что возвращает нас promise либо ошибку или решение ну
00:20:59 - 00:22:38
ты пробовал крайне написать const x равно promise . резал и что будет x в этот момент даже в resolume ничего но хорошо я напишу promise . резонов единица и у нас что будет с тобой x единица получается не будет ошибочка он вернет типа него просто есть нашелся ответ правился вошло в новый вид это уже выше абстракций а это уже сахар над про местами а если мы просто используем кроме собеса сенькова это та когда мы пишем const x равно параметры залов их под значения что у нас в x то с тобой были в точного значения он да просто
00:21:48 - 00:23:46
только во синхронных функциях использовал против но я набросал примерчик давайте посмотрим если не буду показывать все это по ходу дела но вот смотри берем мы создаем новый promise которые не имеют асинхронного кода который сразу будет возвращать нам какое-то значение что мы увидим вы все верующему функцию [музыка] утро ночь экстаза функция как и и как ее использовать эту функцию 6 мы прописали в эту почву конус текстовый retour к эта функция границу это сработало посещать честно говоря пока непонятна
00:22:48 - 00:24:25
причина тут ритер потому что втроем ты можешь конечно ликер нет но это дано чего тяга не даст хороший вопрос давайте так как получить намотана значение которое резолвится наш опрос наверное конт console.log x в ряд и выведет нам 10 правильно что мне нужно сделать чтобы вывести эти 10 но вот описать его функцию . рисовал но позже поживи чтобы мне же за консоль может 10 что я должен написать глава нет на что вот это мы не должны вписать что мне нужно что мы здесь написать x . резал резал и что должен сделать типа в
00:23:45 - 00:25:31
конце лог проверим чем чирпа хочется только решил выбрать ошибка но если зов не будем вызывать ошибки конечно не будет мы скорее всего увидим просто underpants но рис авто у нас вообще где есть у нас с тобой разве есть про местах риссов у нас чтобы в промыслах нет рисовал на срезов есть внутри callback а и у нас есть срезов на конструкторе promise of promise . лесов это чтобы сразу тебе парами зарисовывать но что вот не писать как лад наверху написал чтобы ты сразу написал туда 10 вместо функции это будет
00:24:43 - 00:26:04
то же самое вот ну а как тогда не через резов получить значения там же ну ты же сто процентов не знаю если ты пользуются праве сами должен был как-то получать а тут значения или ты везде писал losing the мосинка weight и не запарился то пожалуйста сосенки в этом и чтобы он засек его этого тогда через его этого получу но во-первых ты здесь васильковый не сможешь написать если у тебя браузер не поддерживает top level a weight потому что ну как бы нельзя ждать на верхнем уровне по крайне мере не везде вот во вторых как бы надо
00:25:24 - 00:26:40
же понимать басенко выйти происходит мы же с тобой когда пишем осинка weights он как бы в про места разворачивается в обычное то есть это просто сахар по большому счету вот хочется понять как ну вот мы этот сахар викин вы к ним допустим у нас по каким-то причинам нельзя синкавы это использовать хочется понять как же нам без синкава это жить и почему вообще есть осинка вот кстати говоря ну то есть он же придумал был не просто так наверное какая-то боль была с правилами что пришлось осинка вы и передумать .
00:26:07 - 00:27:11
ну типа было . ну же блин но это напрямую связано с как раз отличнику не земные в этой функции можем получить это значение да но вообще обычно как раз такие люди хорошо знают как работает zenitech только потом же свинка white на но ладно в общем смотри собственно чем хотели услышать вообще основная разница ну вот вот этого асинхронного и синхронного кода была только в том что синхрон синхронный код возвращает сразу значения асинхронный коз возвращает значение когда-нибудь потом то есть через какое то время и мы не
00:26:46 - 00:28:21
можем это получить сразу часть сути этого чтобы не блокирует поток как раз вот когда ты говоришь ждем если мы действительно ждем через какой-нибудь файл true то весь интерфейс ждет весь основной поток будет ждать пока выполнится этот код с прописями этот код может выполняться где-то за пределами нашего основного потока и мы сможем там не знаю кликать по кнопочкам смотрите анимации какие-то сложные и так далее вот и собственно осинка ведь зачем появился чтобы ты мог вот в этом синхронном стиле когда ты
00:27:39 - 00:28:48
пишешь у равно а ведь что-то вот писать асинхронный код чтобы у тебя асинхронный и синхронный код выглядели практически одинаково вот собственно для этого он был и придуман ok давайте тогда двигаться дальше ну чтоб лесенка было победишь ну да да ну собственно цену создает проблемы с тем что нужно опять создавать некоторую вложенность но это тоже проблема которая была угол беков но там она была более выражено ok следующая тема у нас про вес модуля вот использовал ли ты с модули там в чем особенности и использовали ты команды с
00:28:12 - 00:29:46
модуля и вот не знаю когда что случилось между ними мало кто круче до потолка детства хорошее правило вой функции которая появилась у типа там файл filtero нет есть модуль это импорт и экспорт а когда у тебя файл является модулем то из него муж экспортировать него может импортировать вот ну может быть расскажешь про киньте особенности или не знаю еще что то с чем то сталкивался и вот в чем отличие есть модулей и команды из модулей тех же самых но если ты писал код на ноги когда-нибудь я даже желтые скорее всего склон же сработал
00:28:59 - 00:30:34
вплотную потому что там нету импорта-экспорта дефолт он там нурик ложится в паком и бабелем ну да вот кстати да вот поговорим в том числе и про это то есть вот когда тебе нужно написать модуль там не знаю что ты будешь использовать и с модуль или командос и как ты будешь принимать это решение все-таки не рекламе рода этот трейдер потому что так куда какую нужную функцию использовать с река ворам тоже можно попроще наверно будет чуть цикл что поменьше именно в чем разница there мне приходилось никогда ловить многие ошибки что там
00:29:48 - 00:31:38
an expected statement импорт или что нибудь такое ну вот как думаешь почему они возникали ну да ходил ли ты до причины возникновения этих ошибок правильно но если мы говорим про выделить какую-то запрос на виллу спине оптимизируем этого поэтому убивают ручку но у нас вообще в ноги не знаю может быть ты знаешь вообще насколько хорошо поддерживают свой с модуля вот так чтобы запустил включил и все работает продолжил если ты специально не чего многие не сказал ни простоял расширение там мтс или не выступил type модуль в
00:30:45 - 00:32:24
париже sony то у тебя это не заведется из коробки это раз во вторых тебе нужно минимум 12 но до которые то есть ну да станут есть не у всех вот поэтому-то тебе нужно будет заниматься трансляцией were клавиш джесс вот ну ладно тут мы хотели конечно вот поглубже погрузиться но раз так тяжко идет можно дальше пойдем вот про эту разницу в принципе наверное можно будет когда-то забыть я думаю но сейчас ситуация такая что рыба похоже что команды с нами надолго потому что очень много lip написано на ком
00:31:47 - 00:33:14
анджелесе и когда ты будешь их подключать тебе придется тоже раз разбираться с этим там есть хитрые это самое импорт звездочка что-нибудь ну там есть еще кроме того же кому джесс у нас есть м.д. потому что команды с у нас только для сервера по моему у нас есть а м д для клиента собственной индии которые для клиента и для сервера и короче вот этих модульных систем [ __ ] и больше и поддерживать их больно но когда ты пишешь к тебе нужно все равно понимать вот когда ты пишешь рик war где это будет работать будет лет работать на
00:32:31 - 00:33:59
сервере будет ли отработаны клиенте и когда допишем порты то же самое ты не можешь просто так взять написать импорт и ждать что все заработает к сожалению это такова реальность сегодняшняя ok влад предлагаю тебе приступить к следующему вопросу но следующий у нас опрос такой более глубокий наверняка ты изучал алгоритмы и структуры данных вот нас вопрос касаемо структур данных какие структуры ты знаешь и вообще зачем нам нужны эти структуры до войны для начала начнем хотя бы перечислить те структуры которыми пользовалась или ты
00:33:16 - 00:34:48
знаешь что они существуют класса до нет опыта у поесть структуры данных смотрите тоже данных человек это яблоко чип но хорошо хэш не объект хэш хорошо хэш хэш таблица хэш таблица защиту какие но объект по числу битве до но объект число этой структуры данных какая структура в числе есть или в строке там если структура вообще собственно такой структуру кстати говоря работает структура это когда у тебя какие-то разные организовали в определенной форме тебя есть форма организации данных специфическая
00:34:02 - 00:35:54
какая-то собственно хеш-таблица у нее специфическая форма организации данных когда у тебя есть ключи ей значение когда у тебя у каждого значение есть ключ все собственно вот это хэш таблица какие ты еще знаешь структуры с которыми ты работал ну или вообще какие просто знаешь может просто не работал изучал может изображение изображение структура в программировании мы не смогли ты не приходилось никогда и перерыв спугнуть объектом конечно но какие структуры ты использовал для итерации допустим но если этот же что
00:35:15 - 00:36:56
сегодня будет fight фильтр такое вот разве структура это функция который тренирует чтобы что-то интегрировать это что то должно быть и ты риру им им так вот что уже это такое литеру ему е посев объект вот смотри открыли новый тип ачивка unlocked массив новую структура данных что такой массив это последовательность запись нескольких однотипных или разнотипных значений именно поэтому мы можем и тореро ваться потому что эта последовательность берем и тренируемся каждый мы этом по каждому элементу например эта структура
00:36:05 - 00:37:29
данных хорошо что еще должно мы с мы с тобой перечислили сейчас встроенный jest то есть джейси массив объекта не встроено можно поверх этих структур создать свои структуры costume какие ты знаешь базы данных давай ограничимся алгоритмически my структурами данных не в целом структура данных в общем там какие какие только не бывают базы данных это все таких ну хранилище в основном данных структурируем а я конечно но это немножко не то структура данных имеет в плане уйду как ты организовываешь вот этот
00:36:48 - 00:38:16
комбинацию из хэш-таблицы из массива как ты можешь не знаю комбинировать хэш-таблицы комбинировать массивы ли еще что то потому что ты больше ничего в своих в своем расположений в принципе не имеешь но строка считается колеса что живу да только ту же считаются структурой духе хотя бы все понятно хорошо ты дел когда-нибудь вложенное меню которая формирует сервер такой такую структуру данных тебе прислать сервер в этом случае жетончик жетончик это тип данных а структура эти шнеки тоже типа обращаемся сможем страсть что
00:37:30 - 00:39:29
стоит вот так и как эту вложенность можно назвать эту сложность можно назвать дерева и это вот деревья и это тоже одна из структур данных и использование вот кейс использования как раз таки например вложенными ним тебе приходит такая структура данных ты должен обойти рекурсивно именно такой ответ мы ожидали тоже да да да именно поэтому то есть эти структуры данных они в округе мы можем быть их не замечаем но мы интуитивно с ними взаимодействуем давай попробуем еще найти какой-нибудь открыть новый тип данных и там уже готова
00:38:32 - 00:40:43
последовать за прост типа чат если брать из темы чат ты уже смотришь на систему мяч от что же такое чат это обмен стрингами по сути тут важно транспорт агностик чат это хоть и по их к протоколу хоть почему это в принципе обмен стрингами всегда хотел написать свой ч о как-то тяжело удается то есть ты не изучал алгоритмы и структуры данных хорошо вот смотри мы как минимум но еще и сам известный это назову например связанный список это та же структура данных вот мы с тобой обсудили и нашли обнаружили бы сказал разные вот
00:39:35 - 00:41:52
структуры данных вопрос зачем они нужны и почему их так много зачем вам нужны эти структуры данных ну так можно сказать все зачем туда и за реформирование чтобы писать для архитектурного планирует что-то написать такой опера вот эта структура данных по пишу вот такое можем мы можем с тобой представить дом не виде дерева а виде чего-то еще живу но почему связанную список например я легко представляет дом виде связанного списка это будут очень умная длинный дом вопрос почему он не связанный список у
00:40:47 - 00:42:33
нас дом я просто говорю сразу аналогии со стилем то есть ну допустим в той же фигуре фотошопе так или иначе используется вот такая небольшая вложенность когда ты кого-то мир стоишь ты же все равно так или иначе повторяешь то что там хотел в дизайнер то есть это были без списке было бы тяжело но когда надо бог засунуть лекарства по текстам это пепси а там еще что-то будет то есть и есть это голоса я типа логика в доме то что по кустам допустят список когда пытался мы не смогли бы а почему не смогли нормально смогли
00:41:36 - 00:43:12
наши задачи обратиться к конкретному дому услу то есть если в дереве умножь вам обращаться по вложенности ключей или там рекурсивному обходу то связанном списке нам нужно будет пройти всего лишь там папа каждому зависимому элементу до путь получится чуть подольше но в общем и целом мы дойдём до этого элемента мы сможем к нему обратиться к тому же если мы говорим стиле для стиле безразницы стиле мы не указываем вложенность каждого элемента мы можем обратиться например поедешь никого конкретно rowenta
00:42:31 - 00:43:41
мы можем сразу целый скоб дом узлов брать и нам без разницы в иерархическом уровне они будут находиться можно что-то накладывать друг на друга ты словно white позиция абсолют и дальше зад индексом руль и вовсе абсолютно нет верстать но ты говоришь что допустим нельзя я тебе говорю что можно папаша абсолютно нет же station этой задачи как высчитывается то пусть но актив не будет таким адаптивным это уже другой разговор речь идет о возможности возможности есть например не знаю экспорт html документа из ворда все элементы
00:43:05 - 00:44:50
об снова позиционирует абсолютно это кстати основная проблема но зато это позволяет добиться того чтобы вордовский документ как что мало страница выглядела абсолютно также то есть то что это не удобность то что с этим трудно работать это все нюансы возможности есть тот именно хотелось чтобы ты порассуждал зачем нам столько всего смотри алгоритм структуру данных очень тесно соответствует существуют вместе с алгоритмами потому что под каждую структуру данных есть алгоритмы работы с ними конечно да ты называешь фильтр вот
00:44:00 - 00:45:28
скажи мне фильтр там это не знаю алгоритмы работы с какими с каким типом структуры все объект и каким образом с ним работает возвращаешь строили фолз то пошло кого-то условия ну то есть 2 допустим всегда три страйка но здесь буква а или буква п и вовсе вернет вас всех с буквой буква б то пусть не злого учёного сама его идеи то что фильтр вернет тебя новый массив с уже отсутствующими лишними значениями по какому-то условию то есть вот это типичный алгоритм а представьте септы делает руками что те можно отфильтровать
00:44:43 - 00:46:23
вот представьте нет фильтра как бы ты фильтровал свой массив пока стыдно вот по два массива 1 многое другое на старый эти поделаешь цикл строишь много завалишь старые врать ты бы вынужден город пробежаться по всему массиву и по условию там не знаю запушить эти элементы в новый массив и вернуть уже из функции этот новый массив то есть это уже смотри сколько кода это не простая функция фильтра собственно вот алгоритмы нужны как раз для того чтобы эффективно взаимодействовать со структурой данных и
00:45:34 - 00:47:04
грамотные как бы выбор структуры под решение конкретной задачи как раз позволяет тебе использовать эти же прекрасные алгоритмы чтобы эффективнее манипулировать этими данными ладно мы засиделись с этим вопросом стас давай дальше так перейдем к секции pv папе она у нас сегодня будет небольшая но тема важная ну наша любимая тема конечно же это иван тулуп как устроена винт лук и зачем он нам нужен как он нам помогает luxe к цикл сразу скажу если ты пытаешься этимологически разобрать это слово у тебя ничего не получится это неприятная
00:46:19 - 00:48:05
штука в в браузере если ты знаешь как это работает то этим этимологически ты сможешь забрать что такое event log потому что ну в принципе да это лупа событий но как бы надо понимать как это работает под капотом там как как это устроено вообще в целом почему вы wan клуб это такая важная штука который постоянно говорят постоянно спрашивают почему не знаю нужно об этом знать как спрашивать женщин это выражено этот ивент лук дротики но хорошо давай давай на практических примерах что происходит когда ты пишешь
00:47:19 - 00:48:51
set time out вот и объявляй задержку в этот код выполняется через через секундочку это меньше либо меньше вас это даже допустимо напишешь но все равно это будет тебя не сразу рукой крепко подождет полна вот как ловим [музыка] хорошо вот типа все выполнится вот что это за магический тег но это время рассказа код выполняется эта функция что-то делает и не допустить его наверно она выполнить в конце выполнение этой функции когда ну а если у нас тобой 20 set time out of 50 promise of еще 30 request не машин
00:48:03 - 00:50:06
фреймов ну как ты будешь понимать что когда выполнится просто там не знаю наугад думать сейчас вот это может выполняться может может его не вот это выполнится как ты понимаешь что малый доводкой ты понимаешь что все тайм-аутом выполнить тогда-то или там не знаю promise написал ты понимаешь что он выполнил ст вот здесь добавлять это условие чтобы таймер становится но при условии честно говоря не очень понятно хочется понять вот давай так но ты сказал что мы там мы ждем какое то время как в чем заключается вот это ожидание как мы ждем
00:49:12 - 00:51:06
что нам нужно сделать чтобы начать ждать пишешь либо пишешь с это интервал по кругу будет не твой кот пока ты не не это лишь этот интервал ну точно хорошо а вот когда наступит тот момент ожидания то есть ну вот мы написали set them out в какой момент мы начнем ждать вот этот вот промежуток времени когда мы вызываем учтиво но то есть по логике из мы можем написать тайм-аут кэшбэк , 0 и он вызывается сразу если у нас после этого кода ничего не идет нет то моментально пройдет то что идет после этого кода
00:50:07 - 00:51:43
потом выполнить скорее что так заработал но она работает чуть посложнее все-таки саша например через делаю ну давай второй посмотрим на поиски может боль нам проще будет да вот давай это та с примесью им пока рассмотрим пока влад этот пример да я уж про жизнь сама можно как это работает [музыка] собственно вопрос постой в каком порядке я увижу концу люди здесь конечно немножко ошибочка вернет функцию да в каком порядке если ты скажешь да кабы центу наверное не все так очевидно правда у меня душа болит
00:50:54 - 00:52:39
все ну во первых сцен надо вызвать еще науки я извиняюсь но мы все понимаем как бы что предполагается что это будет вызов а второй вариант вообще хороший вопрос него все счет покажет полу покажет значит еще раз тот вариант seo б правильно почему почему первый будет sim ура прошла недавно тут вот сразу вызывает но подожди вначале у нас идет сет поймал этапа начале мы должны подождать а потом вывести а потом у нас promise и только потом мы дойдем до вот этой обычные функции никому не интересно я все равно
00:51:54 - 00:54:00
хочу понять вот как то что что ждет то есть то есть что именно ждёт вот этот вот тайм-аут то есть мы же может быть и по в любом месте написать этот сайт тайм-аут как ты определяешь что вот-вот мы уже ждем какой-то тайм-аут или мы не жди какой там что вот джесс runtime я у тебя ждёт тот поток кода который исполняет я не задумывался почему то в реальности то чем что-то ну код который прямо сейчас выполняет стек у тебя есть так это собственно все то что будет выполнено синхронно именно синхронно без всяких остановок если там
00:52:57 - 00:54:40
wild а у тебя все остальные кусочки кода будут ждать пока этот файл не выполнится собственно это вот все выполнить синхронно вот то что ты горишь тут будет себе но тут тоже не совпадение потому что у тебя есть приоритеты у тебя есть разные типы задач у нас вот есть set time out есть про мясо это задачи которые помещаются собственно в очередь задач не когда-то выполняться когда-то мы с тобой не знаем когда мы даже не знаем когда вот этот параметр зов выполняться точно по времени мы не можем это предсказать
00:53:49 - 00:55:05
потому что это от его клуб зависит вот но у него приоритет выше тебя все время до чем у таймера сначала резолвится все про мясо которые могут развиваться которые уже готовы там к тому чтобы за резолвится после этого идет проверка по задачам типа таймеров ну вот если разбирать этот конкретный пример вот у тебя set them out которые в а он уже наступил потому что 0 миллисекунд и после того как завязывается promise и начнут крутится твои set them out ну точнее начнет крутиться иван клуб и смотреть какие у
00:54:26 - 00:55:47
тебя задачи есть которые можно взять то есть таймер и выполняются по следу очередь они выполняются не в последнюю часть с меньшим приоритетом чем promise а то есть сначала у тебя упал няется стек стек очистился запускается иван клуб смотрит твоего через задач если в очереди задачи есть promise он вот туда пихает встык выполняет promise we promise выполнился еще раз идем в and look он начинает крутиться еще задачи для выполнения смотрят set them out все выполняется этому если там где задачи promise i ctm элт означало займет
00:55:06 - 00:56:23
promise выполнят а потом уже будет затянут при этом на самом то деле функция может c таймер может завершиться намного раньше чем он реально будет там обработан то есть момент проходки он посмотрит что таймер истек если он истёк то мы что-то делаем таймер может истечь так скажем так достаточно давно винт лупу неважно когда он истёк у него есть просто сам факт что он истёк вот очень важный момент это проучить событий причем это очень важная модель вин клуб это то что работает везде и в браузер и на ноги на сервере то есть
00:55:46 - 00:57:17
один клуб это то что позволяет нам как бы добиваться синхрон шины нашим синхронном java скрипте и знать это это прям вот см островная история но мы отсюда можно вообще выкинуть promise i set them all the и просто использовать события банально так это кликаешь у тебя не происходит синхронно срабатывание вот по клику чего-то сначала это добавляется в очередь задач тебе нужно обработать клик ну так как у события самый высокий приоритет то конечно же они возьмутся первыми но если у тебя уже занят основной поток то есть стык забитый то
00:56:36 - 00:57:53
клик у тебя не начнет внезапно обрабатываться если у тебя интерфейс заблокированный это событие добавится в очередь но обрабатываться не будет мы сначала дождёмся все синхронные штуки которые есть и только после этого будем охватывает клик поэтому так важно писать код который блокирует интерфейс чтобы ты мог кликать у тебя сразу что-то срабатывало если у тебя большая долгая задачи и надо разбивать но те же макро тоски микро тоски чтобы ты мог не блокировать пользовательский вот это супер важная вещь океане про чем
00:57:15 - 00:58:24
в первой главе лёрн java script точка ру да но мы еще дойдем до этого так будем переходить к следующей теме но она может быть будет поближе мы уже кстати немножко затронули про инструменты вот ты что-то говорил про в pack давай по детальный тогда поговорим про сборщики вообще зачем нам с тобой нужно сборщики и у нас еще есть такая штука как task райнеро тот же gold например и зачем нам нужны не знаю этой то почему есть тасс крайнер и отдельные отдельные сборщики дождик ты зажигаешь вперед на самом то
00:57:48 - 00:59:21
деле я хотела бы разобрать тестом вопросе которую мы отсылали кандидатом ты написал что сильные стороны в пока это возможность подключить разной конфигурации типа гоу по и вот хочется понять не колпак хочется понять как так получилось потому что мы когда читали мы были крайне удивлены как же ты был баг спасибо можно связывать и это просто покрутишь webshara выпускник начни с рассказывать что такое vopak что он делает как он работает ну может быть в общих чертах но собирать получаются с исходных файлов
00:58:36 - 01:00:20
. bangers к с html либо чтобы другого торгу типов препроцессор что там накинуть можем покинуть вот это все собирают может отжимать кошки картинки проживают и уже убил за это дает этому пускать то есть вы получаете больше четки оптимизации чтобы не делать так он решает что эти файл сможет обработать эти не может говорить ну допустим берешь к поехать к вот счас кресло и он говорит что что вот в этом походе из этих стилей скомпилировать в ксс вот и он покупать скомпилирует но нет у не скомпилировал потому что ты ему дал
00:59:26 - 01:01:33
какие-то файлы как он узнает что вот эти файлы этой именно сад что их нужно компилировать определенным образом этого же файла я расширил как этого расширения там способ притирки может быть даже с портфелем или соснул паком путаешь у которого обработчики на каждый тип файла уже из коробки идут вы пока этого не умеет ионова пакета в кафе вырос это пишешь как пишешь что для этого еще нужно выбрать как давай на примере саса чтобы нашего парк скомпилировал наш прекрасный сам скотт что мы должны написать
01:00:30 - 01:02:03
конфигурации вы пока вот этот лагерь был вот отлично loader нам нужен вот это пишешь это и просмотра века точно кот пишется тест вот ты пишешь решения пишешь not sound котик я понял не работает ну вот это уже близко то есть нам нужны laughter и со своими конфигами на то есть так и есть вообще в пак как вы полку ты указываешь какие файлы откуда брать ты же мы не указывает что вот смотрите есть папочка там не знаешь кто в папочка salsa папочка html от этого не делаешь вот если ты описал тоски для гоу потребую
01:01:22 - 01:03:07
конкрет сказал так вот мой task обработки хтмл ок и там не знаю вот те папка вот тебе файлы делаем не магию положи сюда так ты делаешь мы уже разобрали есть laughter и на к что является основным входную . как он куда-то вчера штаб тяжести болт шестерых ты уже прописываешь что те же шрифты городка собирать смотри ка мы уже мы открываем новые возможности то есть вы пока все таки берет как entry point один файл правильно а дальше смотрят уже зависимости которую разбирает из этого кона вот исходя из того какие лизал дыры под
01:02:16 - 01:04:28
какие то знаю модули тем способом и обрабатывать хорошо ты вот скалкой с с nano теперь скажи мне вы пак работает с с нами еще вопрос какие то почему плавает оживает и тоже живая справляется так булок раз потише выплатили забот не помню какая ваша зарплата авансы давай к нам нас с весело да чертовы углубились мишка в лазером может быть все таки по сравниваем ну заборчики task райнера то есть сборщик понятно ты уже объяснил как он работает разобрались тасс крайне то зачем почему на мне и выкинуть сборщики оставить gold
01:03:24 - 01:04:58
ну все вроде жили нормально с gulp им собирали писали эти конфиге огромные ну с vape com те же самые огромные конфиге остались но почему-то gold умирает жить да жить будет потому что 1 free вовка всех используется ряд что несмотря что ты имеешь аду используются [музыка] то есть там нужно может выкинуть конфеты приписать so cold это же чувства но какая вообще принципиальная разница есть вот у вас крайнер и сборщика чем отличаются но в целом идеи этих двух подходов просто всякие про что-то стране сборщики но во
01:04:16 - 01:05:59
первых типа ты можешь постарайтесь как собирать под прот как обучаются по надо может хоть она у тебя тоже угол галки тоже можно но то что наверно заборчики hesco это единица вот это вот это в уголке реально на какие-то расширение приписывать все попытки тоже можно но в галопе это тоже может точку входа сделать это не так сложно когда ты собираешь галопом как ты пишешь свои пути спросить когда просто собирал галку на тоже хорошо ну удачи но через собственные тоже так можешь прописать указать куда
01:05:09 - 01:06:59
она библиотека вот собственно угол по вообще нету задачи связать твои ресурсы голтон примитивно устроены его задача получить файлы на вход и получить что-то на выходе все больше он ничего не знает он не будет перелинковать твои файлы как то друг с другом но если ты конечно специально это там и начнешь как то делать уже сам со своей стороны то есть внутри gulp а не тот каких-то какой-то магии которые за тебя сделает а вы пока такое уже интегрированное решение она уже позволяет тебе писать код как бы ты
01:06:11 - 01:07:26
писал ну если бы сборщика не было допустим да в теории вот типа по самым последним старт дан стандартам но при этом все твои ресурсы будут перлин кованы все твои джинсы будут связаны все твои картинки и что угодно будет связано правильными ссылками ты можешь управлять этими ссылками через конфигурацию в группе ты просто пишешь половина возьми вот эти файлы положи их в ту папку все как как получить пути до этих файлов этот это уже твоя ответственность решить как ты будешь это делать можешь функции писать можешь просто
01:06:49 - 01:08:07
статический написать пути эти но по-разному люди делают vod-ok давай поговорим про из лент используешь ли ты есть лент для чего он вообще нужен что ты решаешь через если мы можем просто используют но это новый леви секунд наверно какой то результат не чтобы все было красиво но у тебя есть там кудри view какой-то на сейчас на работе разбил но часто ли у вас линд и запускают часто ли у вас возникают такие проблемы что не знаю на кадре view там 95 процентов комментариев про точки с запятыми про скобочки про два пробела и так далее
01:07:28 - 01:09:22
[музыка] ну вот собственно эту проблему решает если in чтобы ты не тратил время на то что можно автоматизировать все вот эти правила про пробелы проточки запятые про то как писать функции имена функции файлы в так далее этих правил может быть сколько угодно но все что можно автоматизировать чтобы не переносить на кадре view оно выносится в есть лент вообще все все правила которые есть это не обязательно правила которые там только в дефолтных конфигах или еще каких то можно свои права написать на проекте решили что
01:08:29 - 01:09:37
функции так-то называются все у вас есть если правила вы на кадре view на это времени тратите у тебя это все локально ч каяться и потом всякие еще растекается и эта штука позволяет существенно экономить время разработчиков чтобы вот не заниматься поиском вот этих точек запятых кто бы течение поставил и так далее ну и плюс позволяет сразу от отловить тебе какие-то проблемы в том коде допустим не знаю то я функция должна была что-то вернуть а ты не вернул orbeez лейн скорее всего это подскажет или там у тебя не ли системная ликером и
01:09:08 - 01:10:22
используем например тернарного оператора то есть очень часто предлагает а вот про и кстати частенько ругает сумела for пачек очку чем хочет но во-первых в любой команде скорее всего есть какие-то свои специфические правила для если лента если у вас команде решили что for нельзя использовать или наоборот только for можно использовать а затем положить комбу федерации ругать или сюрпризы на дефолтные объявление это не знаю улыбкой аргумента или конского то аргумента ладно в принципе все понятно пробовали
01:09:45 - 01:11:27
ты настраивать если нкд давай так что поставил досрочно использовал его он бы не настраивал ok наверно это вопросы по если mtu мы закончим так ну поговорим с тобой про последний инструмент который хотим забрать это докер вот ты говорил что там какие это у тебя сложности были за докером я могу процитировать сильные стороны докер это собирания контейнеры для проб и для df то есть кот ним в контейнере а затем его пулим в прод чтобы было entity неэтично и ничего не упал построчно но надо написали качестве начать а то там
01:10:36 - 01:12:18
совсем натали что да вообще зачем тебе токи в при разработке нужен ли он теперь вопрос а дальше из него уже будем выяснять что там у тебя за проблемы с блогером но докер нужен чтобы вытащить вот хостинг такую машинку и чтобы не прописывать там допустим но чтобы не ставить тот же и так далее сразу заявил контейнер запустил он совсем независимость запустился а еще это все дело можно прикрутить к будет вам все или сейчас circles и тогда там при каждом пушек твоем он прикажет укорить и он уже будет отправляться
01:11:31 - 01:13:02
появляться прикольно а зависимости нужны чтобы допустим не стороны но но именно там в версии указывает чтобы ничего прилетела из вас допустим много и либо что-то что-то поменяли как они попробуем вот это так но хорошо люди же как-то жили без контейнеров раньше то есть они как-то держались ночи сейчас тоже есть не знаю очень много production of там нет никакого докера но там тоже все автоматизировано как так получается для чего нам вообще нужен докер но это это не такая штука что типы если нет докер
01:12:17 - 01:13:41
это мы не можем автоматизировать диплом мы тепло и можем automotive же без проблем а в чем тогда она преимущество докера позволяет режим изолированность чего отчего ну допустим просто поменял сервер ноды половина библиотека хакер когда там одна разве версия надо ничего особо меня htc кто-то чтобы применяют случаем или нет подожди у тебя есть но version менеджер который позволяет указать какой анода у тебя в проекте используется и тут докеры как бы ничем не помогает а не решает эту проблему рождества даже не про версию но
01:12:58 - 01:14:44
да ну вот и говорю что у тебя там несколько проектов запускается на сервере но а как тут мой докер то помогает у тебя есть изоляция на уровне операционной системы называется процесса ты запускаешь три разных процесса они друг по другу вообще ничего не знают зачем нам тогда здесь докер что я потому что бегать вот допустим чем три сервака и ты в них запарил одинаково пахнет перкаль ну а на 3 процесса это типа на разных языках и 100 запуска орлом но ты можешь запустить я не знаю вот ты берешь свой
01:13:51 - 01:15:22
скрипт и в щели пишешь 10 раз ноут скрип . джесс у тебя будет 10 процессов если ты их сразу не закроешь если они это будет висеть вот пожалуйста 9 разных процессов они друг про друга ничего не знают они не как у тебя они конфликтуют если конечно они не обращаются к одним и тем же файлом но это это не обязательно так что у тебя вот типа докер позволяет достичь какой-то такой изолированности которые ты не можешь достичь без докера ты без докера тоже можешь изолируется на уровне процессов но вопрос только где они
01:14:35 - 01:15:39
запущены конечно же под ими привилегий и так далее это уже второй вопрос но докер нет это тоже не не ни одна не ключевая вещь которая он решает он он решает несколько другую боль жилось ложку вот пример ну откатываться и можно и без докер то есть уже решили что диплом можно без докер спокойно ты выкладываешь новую версию там мастера и все как бы ну вот ну и она вышла пачки с версиями основную папочку просто link уж к нужной версии вот тот карт это просто изменение линка на предыдущую папочку допустим последние
01:15:09 - 01:16:38
пять папочек но вот смотри может быть у тебя была такая проблема что ты приходишь на проект на проекте там не знаю требуется python определенной версии руби определенной версии печь в плен версия москве определенной версии редис определенную силу еще что-нибудь еще что-нибудь так далее эти халип может быть 1000 вот было ли у тебя такая история или ты приходил и там не знаю только но да и все не оставит вот об их смотрелись и то есть была такая проблема ну вот как думаешь как только с этим связан такая
01:15:53 - 01:17:17
мощь указать какую версию подбрось но какой отсюда напрашивается когда у тебя есть кто-то отловил такую версию пресетов . зачем если если выброс обновиться то на их родные не образ а именно на самой машинки машинки то все равно поднимется просто подожди версии печки живет внутри докер-контейнер а ханна не живет на как глобальные певички где-то там на сервере даже записал изоляция утра есть без контейнера то если без контейнеры понятно что если ты обновил глобальной версию php конечно у тебя будет эта
01:16:36 - 01:17:58
проблема что ферзь обновиться для всех это да это как раз одна из проблем которые шокируют не основная основная как раз в консистентными окружении чтобы у тебя окружении везде была одинаковая и на локальной машине одинаково окружение и на сервере вот но куда разберем твой кейс говорю что как то там с накатом работал вот но для работы на кста у нас с тобой нужно только надо ничего больше не нужно нужен ли нам в этом случае с тобой докер как ты думаешь обо что slug стол к концу пока работает но это если у тебя
01:17:20 - 01:18:57
какой-то такой монолит который время сразу держит inox t backend но есть у тебя репозитории чисто на кс а зачем тебе весь монолит еще дополнительно просто на кд и у тебя только надо получается ну да то есть и положено но ты все-таки обратная совместимость довольно таки неплохая ну а не каждый брикетик какие-то штуки но в целом там если у тебя будет 10 там на севере 14 и конечно есть вариант что что-то произойдет не так но плюс-минус можно можно с этим жить до если ты прям совсем переживаешь конечно можно запихнуть
01:18:09 - 01:19:45
докер никто не мешает но все-таки надо понимать докер это не бесплатно talking & the overhead и но когда ты горишь масштабируемость как раз вот админы не очень любит докер по в плане того что он живет performance иногда дешевле просто попросить админов раз катить правильную версию на все сервера чем держать докера которые там нибудь не знаю съедать 20 процентов производительности сервера просто так просто потому что это контейнер но это уже за проезд до apple и где robson окей ладно с докером разобрались да да с
01:18:56 - 01:20:14
докером разобрались давай тогда про тесты поговорим вот ты что-то вот-вот ведь и написал про тестирование и мы подумали почему бы не обсудить с тобой инвестирование может быть это будет тот самый выпуска где мы действительно можем поговорить про теста сейчас мы и узнаем расскажи вообще писал ли ты тест какие тесты ты писал и и зачем ты вписал да но зачем чтобы проверять чтобы ничего не упало тоже важно intent с писал то есть это заходим на сайт авторизируемся ты крем смотрим что все двигается охватим сайт
01:19:40 - 01:21:18
но сохраняем крути она выросла сходить давай начнем с простого какие виды тестирования у нас существуют узелок тесты ты края теста такое слышу удобный интеграла мы конечно в тестах не берем обычно они две операционные тест ударными миграционное есть артем в чем отличие юнита от интеграционного теста ну и июня тест еще можно назвать функциональный тест или модульный тест вот в чем отличие интеграционных и модульных тестов статуи тестируешь fox 10 там но работоспособность функцию то есть вентиляционные теста это ты тестируешь
01:20:28 - 01:22:05
как себя юзер автоматизировано при этом сигнале б л т м т м тест это проверить тоже а пешку наташа мы там не сломалась моя странность еще отправляешь давай по порядку что мы тестируем с тобой в июне тестах что является объектом тестирования в июне тесте переменную я боюсь просить давайте нарисую пирамиду тестирование но как мы с тобой будем тестировать переменной что переменная задано что лет вот так вот что что собственно когда ты пишешь unit-тест вот что является объектом тестированию что ты будешь щупать из
01:21:21 - 01:23:00
меня измерять изменять и так далее эти функции свой речках не работает что меняется кейном может сказать функция но вообще в целом вред модуль и тестируешь ты достигаешь какой-то определенный модуль хорошо окей мы в unity тестеры модуля что мы тестируем в интеграционных тестах так уже больше прощать и проданная ну мы с тобой завязываем силе вообще на конкретный транспорт в тестах на это интеграционных наверно уже почти ружье то есть поведение пользователя но поведение пользователя из как раз уже
01:22:09 - 01:23:59
повыше чуть-чуть и кстати будет классно если ты объяснишь почему вот у нас есть отдельная интента отдельная интеграционная теста почему как функции vertu собой да да это то как взаимодействует модуля маккей взаимодействие модуль ну давай теперь тогда уж про and the end разберем что такое intent на канал часть подхода к тогда тестируешь две точки у меня это прочный момент пророки прощать допустим там создаем что смотрим какой там же сон вернул проверяем что чосон воле квартире ворота привет привет ты множим тестами
01:23:05 - 01:24:46
тестируешь опишу эти вот и стал но in time тестами ты тестируешь описку а ее ответы но вот когда ты тестируешь что пользователь взаимодействует как-то сайтом что у тебя будет собственно вот объектом тестирования что ты будешь проверять в этих тестах оказалось но это ты говоришь про конкретную имплементацию теста я имею ввиду в общем и целом когда мы пишем интеграционный тест что мы хотим проверить в нем ответ меня смотри давай так вот в мод в июне тесте мы проверяем поведение модуля в интеграционном тесте
01:23:59 - 01:25:25
мы с тобой проверяем поведение между модулями взаимодействие между модулями какое поведение мы проверяем внт инди-рока каких модулей фишку мы проверяли на пешку в лиц слушай я тоже хочу себе такого фронта который будет писать тесты на моего пешку и тоже прекрасно всегда мечи его называют еще бы кондер так но смотри in the end тест он тестирует тебя всю систему целиком то есть это вообще все твои модули сборки вместе вот это intent то есть n 1 конец контента одна от одного конца до другого конца
01:24:51 - 01:26:34
первый конец это юзер а второй конец может быть что угодно может быть там не знают твоя база данных и как вот этот клик пройдет юзера до базы данных вот эта вся огромная цепочка будет тестироваться ну грубо говоря ты нажмёшь кнопочку не знает добавить в корзину что у тебя нажмете кнопочку на фронт и сделает это не знаю я к запрос на сервер что я хочу положить такой-то товар соответственно backend примет этот запрос обработает его и запишет это значение в базу понимаешь да связку то есть у тебя есть
01:25:42 - 01:26:59
юзера есть база и вот между ними стайпа и front and back and транспорт и только потом это окажется в базе должен протестировать всю эту связку ему неважно что ты там тестируешь и сколько там этих связок между посередине его задача как бы протестирует у всю большую связку давай еще вот рассмотрим два вида тестирования который в пирамиду не включают но они как бы сами по себе существуют первое это тестирование snapshot ami приходилось ли те snapshot ими что-то тестировать вообще представляешь что
01:26:20 - 01:27:41
такое теряешь очки не няня смотри скриншот тестирование это скриншот тестирования а есть snapshot тестирования есть и даже есть функция такая есть хороший пример это не как смотрел пираты карибского моря там говорят есть ключ лучше у меня есть рисунок ключа вот это примерно то же самое да когда ты просто сверяя что у тебя какой-то объект с прошлого выполнения тестов смачиваться с текущим выполнением тестов это может быть та же самая разметка типа ты сказал вот от тренды ремни приложения берешь эту разметку это будет то есть
01:27:02 - 01:28:40
напишут следующий раз тест выполняется эта функция еще раз отрабатывают возвращают новую разметку и ты сверяясь с прошлым результатом есть они совпали ты считаешь что тест прошел но соответственно ты должен гарантировать что она выполнилась первый раз у нас работа сработала правильно вот это просто штука позволяет тебе но сэкономить не знаю какое то время на том чтобы не заниматься конкретным там сравниванием там не знаю построчно были еще чего-то ну то есть когда вот есть большие структуры данных которые можно
01:27:50 - 01:28:58
сравнить да еще есть такая штука как смог тестирование не писал никогда смог теста слышал ну смотри смог смог тесты это типа когда тебе нужно просто проверить что она хотя бы работает ну там банально что у тебя страничка возвращает 200 это вот смоук тест что ты делаешь get запрос на и свернул 200 ok она вернула что она вернула ну нам без разницы она просто открывается уже хорошо а это типа вот есть у нее есть и кусок пирога ч ну да ну да и впрямь еду в обычную ну я не видел чтобы вставляли но это такая штука типа когда у тебя
01:28:23 - 01:29:54
совсем тестов нету но тебе нужно хотя бы как-то гарантировать что что-то работает ты вот эти смог теста написал и не знаю что если вообще все пойдет не по плану то хотя бы они упадут но такой самый первичный вариантом закрыть какие-то дыры ну конечно же потом надо писать и юниты интеграционные intent и это это временная штука то есть она в любом случае должна дальше пополняться более серьезными тестеры кстати говоря это типичный тест который работать и делать чтобы оценить продуктивность сотрудника если человек сидит на месте
01:29:10 - 01:30:21
значит он работает вот тут примерно то же самое чем там делает за компуктера мне важно но вот он сидит в офисе значит работает окей давай поглубже туда погрузимся в то как мы тестируем какие ты не знаю используешь принципы тестирования как ты определяешь что тестировать и как ты определяешь как ты будешь тестировать что тестировать на проекции нужно остались оплату нужно начинать с оплаты ну и дальше там но там если авторизация регистрация хорошо что оплату делают таким важным элементом то есть системы которую нам
01:29:45 - 01:31:22
необходимо срочно первым же делом покрыт тест потому что зарплата не факт не фанат типа это шло одна из важных вещей которые всегда носила попал то значит приходим к того ну то есть я наверно поймете какой шанс нет нет оплата нет авторизации что будет следующим простым списке важности сложно сказать корзина если не корзины и проплаты то есть значит и не от каждого товара и обязательно сможет корзиной без авторизации она тоже что салон формы можно все проверить не работают неплохо то есть ты действуешь по такому что если
01:30:45 - 01:32:26
есть оплата тестируя плату нет оплаты тестируй авторизацию нет авторизации тестеров этом за формы но вот вопрос в этом и состоит вот есть у тебя функциональность такая оплата вот основной вопрос что же в этой плате нужно протестировать так чтобы сказать вот у нас на оплату написано такие тесты что если они горят зеленым то скорее всего оплата работает и мы этим тестом доверяем что же такое мы во плоти будем тестировать и как ты пойми что вот это действительно стоит в оплате протестить то что формат открываем
01:31:37 - 01:33:16
ссылку вот потом проверить страницы на которыми человек переходит когда он оплатил источника бы открывается и там уж когда уже что-то платили переходим на страницу с ким су дед с вопросом допустим там много с номером заказа от этого будет создать кому заказ проверить как срабатывает на то есть те бы всю эту формочку все это функциональность покрыл бы им трендами потому что ну вот тесто в описании там нужно формочку заходить заполнять юзеру переходить на какую-то конкретную страничку с нее куда-то redirect лица
01:32:23 - 01:33:53
оплаты слов с чего поведение пользоваться которой он делает можете устроить там допустим она вилку то слишком большую сумму прямо он делал что-то давай немножечко этой ним наверное в сторону потому что я вижу тут есть большие вопросы вот я так понимаю что ты не комбинировал никогда написание одних тестов и других тестов волн ну тогда наверно ты не понимаешь почему 100 задает такой вопрос то есть почему так подробно в intent с ты описываешь все нюансы тестирования свои формочки предполагается что все таки вот наша
01:33:11 - 01:34:37
пирамида почему она пирамида потому что у тебя есть то что мы тестируем отдельно например вот как работает формочка это все-таки unit-тест будет все что в into and tasty нас интересует что конкретная формочка с конкретными данными делает свою магию то есть мы не тестируемый как вот как оно есть что то мы заполняем рук мы говорим что у тебя есть такие данные давай-ка мы их плюнем на сервер и посмотрим что произойдет есть это как раз и говорит что комбинирование разных тестов позволяет нам добиться кстати чего помогает
01:33:55 - 01:35:10
добиться комбинирование разных тестов и и даже уточняющий вопрос меня вот в чем подход когда в чем минус подхода когда все покрыто только инту эн дам только у нас and in the end с ты все больше ничего наверно было было вечность еще раз запустить все функции переменная обработки данных то есть ну допустим то что лишь число это че сок и стреляет строка это все протестировали посмотрели а потом уже заполнили формочку и отправить ему так надолго розовым мимо входа у польши будет намного труднее чем минус вот это еда ну
01:34:32 - 01:36:05
потому что кажется что это такая серебряная пуля взял написал им ту энди покрыл тестами вообще все чем можно пользовательское взаимодействие у тебя прям один в один совпадает почему бы вам не взять и потому что тнт and стс масштаба сто процентов продумать плотность unicast это может допустим реально посмотреть то есть там у вас он возникает проблема это с типами либо с такими ошибками и то ли это может оно и так я ничего нет пути тебе приходилось вот когда у тебя падает нтн тест находить причину падения теста
01:35:19 - 01:36:52
ну вот насколько как выглядел твой процесс вот у тебя упал intent с что тебе приходилось делать чтобы понять что нужно починить в реальных сосин чего подарят вот смотри я тебе приду пример твоя плата в очередной прекрасный солнечный день ты приходишь и тебе тест говорит что оплата не работает что ты будешь делать где ты будешь и чинить кто виноват что оплата не работают если брать кай пресс он записывает видос это время то стоит его что на видосе вот смотри на видосе раз у тебя окошко оплата не удалось
01:36:08 - 01:37:30
типовая ошибка допустим или какой лук но у тебя в консоль логин описан expected токен кавычки открывается фигурная скобка кавычка закрывается и какой не безумный stack trace и безумный stunt race без source map и и так далее огромный production с такой шов когда не поймешь я обычно даю дает ошибку которая три типа понимаешь но речь идет о том что все таки во-первых ты не знаешь кто виноват кроты тестируешь оплату тебя виноват может то угодно to play юзер который неправильно за полную форму не знаю там плохо работающий браузер
01:36:56 - 01:38:28
который неправильно обработал эту отправку формы когда какой-нибудь и некорректный транспорт который вместо джейсона отправил там и знакомить raw-файлы рекой блок данные пример backend который неправильно принял форму 1 пара силы или не расспросил или ожидал другие поля база данных которые это не знаю поменялся пароля backend об этом не знает он просто не смог сохранить при этом все остальное хорошо работает или может быть там не знаю поменялась структура таблицы в которой хранится твои данные и и за
01:37:45 - 01:38:57
нее не знаю в баз данных не смогла записать твой данные как тебя лишь кто виноват деле оказываются пройти весь путь этого теста для ошибок такого типа сервис мониторинга собирает такое у который вернет 500 можно узнать наверно ума либо по ошибке еще напишем тесты выдаст это проще там нету но смотри у тебя проблема в том что это невозможно узнать просто так но то есть без полного прохождения всего теста от начала до конца и без проверки каждого компонента этого тестирования ты не поймешь где проблемы в этом деле ты можешь узнать
01:38:21 - 01:39:51
шаг и даже не в курсе куда тебе сначала смотреть те придется от начала до конца самому все пройти это минус intent с то что тебе придется очень долго выяснять все пошло не так ты знаешь что что-то пошло не так но что пошло не так ты не знаешь ты можешь только предполагать искать вот а с модульными дачами например мог просто шапку поднять то есть увеличить его вдвое и кнопка оплаты съехала намного вниз и не за этой сампрас не может ткнуть на отправку формы и казалось бы да секс это не связаны тоска плату бы не
01:39:09 - 01:40:21
трогали вообще она вас упала до ее вот собственно если бы у тебя были и модульные и интеграционные тесты ты бы смог точно сказать что проблема вот в этом конкретном модуля или проблема взаимодействие вот этих двух модулей вот в таком случае у тебя был упали ну и два или три теста то есть у тебя точно упал band and now тебя вместе с ним упал бы интеграционный тест и ты бы мог сказать поэтому тест всё пошло не так и когда ты починишь интеграционный треснуть и восстановит н.п. и мы здесь понятно что делать а с
01:39:44 - 01:40:50
интеграционном ты просто поставлен перед фактом она не работает малыши концы да еще концы кто виноват ok именно внути образуются вот эта пирамидка что у нас очень много маленьких unit тестов чуть меньше есть интеграционных тестов ну и совсем мало вот этих инту эн тестов и это еще к тому же что например юнит-тесты они делаются намного быстрее чем intent и оставить для того чтобы сделать качественный г-н тест нужно что воин так вот игроков будь то есть между воду того чтобы сделать качественно любой тест нам нужно абсолютно чистое
01:40:19 - 01:41:52
состояние всего твоего экземпляра приложения это означает что должна быть база поднята в определенном состоянии должен быть padding бэкон дождь и поднят фронтэнда только вот на этом окружении мы должны запускать наш и перед каждым тестом мы должны сбрасывать все тестовое окружении дока определенного конечного уровня и это долго лоток докер описать помочь он поможет но все равно то есть понимаешь если ты сделаешь тысячу integra техно за нтн тестов она будет работать немного медленнее чем 1000 unit
01:41:10 - 01:42:26
тестов вот в этом-то вся и фишка что нос решает именно задачу чтобы какие-то конкретные элементы именно большие куски системы тестем что они работают как вот для пользователя всякие более низкоуровневые тесты помогают нам определить кто виновник где проблемы и так далее и они работают быстро хорошо окей номера сказали да давайте с тестов тогда перейдем к теме чуть пошире этот бокс но мы про него уши немножко поговорили в том числе про докер про докеры принципе все более менее понятно стало вот давай поговорим тогда проси и
01:41:49 - 01:43:32
сиди вот не знаю использую что ты сиди в чем в чем принцип вообще этого подхода соседи как-то работает разбивка на этот поэтому можешь функции нет больше про команду у тебя все танки так и любит лапы пишется код вот я допустим соседи может проверить тот же тест на если инвестировать потом уже допустим отправить ну либо те же тесты тоже можно делать связь и есть там то с ней прошел в эти пони не отправляем не справится тест это как раз это как раз continues у integrations когда ты можешь вот в своем
01:42:43 - 01:44:36
том же самом гид лобби запустить тест и так далее чтобы у тебя команда видела что ты там запушил все все правильно или наоборот надо поправить тебя эта часть continent играешь на когда мы какие-то в операции выполняем с нашими там pull request вами тут понятно в принципе а что же такое у нас сиде доставка доставка этот момент их а на то что мы можем поставить наш код типа проверенным куда надо но сколько раз за день тебе приходится дергать отмена чтобы за деплоить твою ветку допустим то есть у вас нет то есть у вас continues
01:43:45 - 01:45:35
диплома нет я это отдельный человек кандинский flaming это отдельный человек не взяла реально у них есть линд отдельный человек и continue с дипломом тоже отдельный человек как бы типа ты делаешь мерч на а то пусть же входа и она автоматически собираются вот в этом и вопрос в этом вопрос сколько раз тебе приходится взаимодействовать с админом чтобы это произошло но только если что-то упадёт вот в этом в этом и суть continues дипломата чтобы у тебя deploy происходил без вот этого ручного управления что админу написал он
01:44:57 - 01:46:32
раскатал и так далее за тебя это делает система и в том числе tdi плотно продакшн и в том числе откатывается продакшена но в идеальном мире это все происходит без того чтобы ты каждый раз писал админом и верните пожалуйста там какую-то версию раз хотите туда-то и тогда друзья сити мне это на девяносто три процента пользовать да и это в том числе ok знаком ли ты с такой штукой как zero dawn тайны дипломат когда мы с тобой диплом си без downtime а просто ты вот там в вопросе который мы писали ты написал что
01:45:46 - 01:47:20
ты загружаешь какие-то там образы докера и как-то он у тебя там переключается так чтобы все было красиво вопрос как как же это так работает что мы залили какую-то новую версию нашего сайта и у людей не 500 ошибки от и сих пор открывается почему-то рабочий сайт и нет никакого простое как же это работает специальный человек сирот blanton's который сидит и не дают 500 ошибки и высоты тоже система когда ты подпишешь код что же обновляет skoda без обновление страницы же происходит модули replacement но ход
01:46:32 - 01:48:26
модули placement запустить в продакшене это было-бы классно ну кстати говоря вид примерно это и может сделать но в теории по крайней мере на право на практике конечно же нет ну на продакшене она не так работает если бы она работал так это это было бы странно я не очень представляю как и наши тот футбол или placement будет в продакшене страшно мелок стол от всего что 500 уже не но ты тоже в курсе как работает ход модулю place мода на основании чего у тебя с бэк-энд сервером постоянный connect и теперь сервер
01:47:30 - 01:48:48
постоянно пушит изменения но представь что у тебя на сайте 10000 пользователей 2 нужно 10 тысячам пользователей закинуть вот как только вышла версия информацию о том что версия обновилась тогда когда обращаемся вы проверяю проверяют тень и считываем загрузил продолжаются получилось ну там все проще организовать же давал про это история нет нет сегодня на столько разных слов звучит но они вообще из таких разных этих тем что я даже не знаю как тебе помочь смотреть зеркало downtime это когда у нас с тобой
01:48:09 - 01:49:39
выкатывается новая версия она сначала запускается где-то в отдельном процессе но она просто запускается там стартует сборка у нас если 2 12 факт иное предложение у нас отделены этапы сборки и runtime а у нас начало нас собирается мы собрались ошибок нет макей запускаем процесс процесс запустился вот в этот момент мы можем переключить то куда смотрит у нас наши reverse proxy наши индексы мы можем соки взять и переключить на другой соки то есть у нас был процесс старого деплоя рабочий на нем люди сидели пока мы плыли
01:48:57 - 01:50:15
новый новый процесс запустился мы взяли socket переключили все все люди попадают теперь на новый процесс вот давно примерно так работает тут на самом деле ничего сложного но я кошелька упрощаю здесь максимально как только могу если там вдаваться подробности конечно там посложнее бы окей ну и мы логично логично абсолютно логично подбираемся к последней теме это у нас будет немножко про сервер так как ты сказал про naxt соответственно мы тебя немножечко по накату и помочь им но не по насту конкретно по серверу вот и
01:49:36 - 01:51:02
начнем наверно с основ вот у нас есть и джинкс который практически повсеместно и везде хочется понять почему же этот индекс везде пихают зачем он нужен почему не прочь но хорошо apache web server server который ты поднимаешь то есть пробрасывать порта пусть это 80 и 443 если тебя ссылка мой случай смог станут еще поднимаешь сервер спустя не на 80 порту этом этапе допустит прокси на свое приложение для домена допустим а зачем зачем нужны ну да за прокси почему бы просто не взять запустить ноду и прям
01:50:18 - 01:52:13
поставить ну и и как целевой процесс 80 порту ну да прям вот много запустить на 80 порту опуская ее висит она даже может ключе давать сертификат так что может вестись кстати но смотри мы с тобой сможем с этой ноды стас тот же самый грамм файлы сервис там в нас тигром из коробки можно взять и всю статью с него отдавать да и kosher нет я думаю что можно каширование прикрутите вообще насчет отеки и кешировать 2 сайты на только чинить что ты имеешь ввиду два сайта то есть два разных домена ты у нас сам
01:51:18 - 01:52:58
ошибки порт 80 это 1 . второе приложение и другим portal server режем оки и убедил окей но это просто еще иногда не очень безопасно чтобы тебя надо напрямую светила в интернет ну потому что если она упадет то скорее всего она отдаст уже не 500 какую отдает им джинкс а прямо на пишет ошибку которую с которой она свалилась но скорее всего если там не особо ничего не настраивал скорее всего будет что-то примерно такое вот яндекс и позволяет просто закрыть какие-то участки твои серверной инфраструктуры
01:52:10 - 01:53:21
просто можешь скрыть все что не хочешь показывать и показать все что хочешь показать вот эта штука которая позволяет гибко настраивать то что у тебя может светить наружу вот ну и в том числе может как-то вот заниматься нагрузкой то ты правильно сказал что она может распределять если у нас два сайта она может допустим если у тебя два домена но при этом один из приложения да она может сделать так что тебя два домена смотрит в этим процесс это конечно же можно сделать или если у тебя sl тоже можно чтобы на разных
01:52:55 - 01:54:05
портах она обрабатывала все на одном процессе окей а есть нас много экземпляров нашего сайта а домен один чем является на шишек ну долот балансер да он может восстановить том числе вот где не ожидал для терминами сыпешь и вот где нога тирамин и не выцепить окей но это такая уже пошла архитектурная тема конечно давай поговорим про ноду раз уж мы тут все правды про но да вот в чем преимущество но ты как ты считаешь зачем она у нас нужда есть вот столько всяких разных в бэг энд оф есть там печки там кучу фреймворков руби
01:53:30 - 01:55:26
отдельно ожидал живет . да вот зачем нам нужно но дано бэг-энде какие у нее есть из кейса для применения что владыка что меня ослушаешься такую сторону прочь ну вот вот тоже сильно помогает когда мы ходим то есть раньше мы же не знали что такое а пока пусть ну то есть потому что на сегодня либо фэнтези любому мода который действительно помогает разрабатывать и астрономикон то мне кажется это больше про бизнес то есть надо постимеэс к мысу фронта который знает же съесть бы кандер который тоже пишет на джесс и типа так проще мне
01:54:28 - 01:56:16
кажется быть full stack разработчикам то есть ты уже но если раньше на джесси можно было писать только фронт руслового то сегодня уже того можно прикольно то есть него не на ночь ничего учить у меня первый вопрос тебе сразу а почему тогда вообще все писать не на ноги ну кажется что это идеально у нас можно писать и frontend на ночь и backend на но не так давайте вообще выкинем и пить перерубе и всё на свете с тем только но там хотел добавить что нет ничего хуже чем бакенщик пишущий точнее фонтанчик пишущий backend и наоборот
01:55:22 - 01:56:33
подключил the middle с базой тоже сюда по быстрому то есть это реально легко ты там писал про мангу мы еще хотели про мангу поговорить но наверное мы уже не успеем но давай подумаем с тобой вот ну есть же куча альтернатив но я то есть окей ты хорошо назвал кейс что допустим когда у нас bug in der это же java script терра ну мы набрали бы kinder в которых знают живо скрипт там не знаю full стеков набрали да они могут и бэкон писать и фронт тоже могут и приложение писать и приложение могут писать окей но есть
01:56:01 - 01:57:28
куча людей которые допустим не изучают вообще java script не значит надо на изучает там php руби вот в чем но если тебе нужно сделать выбор типа взять технологию под написание бэг-энда вот в каком случае ты выбрал моду какие вот критерии выбора ты бы сказал что вот это точно надо побыстрее когда нужно что-то быстро а сокеты ну типа чат написать на ночь можно сделать много ok чат хорошо а в чем но вот в чем будет преимущество если мы с тобой соки сделаем на ноги вместо того же php почему будет плохо если мы с тобой чат
01:56:50 - 01:58:23
который работает на сокетах напишем на печке вещи вроде бы нет чертах есть даже есть доктора который позволяет раб сокетами напрямую когда никак но все-таки люди почему то говорят что надо для каких-то задач лучше подходит или каких-то хуже хочет туда не чтобы особенно для местах наибольшей особенности какие вот есть анода воду носит это это напрямую библиотека нет но если это ответа на это напрямую связано с новым клубом конечно же вот такие особенности у ноты которые дает ей event log а мало по счетам же всего понять
01:57:44 - 01:59:41
поочередно но кроме томаш татар спустить обучающие ну да вот есть приоритет письма не клонит в . подожди у нас во первых давай разберем наш чем вот что будет происходить если мы сделаем 10 подключений копеечки сервера и 10 подключений к надо скому сервер письме он создает будешь из маркеров но не worker фон прям процесса овладел получать навыки нужны будут столь же ну вот как это будет работать в ноги что у нас с тобой один процесс и 10 подключений как же это работает ну как ты думаешь я вот мы тебе говорим про
01:58:41 - 02:00:35
event log может быть есть тут какая-то связь а то есть те задачи которые но допустим государства один процесс во вскинутом функции при этом здесь рассказывали эта функция еще четыре слова типа же для каждого будет свое свой перечницу задача для каждого обращения что-то что-то очень сложно сложно 4 даже прямо смотри но мы там прям развернули проявил клуб как он устроен у тебя есть очередь задач и каждый твой коннект это новая задача в очереди то есть допустим у тебя вот в данный момент обрабатывается какой-то
01:59:43 - 02:01:17
connect он у тебя стыке лежит да там есть куча вызовов пока вот эти вызовы обрабатывались к тебе десять человек еще постучались на сервер все вот эти 10 обращений попадут в очередь вызовов соответственно не выполняться после того как ты выполнишь текущей полностью тебя сейчас то что в обработке она выполнится и разберется какой-то из следующих а уже по алгоритмам которые уже решают но да как это сделать вот ну работы примерно так то есть они будут копиться в очереди все а процесс при этом будет висеть 1 то
02:00:32 - 02:01:39
есть в чем минус подходы php тебе чтобы обработать процесс тебе нужно каждый раз стартовать его то есть ваш узко ешь выделяешь память там и подключите эти библиотеки конечно есть штуки которые позволяют от все упростить в ноги ничего этого делать не нужно в ноги у тебя всегда все запущено вообще все что есть вот и может динамически конечно подключать всякие либо тебе в целом не нужно ноту с нуля поднимать то есть она запущена живет как процесс ты подключаешься и ты можешь очень быстро очень дешево обрабатывать
02:01:06 - 02:02:10
подключение вот в этом и фишка но ты что она может много коннектор держать за счет вот этой в очереди и за счет того что у нее уже все подняться наверное все таки минус-слова как правило перезапускать а и секретов и великим ваш чудо поменять преследующего горки или допустим там уже будет кого-то нового их типе на продакшен но мысль мы даже чуть позже чуть до этого разобрали с тобой в принципе как решается эта проблема через дерево downtime deployment но мы можем просто развернуть отдельный процесс и переключить когда он
02:01:38 - 02:02:47
будет готов и в принципе у нас простое вообще не будет так что так что здесь это проблема не настолько уж существенно конечно да я здесь может быть такое что у тебя какие-то connect и могут отвалиться когда ты переключать но поэтому переключатель надо собственно аккуратно там и существуют такие вещи как стики station из-за этого что при переключении людям присваивается кука и по это копия прелестно какой сервер стучать чтобы не закрыть сессии для тех кто ещё не получил ответ но это вообще супер отдельная тема но в целом мы
02:02:13 - 02:03:21
разобрали то есть преимущество но до в том что у нее есть и в and look который может держать в очереди очень много соединений прямо очень много и они не будут ничего блокировать вот фишка в чем то есть они у тебя как бы лежат но выполняется конечно они последовательно это это факт а главное что у тебя нету блокировки никакой вот блокирует только твой кот сейчас который в данный момент выполняется ok ну я думаю добавим заканчивать ну да окей давайте заканчивать потому что мы же совсем таких карт карно тем начались
02:02:47 - 02:04:07
у нас еще мы еще над этим туда сядем время у нас уже прилично прошлом так ну что стоит подводить итоги да я предлагаю влад тебе высказаться перед я ну хорошо ну что могу сказать я думаю валерий уже понял что есть огромная просадка по базе по базе понимание java скрипта как он работает что такое винт лапу ну вот скажем так middle разработчик точно должен объяснить какой работает объяснить на пальцах на уровне там примеры на кубиках объяснить даже своей маленькой сестренке клуб это наше все на нем строится вообще весь всякая система
02:03:26 - 02:04:58
java script и знание его может сказать что ты не трогал там джесс в принципе то есть ты используешь какую-то магию что ты можешь ожидать что еще есть хороший части то есть чем что мне понравилось лично очень много терминов которых ты знаешь и используешь пусть там не каждый ты знаешь до конца не каждый ты можешь раскрыть как работает но в принципе ключевой набор слов от семантическое ядро у тебя есть знаешь весь набор этих страшных непонятных кричалок осталось только разобраться как они работают на мидл
02:04:12 - 02:05:47
разработчика я я могу сказать что пока не готов тут надо вот разобраться в основах основой томас 1 2 главы или java script ru чтобы отскакивал от зубов в этом это винт лупа синхронность типы данных вот очень удивительно что ты завалился на вопросе про структуру и алгоритма мне казалось ну то есть это уже такой этап тем более ты работаешь там ни в какой то там и слова галера нормальной организации грибку структуру данных это каждый программист должен ну хотя бы там слышать отдалённо что-то и понимать общую такой структура да ну
02:04:59 - 02:06:45
пожалуй вот такой окей так ну я начну с позитивного наверное еще и отметил то есть поход того что мы спрашивали видно что есть у тебя ну такой приличный коммерческий опыт решение задач там действительно знаешь очень много терминов но конечно когда мы начинаем уточнять что это за термин тут иногда волосы дыбом встает от того насколько камин не вписывается в то о чем мы говорим вот все-таки если ты знаю говоришь какой-то термин но хотелось бы все таки step и понимание что это за термин потому что когда мы говорим про там
02:05:49 - 02:07:22
замыкание и услышать про миссы это конечно но в ступор иногда ставится потому что вещи вообще параллельные вот поэтому хочется вот все штуки термины которые вот не знаю чувствую что плаваешь но подучить так чтобы там ни к тебе не придрались с каким-то совсем простыми такими придирками вот классно что ты пишешь тесты что ты вообще в курсе там более-менее как что устроено конечно хочется поглубже понимание вот этой пирамиды тестирования потому что без понимания вот этой пирамиды будет сложно понять как писать сами
02:06:40 - 02:08:07
тесто и что тестировать как тестировать чем тестировать вот это важная штука и чтобы продвинуться дальше конечно же это от знать ну вот из вещей которые прям совсем меня смутили это конечно базовые знания ps тут я ожидал наоборот совсем другой картины что позже ясно бороться очень хорошо ответишь а дальше чуть послабже получилось вот ровно наоборот и конечно ну знать такие вещи как замыкание или как устроены promised прям маст-хэв но в том числе что promise возвращает promise ну как как же без этого жить то то есть если сейчас
02:07:23 - 02:08:51
получается там лишить тебя вот этого синтаксического сахара то все как бы работа встанет как рисовать promise и непонятно вот поэтому конечно же базу надо подучить сто процентов вот и для меня это прямо критичный фактор то есть на мидл ой я тоже не могу сказать что проходишь вот пока база не будет на таком уровне чтобы мы но не знаю могли бы точно сказать то что не знаю вот про замыкание ты разбираешься что это такое вот пока этого не будет сложно будет там сказать что это прям видел уровень вот все-таки от метла вот мы
02:08:07 - 02:09:26
наоборот даже сегодня вопросы задавали такие знаешь уже который много раз за далее как бы мы их немножко еще упрощаем но вот даже на этом уровне видишь возникают проблемы то есть эта штука которую надо обязательно проработать вот поэтому моя рекомендация лен вот скрипт ru ну а на это стандартная рекомендация в каждом нашем выпуске повторяйте основу повторяйте базу ребят это без этого сложно будет дальше писать код ну и собственно когда вот возникают просадки по базе у меня всегда вопрос ну вот как человек без
02:08:47 - 02:10:00
этих знаний пишет код то есть как он понимает что делают его конструкции языковые языке как он снимай что происходит вот и без сзади базы конечно но человек пишет это так сказать да для него это черный ящик который что-то делает должно быть какое-то более-менее абстрактно и понимание что это такое вот в общем такой review то есть в итоге надо подтянуть базу то что есть коммерческий опыт классно но как бы не повод расслабляться надо все-таки изучать изучать язык изучать технологии которыми пользуешься
02:09:23 - 02:10:44
вот это будет только в плюс вот ну и спрашиваем мы тоже спрашивали в начале то что почти на каждом собеседник есть поэтому точно будет в плюс вот такое у меня review и давайте теперь послушаем твои впечатления как как считаешь как прошло [музыка] это очень хорошо брейншторм у которого давно не было глупо потому что все-таки у меня к жизни я действительно я начну писать код лопеза слов то есть и только потом уже какие-то ошибки уже три типа рабочий изначально ну типа тебя надо написать вместо ночь вот короче это
02:10:03 - 02:11:37
пишешь вот примерно так и научиться то есть я не училась но вот и сегодня как и пола время пришло и начать учить поручить разобраться потому что это типа с на когда покрытом год эти два когда ты хочешь знание основ мы действительно помогает не накосячить потом либо писать проще спасибо за вот такой небольшой москва штурм потому что я редко кто мы про это базовые вещи больше the local как работать вообще не что может пойти не так ну большой фронт-энд может быть вот у нас новакович но тебе любом случае спасибо что ты
02:10:50 - 02:12:29
пришел потому что она прийти на публично собеседница тоже как-то надо иметь смелость тем более что там вот как раз вскрываем там то что люди не особо может быть хорошо знают вот поэтому у нас всегда бесконечно респекте кто к нам приходит ребята вы молодцы вот валерий молодец сегодня выставил эту вахту теперь знает что ему нужно подтянуть главно не бойся комментаторов на ютубчике потому что не обязательно придут и будут говорить что х как так и винт лоб не знаешь да ты вообще какой mesh право работать за
02:11:43 - 02:13:01
деньги без знаний the wind лупа он программирования важно как ты ходишь а то что-то понял как работает этот а правильно мы это понимаем ты это понимаешь но вот у нас очень бесконечные комментаторы которые прямо осуждают за каждые там слова оговорился все уже крест поставили уже похоронили как разработчик резки посмотришь но там всякие оскорбительным и конечно не допускаем ладно спасибо друзья всем кто просмотрел эти долгие там почти два с половиной часа спасибо отдельное нашем patreon am который увидит этот выпуск раньше
02:12:21 - 02:14:01
становитесь патронами тоже смотрите этот выпуск навин раньше так как обычно ставьте лайки подписывайтесь наш канал рассказывайте своим коллегам разработчикам нашем канале и ждите новых выпусков всем пока всем пока всем удачи
02:13:12 - 02:13:53