#16 Собеседование Senior Frontend разработчика из Mail.ru

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

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

  • всем привет на 16-ом выпуске от собеседования меня зовут владислав и из компании делим абель рядом с яной станислав из компании хабр и сегодня у нас на собеседовании контент инженер александр александр представься и расскажи откуда ты всем привет меня зовут александр я пишу фронт в компании mail.ru сейчас занимаюсь таким продуктом как юла должна им отличный сервис а в каком городе нахожусь а в городе твери вот замечательно 2 2020 год подарил нам возможность работать в крупных компаниях московских не покидая свой родной город

    00:00:06 - 00:01:45

  • а я полностью удаленную стр устроены как бы удаленный сотрудник хорошо расскажи как ты попал вообще во front-end во front-end давно дело было лет и так наверно 67 назад я на тот момент был java девелопером и мой тогдашних лиц говорит в приходи к нам на проект я работал в компании epam и большой самый большой на source or восточной европе понятно что очень много проектов и периодически эпизодических программисты ротируется с проекте на проект и вот я в процессе такой очередная ротация будущее земли позор и приходи к нам на

    00:00:55 - 00:02:30

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

    00:01:44 - 00:03:09

  • толстый со своим фреймворком реактивным со своим шаблонизатор на там построенным поверх там потихоньку потихоньку и из java developer я переквалифицировался но как full стеках который по факту начал заниматься занимался к фронтам то кстати ушел на фронт ну да да да потом там я был именно в одной этой компании то есть вот как пришел так и остался ну смотри это не компания пиара в компании epam это искал большое source там очень очень много проектов вот и по факту я проработал там в нескольких больших проектах с очень

    00:02:27 - 00:04:03

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

    00:03:18 - 00:04:35

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

    00:03:57 - 00:05:35

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

    00:04:45 - 00:06:02

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

    00:05:26 - 00:06:42

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

    00:06:04 - 00:07:20

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

    00:06:42 - 00:07:50

  • количество и состав так растет как раз к ночью снижается опять растёт снижается деньги посчитали не так уж и дорого и прям прям сможешь написал отказоустойчивый backend все работает замечательно меня примут даже если прям очень положительный экспириенс хорошо тогда расскажи может быть какую самую интересную задачу тебе приходилось на фронте решать какой то очень такой расплывчатый вопрос наверное у меня был проект ecommerce явно на нем провел на год-полтора когда я пришел это был пилот как пирсе был написан которые решили

    00:07:16 - 00:09:04

  • редко кто ночь production причем [музыка] качество кодовая база был ужасно все было достаточно плохо это все тормозило ну грубо говоря там для примера вот в паке джейсоне был nt прописан ну тут кто-то обновлял себе npm и мест global да за installer в покер сон это было закончено и всем было пофиг вот да и вот там за год я из этой штуки сделал проект который можно поддерживать который можно изменять да там было решено куча-куча кучу проблем именно это было сделал медленнее чем ожидал бизнес наверно то что они хотели раз всего

    00:08:10 - 00:09:40

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

    00:08:55 - 00:10:18

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

    00:09:37 - 00:11:11

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

    00:10:25 - 00:11:48

  • внедрил tdd получается или это просто как я как бы не очень приверженец т.д. потому что ну вот у нас есть компонент а вот как ну и т.д. будем под этот описать как сначала напишем верстку которую нужен генерить а потом нарисуем реализацию сделать нет просто что тестирование компонентов нужна вода там есть какая-то логика надо его протестировать кубани типа колеса продавал вот эту идею что надо будет в кроме того что писать код все писатели тратить время кампании на написание тестов вот как ты он смог доказать что

    00:11:07 - 00:12:27

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

    00:11:51 - 00:13:11

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

    00:12:31 - 00:13:52

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

    00:13:14 - 00:14:30

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

    00:13:53 - 00:15:08

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

    00:14:31 - 00:16:04

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

    00:15:19 - 00:16:40

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

    00:16:00 - 00:17:27

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

    00:16:43 - 00:18:10

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

    00:17:27 - 00:18:54

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

    00:18:09 - 00:19:43

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

    00:18:57 - 00:20:44

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

    00:19:51 - 00:21:29

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

    00:20:42 - 00:22:01

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

    00:21:21 - 00:22:56

  • цикл разработки и вот фронтовых задач делать уже прямо в браузере они в какой-то мытые жки и так далее я слышал об этом проекте сейчас пользовалась о чем речь идет такая can t контейнер с брендом на уровне браузера как какая-то вот такая же руками и не трогал ну не знаю по моему это не наверно есть есть там класс задач который для которых это надо но front in der еду в как а какие у тебя могут быть задачи на фронте это делать какую-то вёрст куда писать какой-то фронт но тут у нас уже у инструмента не хороший

    00:22:09 - 00:23:51

  • достаточно хорошие там кучу сборщиков они постоянно бьют ускоряются того как каждый потом новый сборщик он еще быстрее он там прям моментально себе все обновляет браузер то есть твой frontend уже собирается достаточно быстро все хорошо а тебе может понадобиться не знает back on the front end до какой-то ну обычно это достаточно легковесные штуки и их можно запустить в докере у себя локально и в особо это не бане не такая большая проблема докер запустить это намного проще чем не знаю даже тут же java book нажали запустить там

    00:23:00 - 00:24:28

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

    00:23:45 - 00:25:11

  • где могут применить я наверное не вижу на место но он же все таки не то чтобы так сказать какие-то инструменты типа собой заменяет наверное все таки он будет дополнять по большей части потому что вот тот же codes in box он по сути тоже может запускать ноду просто она работает не на клиенте она работает где-то там на сервере и там какие-то мощности имеет а так у тебя все на своей локальной машине в принципе можешь очень быстро с этим надо работать и это будет как бы надежнее ты не зависит от каких-то

    00:24:27 - 00:25:43

  • сервисов codes and blocks а которые там могут не знаю упасть или еще что-то неправильно конфигурирует как-то вот и в этом плане она должна работать и понадежнее быстрее много конечно да инструмент еще такой немножко зеленый то есть вряд ли получится взять и куцин боксом заменить полностью потому что еще не все даже фреймворке поддерживается насколько я знаю то есть там тот же view ссср на нем еще никто не тестировал вот поэтому тут суда есть некоторые вопросы но плане задач то есть фронта обычно

    00:25:05 - 00:26:12

  • самая первая задача как собрать сейчас мы если зайдем в какой джесс видел там нет никакого пока там никакого процесса сборки нет ну то есть ты придешь и у тебя должен быть сразу готовый runtime если ты туда придешь покинуть знаю ангулярным или еще с чем-то достанет проблема как собрать то это все дело и как раз ты идешь на cats in box он тебя и собирает и все это перри компилирует включает и чем or и так далее вот из таблиц по сути сможет сделать грамотен морщинки а не на сервере теория должна быть быстрого посмотрим когда это

    00:25:38 - 00:26:49

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

    00:26:13 - 00:27:35

  • получится то есть вот эта красы инструмент призваны от этого избавить я на джаве разрабатывал если сказать о писатель джазистов который которым скажешь для того чтобы вам работа с ножа я вам не нужен живьем java database компилятор не знаю насколько это нужно уже вы привыкли что есть инструменты которые что есть код есть какие-то инструменты как с которыми с этим кодом работы а те не приходилось вот код сын боксом тем же пользоваться чтобы не знаю просто проверить какую-то теорию что у тебя во фреймворке все работает правильно of

    00:26:55 - 00:28:14

  • time коде там какая-то ошибка которую ты не можешь славить тебя надо там минимальные reproduction ки сделать бывает я просто с домом cry 3 акт об или там крик нам в you view свои создаю маленький проектик то есть и все это локальная гоняешь ну да тоже вариант принципе нокий давайте тогда следующей теме перейдем к тем немножко параллельно тому что мы сейчас обсуждали она будет про изоляцию с с вот давай подумаем какие виды изоляции лучше для чего подходит то есть я сейчас скажу четыре типа изоляции которые наверное самые

    00:27:39 - 00:29:08

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

    00:28:25 - 00:30:10

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

    00:29:17 - 00:30:55

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

    00:30:06 - 00:31:31

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

    00:30:52 - 00:32:13

  • селекторов типа вот здесь такая та штука и и для всех дэвов внутри и да сделай что-то с таким селекторов нет некоторые возим некоторые ограничения которые наверное дают какую-то изоляцию на на неполное если мы говорим про цесс с модулем домом понят что у нас каждый класс он становится уникальным да за счет того что мы при сборке мы добавляем как какой-то хэштег как-то модифицирую мы кстати я использовался sas модуль и в связке с его view ga-100 и were оксидации sas модуль связке с б м то есть в css использовались класс а

    00:31:35 - 00:33:09

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

    00:32:24 - 00:34:11

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

    00:33:17 - 00:34:53

  • прям намного меньше вот так такие вещи и ну это просто просто долго работает них есть большие проблемы с производительностью а какие проблемы есть у css модули если они такие классные тоже почему же все мне брать с из модули почему он осужденных аккорд g bm так далее не не знаю почему почему там такие проблемы как почек почему никто их не берет ну там есть есть проблемы то что там они не поддерживаются но это они так ново для божись как тебе сссс модули в продакшене когда у тебя нет имён классов

    00:34:04 - 00:35:26

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

    00:34:45 - 00:36:27

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

    00:35:37 - 00:36:56

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

    00:36:16 - 00:37:46

  • стилизует шутя до готовый интерфейс или тот же самый там будет строго ноги классному strappy накидали интерфейс и все и замечательный рукавицы какой ник лишь вот если в компании есть дизайнеры который на дизайне разработчики даже не знаю как которые могут создать такую систему атомов то на это круто то есть это можно с этим работать но я вы опять таки соединял это с помощью css модулей css модуль есть такая штука забыл как это называется в общем вы можете сказать что класс это это не mix in a забыл как

    00:37:02 - 00:38:33

  • называется и использую такой то класс и что у вас происходит вас есть классный кнопка да не вы гости используют какой-то класс использовать такой то класс такой-то такой-то такой-то там игровой за import вас придет и класс blood андорра а придет целый набор классов то есть вы руками вот эту портянку из mb 24 граней то что ты имеешь ввиду это плане директива например в той line 1 верно элвин я не смотрел вот процесс с модулях есть это был как называется по какой-то им коллектора не понравился ему там

    00:37:47 - 00:39:04

  • including куда то есть вот и это позволяет сытина сократить css количество путь все то же самое написано то есть у нас как бы код а не меняется но в конечном итоге каждый наш компонент будет иметь набор классов не только в конечно мирские увидим вот и причем а семантика вся остается б мужская всем все класс а какие тогда минус out even the test and сказать что он ужасен чем он ужасен от и винт ужасен ну или atomic просто как подход у меня глаз дергается когда ты вот все руками руками пишешь и главное что мы уходим от

    00:38:29 - 00:39:56

  • семантики то есть мы не пишем что это эта карточка да там товара мы не пишем что это кнопка нет но вот смотри ты только что сказала что мы можем вот через in cloud у указывают эти вот атомы создавать такие же банковские класс и то же самое но это они не видел вот пока они не так выстрел windom не работал то есть нам не обязательно увеличивать количество верстки то есть записать эти классы в саму верстку и делаем вот такие вот огромные блоки этих атомов предполагается что ты пишешь классы также на bm или какой-то другой

    00:39:14 - 00:40:30

  • методологии туда эти атомные банка на ткань а в коне а в конечной верстки у тебя будет как как раз таки у тебя будут свои классы и стилей будут собраны из этих атомов а вот но и а чем это отличается от не знаю того тех же css модулей на с namco сам smx иными сасовский ну понятно что когда мы разрабатываем большой проект у нас появляется огромное количество посему там пишем на соседа огромное количество mixxen of standard стандартный border сделает там стандартный цвет короче примение так далее вот у нас по хорошенько верстка

    00:39:51 - 00:41:19

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

    00:40:35 - 00:41:49

  • маленький css получается все замечательно но 1000 сказал такую фразу что я не мог не обратить на это внимание с trigger носа на слово семантические классы откуда же у нас в классах семантика это же utility классы нет но в принципе зачем на вклады когда уже семантика ну как хороший вопрос у нас же классы они по сути нужны просто для того чтобы накинуть стиля их не видит юзер их не видит поисковик никто их не смотрят кроме как разработчик да то есть вот этим одевали ценности по сути здесь нет есть только ценность в

    00:41:13 - 00:42:39

  • плане dlp experience ну симпа семантика значит значит что что означает класс к юзер видит что это класс батон на а у него есть батон там этот элемент и крайкон то мы понимаем что этот класс отвечает за что за иконку за иконку но это значит ну значения как что это такое но просто есть ну две параллельных вселенных все-таки есть вселенные пользователей и внешнего мира вот там семантика действительно есть и там она имеет смысл когда мы там не знаю используем правильные теги правильные роли правильные атрибуты вот это

    00:41:55 - 00:43:20

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

    00:42:38 - 00:43:46

  • вот вот почему на поиски откажете лет но мы за свою карьеру разработчики я понял чем лучше dx тем лучше конечный продукт с плохим до иксом очень сложно сделать хороший продукт но вот attempted элвин да они же тоже как бы эту тему мусолит очень активно и ну получается так что все таки то что эти классы не понятно что они делают это как бы синдромом утенка получается некоторые потому что нам кажется что класс должны быть вот объясняющие что это за элемент что тут происходит но это так потому что мы привыкли так делать то

    00:43:11 - 00:44:41

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

    00:43:57 - 00:45:21

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

    00:44:38 - 00:45:45

  • некоторую переменную или на сайте сделать некоторую переменную которая будет у нас в нам локально давали использоваться вот здесь мы сдвинули настолько а здесь вот это размер иконки мы поменяем одном месте у нас вниз синхронно и асинхронно двигаются а если у нас есть класс там не знаю парень парень 250 у него там будет 250 то как-то синхронно их эти классы менять становится не очень приятно то есть вот этот atomic подход он не видишь кода css а ну но ведь это может быть не надо сильно пожить с этим как кур азизов проект

    00:45:12 - 00:46:43

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

    00:45:57 - 00:47:04

  • на самих элементах но ты не можешь менять стиль и которые в этих элементах вот собственно смысл этого подхода избыточность ну с моменты вы мне нравится потому что ну там явно атомов больше чем сделать понятно что мы можем делать там насколько понимаю в тыл виде генерятся а там и до мы можем сгенерить эти атомы которые там нужны именно нам так далее но не знаю как например там дизайном бордюр бартер бокса и как бы их там как у них называется бы x8 а мнение о чём не говорит да там big big bottle ним

    00:46:31 - 00:47:49

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

    00:47:09 - 00:48:39

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

    00:47:55 - 00:49:14

  • об этом 4 я никогда не сталкивался с проблемой перфомансов парсинге html думаю что на 90 тип проекта 99 процентах проектов проблемы начинаются можно начинается раньше то есть есть места которые намного хуже бьют по перфоманса чем размера что мы все же там и мне кажется это очень быстро он парсится и и очень неплохо живется если мы говорим про atomic да это же повторяющаяся имена классов и любой активатор очень хорошо справляется с ними сам парсинг этому сейчас сейчас с этим вообще про проблем никаких нету ни

    00:48:32 - 00:50:08

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

    00:49:23 - 00:50:44

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

    00:50:02 - 00:51:30

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

    00:50:50 - 00:52:20

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

    00:51:35 - 00:52:50

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

    00:52:12 - 00:54:12

  • потоки однонаправленный данные точно здесь какой-то компонент и вот у него есть состояние вот с этим состоянии делать делится своими черными и так далее вот и все бы было хорошо только иногда нам встречаются задачи как-то с этим состоянием поработать написать какую-то бизнес-логику я тут беру в кавычки потому что когда я говорю слово бизнес лойко на фронте люди очень сильно придираться что такое business tycoon формате ну давайте приведу пример вот у нас есть с этим интернет-магазин слева и справа есть набор фильтров у нас есть

    00:53:12 - 00:54:41

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

    00:53:57 - 00:55:27

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

    00:54:41 - 00:56:06

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

    00:55:23 - 00:56:42

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

    00:56:04 - 00:57:44

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

    00:56:56 - 00:58:06

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

    00:57:30 - 00:59:01

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

    00:58:16 - 00:59:32

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

    00:58:53 - 01:00:13

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

    00:59:34 - 01:00:54

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

    01:00:15 - 01:01:43

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

    01:01:01 - 01:02:14

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

    01:01:38 - 01:02:47

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

    01:02:13 - 01:03:37

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

    01:02:55 - 01:03:58

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

    01:03:27 - 01:04:44

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

    01:04:04 - 01:05:24

  • правда откинем сразу плохие способы начнём говорить про хорошее в комментарии реакции написано прям черными буквами на белом фоне компонент mount как у как то же самое самое классное место для того чтобы загрузить данные теперь давайте представим картину у нас кто управляет mount он маус ним и это управляет фрейма то есть мы пишем как какое-то приложение я не знаю я бьi побить обновление сделал не очень удачное у меня компоненты постоянно прерывается mounts on mountain мог я так натяну как не знаю мы давайте

    01:04:45 - 01:06:14

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

    01:05:28 - 01:06:56

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

    01:06:13 - 01:07:36

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

    01:06:54 - 01:08:07

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

    01:07:32 - 01:08:49

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

    01:08:10 - 01:09:27

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

    01:08:48 - 01:10:05

  • меня станет загружаем отобразился данные пришел а данные прыжки перерисовал то есть выносить мы ты классный пример привел что современный фрейма пор когда появляется штуки которые позволяют нам выносить бизнес-логику из компонентов это хуки это композит на пиво view и съел три в третью это во втором пью это как назывался в юре реактив по моему ну то есть кусок реактивности w тоже про прост компонент дома steam чего на делаем и компонент может его побью обзора баллон называл все или обзор как только штука это филиал

    01:09:26 - 01:11:07

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

    01:10:17 - 01:11:59

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

    01:11:08 - 01:12:39

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

    01:11:54 - 01:12:50

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

    01:12:22 - 01:13:39

  • зеленый и синий мы кнопки есть мы такие ага мы загрузили а мы что можем сделать и пользователей мы знаем что пользуюсь очень часто нажимают а давайте ка при загрузим эти состояния красных красный зеленый синий это плохая 16 гигабайт там 32 и 64 то есть нам нужно загрузить другие данные это вообще даже другие товары мы просто берем и загружаем сразу где мы эту логику пишем в компоненте а мы отобразили и у компонента оказывается есть такая штука а давайте ка при загрузим еще 3 товара ну кому в том то и

    01:13:02 - 01:14:18

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

    01:13:40 - 01:15:15

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

    01:14:28 - 01:15:23

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

    01:14:56 - 01:16:20

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

    01:15:38 - 01:17:14

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

    01:16:24 - 01:18:16

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

    01:17:23 - 01:18:44

  • но мы будем передвигаться к следующей секции и вот мы тут много времени конечно от нее скушали поэтому видим будем галопом по европам sex and night for да но она harvard сколько валенков упор супы ну ну почти но почти секция хардкор в кавычках потому что но вопросы мне кажется медаль металл + все таки вот поэтому ну я думаю что будет все окей заболев дисплей не уволили пустых после этого маленький disclaimer нужно то что нас очень сильно просили чтобы какой-нибудь там синь юристы мужчина с большим багажом опыта

    01:18:04 - 01:19:23

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

    01:18:42 - 01:20:24

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

    01:19:36 - 01:21:31

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

    01:20:37 - 01:22:06

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

    01:21:23 - 01:22:37

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

    01:22:01 - 01:23:35

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

    01:22:47 - 01:24:37

  • блок льда зависимости от окружения это будет там либо винду либо global ты стопам час называется то унифицированное название вот если мы у нас есть какой то объект и у него есть property функция дай мы в этого объекта забываем функцию то у него буква к текст будет передан собственно этот объект за исключением есть эта функция стрелочная функция про них можно сейчас отдельно поговорить вот так же мы можем сделать биндинг функция банд и забанить контекст функция то есть и где бы мы и не вызвали у нее всегда

    01:23:43 - 01:25:14

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

    01:24:28 - 01:26:03

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

    01:25:20 - 01:27:06

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

    01:26:13 - 01:28:09

  • ну в попу хорошего по ночам может быть а при чем тут уже потому что должен все-таки объект ну да должен быть объект вот да потому что все таки да и то только должен быть объект но есть некоторые магии с примитивными попробуй вспомнить как у нас работают методы прототипа на примете вах нуба boxing анбоксинг да наверное может быть дома он весит переместив передать он завел он за бокса ну я с трудом сейчас представляю кейс с которым не нужно забанить надо из но тот просто в твиттере был недавно холивар как раз сравнивали

    01:27:12 - 01:28:54

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

    01:28:05 - 01:29:37

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

    01:28:55 - 01:30:11

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

    01:29:34 - 01:30:51

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

    01:30:18 - 01:31:43

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

    01:31:01 - 01:32:20

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

    01:31:41 - 01:33:29

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

    01:32:34 - 01:34:27

  • заблокирован мы про сейчас сейчас про event лу будем говорить или как знаете можно проявляется у поговорить есть такая штука и отлуп замечать замечательная концепция который там миллион лет операционной система так живут что ножек в процессор да там мы представим там простой и дрона она может делать набор инструкций и еще вот а как сделать так чтобы он реагировал на какие то действия пользуются до что на какие то извне можно сделать достаточно примитивную вещь можно запустить цикл while true и какую-то очередь задач сделать и а по

    01:33:32 - 01:35:17

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

    01:34:23 - 01:35:54

  • нет ничего у нас загружается некий джаваскрипт кода вот мы загружаем сайт убежать какие-то джесс файлы вот создается 1 то скоро он раз паршин да вот исполню вот этот же скотт окей он исполняет вот этот же sq а там в этом же с кори написано какие-нибудь вещи типа and event listeners или там set time out что это что что они представляют все the wind listener он говорит вот с сделать такую штуку как добавьте сыр и на какое-то событие в системе на внешние выполнить этот код ok происходит это событие что просто

    01:35:09 - 01:36:50

  • происходит он или там set time out какое-то событие события тика таймера и [музыка] такой вот надо все делать и кладет его в очередь задач и у нас цикл по кругу ходит из мой у нас новая задачка появился на надо и исполнить исполняет опять есть задачка исполняет и вот так он по кругу хоть есть четко концепции школ усложнилась потому что появились микро тоски например если мы делаем promise зал лица у нас создается микро тоска и тогда для чего этот почему для чего это нужно все ну для того чтобы сделать эту пресловутую асинхронность то

    01:36:00 - 01:37:34

  • есть у нас в один момент времени исполняется один год но за счет за счет этого lupo мы можем сначала один кот используем другой потом 3 потому так во вторых для того чтобы сделать 60fps циклон проходит очень очень нужно проходить быстро почему потому что поток 1 и в этот поток нам нужно успеть выполнить java-script потом все это как-то отрисовать его результат пользователю и чтобы ничего не лагало не тормозило это надо делать 60 раз в секунду достаточно быстро поэтому так работаем так работает java-script

    01:36:47 - 01:38:21

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

    01:37:32 - 01:39:03

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

    01:38:20 - 01:40:10

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

    01:39:14 - 01:40:35

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

    01:39:55 - 01:40:59

  • отвечает вопрос мотивации то есть именно для того для для того чтобы нам нужно что то сделать до того именно что-то сделать один один оборот винт lupo но микро тоски это единственные тоски которые есть спецификация к скрипту как на скрипте нету to suck в целом как типа set time out to request a niche in flame их нету спецификациях noscript а вот микро тоски есть как раз про миссы они из джесса а уже смл то все остальное это уже в бар в папе и их описывает уже в 3 c вот в игре и так далее поэтому они есть

    01:40:27 - 01:41:47

  • появился в ноги он вообще помощью даже давно там там вроде когда там даже глазами в ноги еще больше видов тасс то есть я хотел сказать вот to suck на самом деле очень много и у них у всех разные приоритеты и разные этапы выполнения то есть кроме там того же set them out a request они машин фрейма есть request idol callback например который выполняется когда у тебя тип система готова система не заблокирована не чем то есть типа разгрузилось но это конечно не рекомендуется особых использования ну

    01:41:06 - 01:42:15

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

    01:41:41 - 01:42:48

  • давайте смотреть любимый мой примерчик несколько функций которые делают консоли есть а есть там bc и задача рассказать в каком порядке у нас что выведется в консоль тут всего 4 консоли const так давайте смотреть первый у нас объявляется new кроме срезал [музыка] призов тайм-аут 01 b консоль b инсульт б.д. мы выводим просто консоли ну первый вы видите 2 у нас а потом ну потому что это вот код то есть первая строчка что она делает создал создадим состав создаст функцию создаст прочность супер дальше 100 -

    01:42:13 - 01:44:24

  • подпишется на давно события таймера супер следующая когда произойдет зарисовывать цифрами когда там завязалась мышь не знаем когда он вернется в виде бы вот теперь теперь дальше так но последнего и цеце конечно [музыка] каким-то последним сейчас я сейчас очень сильно туплю как кроме сработает you promise тресов у нас вот вспомнить как раз самое то вспомнить молодость тряхнуть стариной б то есть у нас кроме с мы ему говорим з.н. а вот и мои извините попутала а dbc все-таки а будет первым потом почему он

    01:43:30 - 01:45:46

  • будет первым кстати на же код исполняется нас функция х к называется которое мне даже цель название есть которому и в promise передаем callback он не клубе специально звание есть она она просто исполнится может быть все таки call back еще есть call back вообще promise мы передаем два кубика эту функцию конструктор у да типа как типа конструктор конструктор над не конструктор ну да и он конечно сразу исполнится response resort п создастся микро тоска создаться потом с этой дальше подписываемся на микро тоску да

    01:44:46 - 01:46:36

  • что то сделать но кей когда идет эти микро тоски так исполнен дальше исполняется код линейная 5d потом микро тоска потом но они чуть чуть тебя не поймали время полдевятого все сюжет но мы старались давайте нас интересные давайте проведем последней теме может быть мы даже успели разобрать потому что уже два часа до сидим давайте тогда максимально как-то зажата не все тогда спросим поговорим просто про а.п. чем мы хотели обсудить то есть вообще что такое у пкк нового front индии используются может быть как ты

    01:45:41 - 01:47:14

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

    01:46:28 - 01:48:03

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

    01:47:17 - 01:48:59

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

    01:48:07 - 01:49:39

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

    01:48:54 - 01:50:31

  • быстро находят есть класс да у него есть какие-то поля есть некие методы и мы точно знаем как работать с этим методом но у нас есть тайные знания что хранится в этом классе да какие данные поэтому мы так с ним работает то есть это яркий пример когда у нас да там все данные про его их никто не видит и нет доступа но у нас в других частях системы есть знания о том как это работает но это капли click to hijack давайте помогите мне как нет это это вот у тебя получается две штуки смешались здесь все-таки надо это

    01:49:44 - 01:51:04

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

    01:50:24 - 01:51:48

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

    01:51:06 - 01:52:28

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

    01:51:48 - 01:53:06

  • вот если возьмем 2 класс и мы понимаем что эти два класса всегда у нас идут вместе то есть не бывает ситуации когда они тут идут поразить по раздельности вот тогда мы говорим что дайте их класс на самом деле это 1 класса на газу чем-то разделили то есть мы их объединим анин то это будет против них очень очень очень тесная связь и на самом деле про одну все окей но вот да тут все здесь очень классно высказалась инкапсуляции не понимает как вот spring омс являться здесь в инкапсуляции это как раз и про вот это и

    01:52:27 - 01:53:46

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

    01:53:06 - 01:54:08

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

    01:53:36 - 01:54:58

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

    01:54:20 - 01:55:35

  • классе нет ни в парадигме верстки не в программе компонентов она никому , вне явно прослеживается что еще за вины мы и мы начинаем начинаем ну как заниматься тем что но как яркий пример веру нас появляется get кто писал наши пледжеры на поле создали тут же get iressa труда к нему ну окей зачем и так далее там это все приводит к тому что у нас появляются цепочки класс объекта . get проб один . get правду агитпроп 3 то есть у нас не успеем логика которая содержится начинает раз очень сильно знать про очень много много вещей как

    01:54:58 - 01:56:41

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

    01:55:49 - 01:57:17

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

    01:56:35 - 01:58:11

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

    01:57:22 - 01:59:10

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

    01:58:16 - 01:59:38

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

    01:59:01 - 02:00:14

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

    01:59:37 - 02:00:46

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

    02:00:11 - 02:01:38

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

    02:00:55 - 02:02:13

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

    02:01:34 - 02:02:59

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

    02:02:16 - 02:03:41

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

    02:03:00 - 02:04:25

  • через аргумент тоже то же самое планы и прокидываем через аргумента этот как даже в умных книжках называется паттерном стратегия где этот где где нет функции первого порядка да мы можем можем так прокинуть давайте две крайности 1 у нас все идет через вечно все все захардкожены первая крайность все через deep and selection да у нас есть на проглотишь так flash противный вот у нас есть что-то у чего есть метод не знаю депозит до от используя времен вторая крайность мы ничего не используем ну для каких-то абстракций

    02:03:49 - 02:05:29

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

    02:04:37 - 02:06:14

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

    02:05:30 - 02:06:44

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

    02:06:07 - 02:07:47

  • ssd структуру всю там руками довести нужен какой-то контроллер создаешь да и прокидывает прокиды ваш дальше вниз локтя из этого приложения этого сервиса то есть городить вокруг этого контейнер ну не знаю по моему the overkill ну то есть так работает angular ты сейчас расстроишь всех angular of и те кто пишет на месте ты мне все уже но вы смотрите с местом с тестом другая за задача все-таки там это backend как я сказал там есть свои вещи действительно там наверно может понадобиться то что нас опять этот

    02:06:57 - 02:08:17

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

    02:07:38 - 02:08:53

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

    02:08:16 - 02:09:11

  • frontier менять ничего то есть если пишешь на реакция или пишешь навью ты не можешь взять и за dependency injection инжектить react или view потому что ты будешь при этом переписывать все приложение у тебя компоненты из react они могут работать во вью и наоборот в этом и проблема что то что там это просто неуместно и дтп джексон встречается ну ну пример класса кстати каруселька да такая есть там карточки товаров можем это на самом деле что угодно и мы у какой какой интерфейс курсе что есть там какие-то параметры

    02:08:44 - 02:10:03

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

    02:09:23 - 02:10:45

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

    02:10:04 - 02:11:08

  • подменяя на что угодно а вряд ли это этой проблемы нет потому что react просто занимается в и частью как и view видео тоже занимается только в и частью и отдельные там you're out a review кс это отдельные части они не связаны свою напрямую это так вернемся а давай вернемся к вот эта же типе а что тебе мешает написать импорт сверху степи сервис твой но потому что у нас нет абстракцию это сервис то есть я сделаю другой сервис но я не знаю как его используют другие части приложения то есть почему они могут вызвать какой-то

    02:10:36 - 02:11:39

  • приватный метод и я в этом сервисе ванили завал и все упадет осматривать рожки у тебя как бы я был президентом и про юзеру вообще у нас есть что то что умеет делать там get юзера пойди там дэвид юзеру не знаю какие то да и все гели конкретные методы когда интерфейса ты не сможешь заменить эту чтобы все раза дня завтра я завтра поменял поменял имплементацию как это вопрос не вот не контейнеры containex дуги причем это вопрос как бы проектирование приложение если мы делаем у нас есть http request до

    02:11:07 - 02:12:23

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

    02:11:45 - 02:13:02

  • девушку это запрос там вот на на уровне интегрированной системы то есть берешь и просто пользуешься что вычислил аудит вот тебе кусок шаблона который ты будешь и рендерит если не ладит то-то все остального вот и это сделано на уровне самой системы то есть ты можешь подменять реализацию http клиента но при этом должен быть клонировать весь его интерфейс и что он там отдает состоние lauder он а бревна в видеоформате отдает ошибки остается зачем c такими на для того чтобы этим всем управлять почему у

    02:12:25 - 02:13:41

  • нас есть некий instance http клиента а какой конкретно это нам неважно то есть мы говорю что вот у вас есть http контейнер и вот мы вот точнее http клиент и вот мы его как как the usa in a начиная уже точно также юзать через импорту завтра подменили и все но потому что многих частях системы используются зовете до 1 этаже шибок инверсия зависимости она предполагает все-таки интерфейс какой-то но скорее всего да то и дело что мы завязываем ся на интерфейс у нас возвращалась от не знаю какой то как окрошка что импорт не от интерфейса

    02:13:04 - 02:14:14

  • вот чем чем ли мы им портов нет интерфейс и мы импортируем что-то от а то можно прийти а вот gullari как мы пишем насколько я помню там просто указываешь сервис сервис на такой-то ван gullari ты как раз пишешь какой интерфейс ты ждешь ну типа какой не знаю ждешь объект такого то типа вот он тебе туда придет сам то есть ты не говоришь что мне пришли конкретно вот этот объект пришли обед который с этим интерфейсом окей а как у ну как он выберет создаст ну это как раз механизм воин дэнси injection

    02:13:39 - 02:14:50

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

    02:14:14 - 02:15:26

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

    02:14:50 - 02:16:06

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

    02:15:29 - 02:16:34

  • инстанциировать он там вот у меня глубокое убеждение что на фронте это нафиг не надо от на байке не знаю бег не пишу скорее всего им надо потому что примерно в 25 раз на фронте не вижу я пока вот вот с ним вот я пишу код каждый день не вижу где мне нужен контейнер dp and selection да да но это как бы другая концепция контейнер ну я и руками там в конструктор передам просто параметрам функции и знаки борт у должен пор так ну какой то такой чтобы ты не был предвзят камней и я например пишу на view не переживаем нет тихое и

    02:16:01 - 02:17:16

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

    02:16:37 - 02:17:55

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

    02:17:17 - 02:18:42

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

    02:18:00 - 02:19:14

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

    02:18:37 - 02:19:50

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

    02:19:13 - 02:20:19

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

    02:19:47 - 02:21:06

  • будем писать там используем каких-то патронов то там тоже там про те же самые контейнеры до нужны нужны она ему не нужны и так далее вот это да действительно вопросы на senior фуру нету прикольно то есть я вот смотрел интервью там работы меня лак вышел посмотрю в основном там интервью проводится от публичных такие какие-то вот сколько параметров функции pars ok такие действительно темы которые которые приходятся на работе принимать решение так что как как что-то имплементировать такие больше уже сторону архитектуры они

    02:20:26 - 02:21:57

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

    02:21:12 - 02:22:33

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

    02:21:54 - 02:23:16