Untitled
unknown
plain_text
a month ago
117 kB
1
Indexable
1 00:00:00,000 --> 00:00:01,000 Всем привет! 2 00:00:01,440 --> 00:00:04,020 Это новое видео с реальным собеседованием на вакансию Middle Plus 3 00:00:04,020 --> 00:00:05,020 Senior Frontend разработчик 4 00:00:06,600 --> 00:00:09,680 с зарплатой 300 тысяч рублей в Сбербанк. 5 00:00:10,280 --> 00:00:11,280 Собеседование было не самым удачным, 6 00:00:12,360 --> 00:00:15,660 но интересным и по итогу команда дала положительный фидбэк с приглашением на 7 00:00:15,660 --> 00:00:16,660 следующий этап. 8 00:00:19,040 --> 00:00:21,240 Надеюсь, это видео будет полезно и поможет тем, 9 00:00:21,360 --> 00:00:24,080 кто сейчас проходит или готовится проходить собеседование. 10 00:00:24,080 --> 00:00:28,000 Также прошу вас подписаться на мой телеграм-канал по ссылке в описании, 11 00:00:28,160 --> 00:00:31,480 где ты сможешь найти полезные материалы и фишки для трудоустройства. 12 00:00:33,240 --> 00:00:36,040 Также если тебе нужна помощь в трудоустройстве или 13 00:00:36,040 --> 00:00:37,040 подготовке к собеседованию, 14 00:00:37,640 --> 00:00:38,640 можешь воспользоваться 15 00:00:38,640 --> 00:00:44,404 моими услугами медродства или написать мне в телеграмм, все ссылки ты сможешь 16 00:00:44,404 --> 00:00:45,404 найти в описании. 17 00:00:46,880 --> 00:00:49,880 Окей, ладно. Антон, 18 00:00:49,880 --> 00:00:53,800 если у тебя нечего добавить, то я бы пришёл к техчасти. 19 00:00:53,800 --> 00:00:55,800 Да, нечего добавить. 20 00:00:55,800 --> 00:00:58,800 Ок, хорошо, отлично. 21 00:01:05,120 --> 00:01:06,120 Так, давай... 22 00:01:07,320 --> 00:01:08,320 Давай начнём про Event Loop. 23 00:01:09,520 --> 00:01:10,520 Что такое, 24 00:01:10,680 --> 00:01:11,680 с чем едят, для чего он нужен. 25 00:01:14,080 --> 00:01:16,076 Так, ну Event Loop это бесконечный цикл, 26 00:01:16,880 --> 00:01:17,880 который выполняет 27 00:01:18,040 --> 00:01:19,040 обработчики событий, 28 00:01:20,240 --> 00:01:21,240 браузер распределяет эти обработчики 29 00:01:22,160 --> 00:01:23,160 по очередям, 30 00:01:23,840 --> 00:01:24,840 есть две основные очереди, 31 00:01:25,360 --> 00:01:27,360 это микротаски и макротаски, 32 00:01:27,360 --> 00:01:28,360 ну и синхронный код. 33 00:01:29,360 --> 00:01:30,360 К микротаскам у нас относятся 34 00:01:32,200 --> 00:01:35,199 ну, промиссы, к функции QMicroTask, 35 00:01:35,360 --> 00:01:36,360 там mutation observer, 36 00:01:36,920 --> 00:01:37,920 к макротаскам setTimeout, 37 00:01:39,840 --> 00:01:40,840 ну, различные таймеры, 38 00:01:41,440 --> 00:01:42,440 дом-эвенты. 39 00:01:44,680 --> 00:01:45,680 Порядок выполнения вообще такой, 40 00:01:46,720 --> 00:01:49,040 что сначала выполняется синхронный код, 41 00:01:49,240 --> 00:01:50,240 потом микротаски, 42 00:01:51,720 --> 00:01:55,080 после этого берется из очереди одна макротаска, 43 00:01:55,760 --> 00:01:56,760 выполняется, 44 00:01:56,880 --> 00:01:59,920 опять идет проверка наличия синхронного кода и микротасок, 45 00:02:00,360 --> 00:02:01,360 и так по кругу. 46 00:02:02,720 --> 00:02:04,720 Чё там? А для чего придумали вантлуп? 47 00:02:05,240 --> 00:02:06,240 Какую проблему решает? 48 00:02:07,160 --> 00:02:08,160 Скорее всего, 49 00:02:08,400 --> 00:02:09,400 даже не скорее всего, 50 00:02:09,640 --> 00:02:12,280 но чтобы не было блокировки интерфейса. 51 00:02:14,040 --> 00:02:15,040 Откуда она может возникнуть? 52 00:02:15,960 --> 00:02:16,960 Если мы, например, 53 00:02:18,160 --> 00:02:19,160 какой-то бесконечный цикл создадим. 54 00:02:20,920 --> 00:02:26,760 И у нас заблокируется этот поток и перестанет работать интерфейс. 55 00:02:29,880 --> 00:02:34,000 Ну и плюс мы запросы можем выполнять асинхронно. 56 00:02:35,320 --> 00:02:36,320 Они в отдельном потоке выполняются, 57 00:02:38,880 --> 00:02:41,600 они блокируют интерфейс благодаря этому. 58 00:02:43,880 --> 00:02:47,120 А знаешь что-нибудь про однопоточные и многопоточные приложения? 59 00:02:49,920 --> 00:02:50,920 Мегапоточные. 60 00:02:52,920 --> 00:02:55,960 Ну. Блин, в Джаваскрипте вообще один поток. 61 00:02:56,800 --> 00:03:00,038 Ну, конечно, можно создать дополнительно с помощью веб-воркеров. 62 00:03:00,920 --> 00:03:01,920 Может, тыкетом. 63 00:03:03,160 --> 00:03:05,160 Ну, я не про Выборгера, 64 00:03:05,160 --> 00:03:09,040 я всё про Event Loop и какую проблему он решает. То есть, 65 00:03:09,040 --> 00:03:10,040 если взять какие-нибудь, 66 00:03:10,040 --> 00:03:11,040 аа 67 00:03:11,640 --> 00:03:14,780 В языке программирования типа Java или C-Sharp, где есть полноценная 68 00:03:14,780 --> 00:03:15,780 многопоточность, 69 00:03:18,120 --> 00:03:20,600 то мы можем какие-то сложные вычисления или бесконечные циклы, 70 00:03:20,600 --> 00:03:23,080 которые игру вынести в отдельные потоки, 71 00:03:23,240 --> 00:03:25,240 и таким образом решить блокировку интерфейса. 72 00:03:25,360 --> 00:03:26,360 То в JS мы так не можем сделать. 73 00:03:28,880 --> 00:03:29,880 Вот здесь вот вопрос, 74 00:03:29,960 --> 00:03:33,957 соответственно, если ты в коде запустишь бесконечный цикл в JACE, 75 00:03:33,957 --> 00:03:34,957 то... 76 00:03:35,680 --> 00:03:36,680 Справится ли EventLoop с этим или нет? 77 00:03:38,960 --> 00:03:39,960 Справится, 78 00:03:40,880 --> 00:03:41,880 произойдет, 79 00:03:42,440 --> 00:03:43,440 как сказать, 80 00:03:44,320 --> 00:03:45,320 забьется колстек. 81 00:03:47,760 --> 00:03:48,760 Ну а интерфейс-то как? 82 00:03:49,680 --> 00:03:50,680 Зафризится или есть? 83 00:03:51,000 --> 00:03:53,000 Да, то есть не будет отклика. 84 00:03:54,560 --> 00:03:55,560 Там будут жесткие лаги. 85 00:03:56,640 --> 00:03:58,640 Вот, а чтоб такого не было, 86 00:03:58,640 --> 00:03:59,640 как надо код писать? 87 00:04:01,120 --> 00:04:02,120 Так как надо писать код... 88 00:04:04,840 --> 00:04:06,840 Ну вот, я клоню это к тому, 89 00:04:07,280 --> 00:04:09,160 что у нас вот есть асинхронный, допустим, 90 00:04:09,840 --> 00:04:10,840 кода, там, вызов бэкэнда, допустим, 91 00:04:11,600 --> 00:04:12,600 какой-то, да. 92 00:04:13,240 --> 00:04:15,240 Ну вот, или там, какое-то вычисление, 93 00:04:15,880 --> 00:04:16,880 как бы ты это делал. 94 00:04:17,840 --> 00:04:18,840 Синхронный код 95 00:04:21,080 --> 00:04:22,080 выносить, 96 00:04:22,320 --> 00:04:23,320 например, 97 00:04:23,720 --> 00:04:24,720 в Async Await либо в Promise. 98 00:04:26,520 --> 00:04:27,520 Так, отлично. 99 00:04:31,280 --> 00:04:33,920 Промиссы, но они выполняются синхронно, 100 00:04:34,320 --> 00:04:36,320 не блокируют основной поток, как я говорил. 101 00:04:39,600 --> 00:04:40,600 Я не знаю, что это ты хочешь услышать. 102 00:04:42,920 --> 00:04:43,920 Ну ты... 103 00:04:44,720 --> 00:04:48,040 выполняется айсинхронно, не блокирует основной поток. 104 00:04:48,120 --> 00:04:50,800 Если в теле кроме самого напишем бесконечный цикл, 105 00:04:50,840 --> 00:04:51,840 там, вайл... 106 00:04:51,880 --> 00:04:53,880 wild rune, допустим, 107 00:04:53,880 --> 00:04:57,120 да, то это точно не заблокировать основной поток? 108 00:04:57,480 --> 00:04:59,476 Так, в теле Промиса ты имеешь ввиду 109 00:05:01,480 --> 00:05:03,440 функции экзекьютори, которые мы передаем. 110 00:05:03,720 --> 00:05:04,720 Она же выполняется тоже синхронно. 111 00:05:07,200 --> 00:05:08,200 Ну и по идее, 112 00:05:08,440 --> 00:05:10,400 если мы создадим бесконечное количество микротасок, это тоже 113 00:05:10,400 --> 00:05:11,400 заблокирует поток, 114 00:05:12,480 --> 00:05:14,920 потому что они выполняются одна за одной. 115 00:05:16,680 --> 00:05:17,680 или ты к тому, 116 00:05:18,560 --> 00:05:20,880 что хочешь слышать, что тяжелые вычисления лучше выносить в 117 00:05:20,880 --> 00:05:21,880 SetTimeout, например? 118 00:05:23,400 --> 00:05:26,400 Нет, нет, нет, подожди. 119 00:05:26,400 --> 00:05:27,400 Вот смотри, бесконечный цикл. 120 00:05:27,400 --> 00:05:29,400 While, True, да? 121 00:05:29,440 --> 00:05:31,440 Все там, не знаю. 122 00:05:32,240 --> 00:05:34,680 теле в теле там можно тело пустым оставить или или просто консоль там 123 00:05:34,680 --> 00:05:35,680 консоль блок что-нибудь 124 00:05:37,760 --> 00:05:38,760 Вот мы его положили в Promise. 125 00:05:39,400 --> 00:05:41,400 Как в Event Loop это будет выполняться? 126 00:05:42,520 --> 00:05:44,680 Сколько у нас получится микротаска в таком случае? 127 00:05:45,520 --> 00:05:46,520 Так. 128 00:05:48,160 --> 00:05:49,160 Вообще одна. 129 00:05:50,360 --> 00:05:52,360 Один, да. 130 00:05:54,480 --> 00:05:55,480 все равно заблокирует потом 131 00:05:57,520 --> 00:06:00,800 Да, он заблокирует поток бесконечным циклом. 132 00:06:01,080 --> 00:06:02,080 Ну и вот здесь хотелось бы услышать, 133 00:06:02,840 --> 00:06:03,840 как запрос бэкэнда выполняется. 134 00:06:06,760 --> 00:06:07,760 Командуйте! 135 00:06:09,520 --> 00:06:10,520 Вот как запрос выполняется к бэкэнду. 136 00:06:14,360 --> 00:06:15,360 Ну то есть мы вызываем внутри, 137 00:06:16,520 --> 00:06:17,520 вызываем фич, 138 00:06:17,760 --> 00:06:18,760 он возвращает промисс. 139 00:06:21,480 --> 00:06:22,480 Дальше что мы делаем? 140 00:06:24,320 --> 00:06:27,440 Но этот же запрос выполняется асинхронно, 141 00:06:27,560 --> 00:06:29,560 благодаря Промису. 142 00:06:29,600 --> 00:06:32,800 То есть мы же не вызываем в запросе бесконечный цикл, поэтому у нас не 143 00:06:32,800 --> 00:06:33,800 блокируется поток. 144 00:06:38,280 --> 00:06:41,280 Ок. Ладно. Хорошо. 145 00:06:43,200 --> 00:06:46,440 Ну, это работа с сокетами в операционной системе тут, 146 00:06:46,440 --> 00:06:47,440 ээ 147 00:06:48,160 --> 00:06:49,160 Ну это вот, если ты говоришь, там, 148 00:06:50,120 --> 00:06:53,000 о желании дальше прокачивать свой скилл максимально, 149 00:06:53,200 --> 00:06:55,840 в какой-то момент тебе надо будет с этим познакомиться и узнать. 150 00:06:56,240 --> 00:06:57,640 А так, в целом, ты правильно ответил тут. 151 00:06:59,440 --> 00:07:00,440 Все хорошо, 152 00:07:00,720 --> 00:07:01,720 так, 153 00:07:01,960 --> 00:07:02,960 относительно Джесса я имею ввиду, 154 00:07:03,480 --> 00:07:07,598 так, смотри, что хотел еще спросить касательно Промесов, 155 00:07:07,598 --> 00:07:08,598 что такое синковейд, 156 00:07:08,598 --> 00:07:09,598 как они связаны с Промесами? 157 00:07:12,120 --> 00:07:15,120 Так, ну, async, await. 158 00:07:15,120 --> 00:07:18,960 Насколько я знаю, это синтаксический сохран над промиссами, там, 159 00:07:18,960 --> 00:07:20,960 вон. Ну и плюс мы, 160 00:07:20,960 --> 00:07:24,320 когда делаем функцию асинхронной, она всегда возвращает промисс. 161 00:07:25,200 --> 00:07:27,820 И уже в этих асинхронных функциях мы можем использовать ключевое слово 162 00:07:27,820 --> 00:07:28,820 await. 163 00:07:31,240 --> 00:07:34,900 Оно указывается перед промиссами и заставляет интерпретатора ждать, пока 164 00:07:34,900 --> 00:07:35,900 этот промисс выполнится. 165 00:07:38,560 --> 00:07:42,880 И только после этого переходит к следующей строке кода. 166 00:07:45,600 --> 00:07:46,600 В плюс, 167 00:07:46,920 --> 00:07:48,920 для обработки ошибок в асинхронных функциях мы можем использовать 168 00:07:48,920 --> 00:07:49,920 StrikeEdge. 169 00:07:52,320 --> 00:07:54,320 Ну да, всё правильно. 170 00:07:54,640 --> 00:07:56,640 Так. Эээ 171 00:07:59,040 --> 00:08:00,040 Погнали. 172 00:08:00,480 --> 00:08:01,480 Еще один вопрос касательно замыкания. 173 00:08:03,560 --> 00:08:04,560 Что такое? 174 00:08:04,960 --> 00:08:05,960 как можно использовать. 175 00:08:07,120 --> 00:08:12,117 Так, ну это комбинация функций и лексического окружения, 176 00:08:12,117 --> 00:08:13,117 в котором эта функция определена. 177 00:08:14,240 --> 00:08:19,474 То есть, когда у нас одна функция находится внутри другой, например, 178 00:08:19,520 --> 00:08:22,800 и внутренняя функция имеет доступ к переменным внешней функции даже после 179 00:08:22,800 --> 00:08:23,800 того, 180 00:08:24,200 --> 00:08:25,200 как родительская 181 00:08:25,720 --> 00:08:26,720 функция уже завершила свое выполнение. 182 00:08:29,000 --> 00:08:34,040 Ну и еще замыкания создаются у нас каждый раз при создании функции. 183 00:08:36,040 --> 00:08:37,040 М-м-м, так. 184 00:08:39,720 --> 00:08:40,720 как они нам помогают. 185 00:08:53,440 --> 00:08:54,440 Пока не помогает, 186 00:08:54,560 --> 00:08:55,560 но... 187 00:08:57,000 --> 00:09:01,700 Не знаю, может, для кого-то плюсом будет то, что мы можем вызвать один 188 00:09:01,700 --> 00:09:06,095 раз функцию. Она сохранит свое лексическое окружение и мы 189 00:09:07,800 --> 00:09:08,800 То есть мы вызвали функцию, 190 00:09:09,200 --> 00:09:10,200 она вернула другую функцию, 191 00:09:10,720 --> 00:09:11,720 и мы эту функцию, 192 00:09:11,920 --> 00:09:12,920 которую она вернула, 193 00:09:13,360 --> 00:09:17,640 можем еще несколько раз вызвать и изменять состояние. 194 00:09:18,280 --> 00:09:19,280 родительской функции. 195 00:09:23,040 --> 00:09:24,040 То есть такой пример могу привести. 196 00:09:26,440 --> 00:09:27,440 Окей, 197 00:09:27,800 --> 00:09:29,796 а вот смотри, когда мы в реакции колбеки передаем. 198 00:09:31,400 --> 00:09:32,400 Ааа 199 00:09:32,840 --> 00:09:33,840 Внутри Попсов это Буддин и Канин. 200 00:09:36,520 --> 00:09:37,520 3 пропсов передаем, 201 00:09:39,680 --> 00:09:40,680 то есть, 202 00:09:41,200 --> 00:09:44,680 когда функцию передаем компоненту другому через пропсы. 203 00:09:53,240 --> 00:09:56,520 Ну, по идее, да, у нас же все функции создают замыкание. 204 00:09:57,720 --> 00:09:58,720 Данку. 205 00:09:59,520 --> 00:10:00,520 так с прототипированием сталкивался 206 00:10:03,720 --> 00:10:05,720 Ммм, так, ну да. 207 00:10:06,440 --> 00:10:07,440 Расскажешь, как джейсят Эльзуна? 208 00:10:11,160 --> 00:10:15,160 Так, ну вообще это реализовано, можно сказать, для того, 209 00:10:15,160 --> 00:10:19,120 чтобы была возможность прототипного какого-то наследования. 210 00:10:19,840 --> 00:10:24,440 и не было необходимости писать какой-то дублирующийся код. 211 00:10:25,200 --> 00:10:29,320 Мы можем с помощью ключевого слова Extents наследоваться. 212 00:10:29,600 --> 00:10:35,600 Например, один класс от другого класса наследовать и благодаря этому избегать 213 00:10:35,600 --> 00:10:36,600 дублирования кода. 214 00:10:38,120 --> 00:10:41,480 Плюс у всех объектов в JS есть свойство Prototype. 215 00:10:43,680 --> 00:10:48,340 Оно ссылается на прототип функции конструктора, с помощью которого этот 216 00:10:48,340 --> 00:10:49,340 объект был создан. 217 00:10:51,000 --> 00:10:52,000 То есть, можно сказать, 218 00:10:52,520 --> 00:10:55,440 это ссылка на прототип родительского объекта. 219 00:10:57,320 --> 00:10:58,320 Ну плюс там есть цепочка прототипов, 220 00:11:00,360 --> 00:11:01,360 у которой на конце null, 221 00:11:02,840 --> 00:11:03,840 и если мы обращаемся к 222 00:11:04,200 --> 00:11:07,760 свойству объекта, то оно сначала ищется в текущем объекте, 223 00:11:08,440 --> 00:11:09,440 если оно там не найдено, 224 00:11:09,720 --> 00:11:10,720 то оно идет по цепочке прототипов. 225 00:11:13,040 --> 00:11:15,640 Там в Proto мы также можем как-то мутировать, 226 00:11:15,800 --> 00:11:16,800 добавлять новые свойства, 227 00:11:18,040 --> 00:11:20,039 например, там новые методы. 228 00:11:21,960 --> 00:11:27,480 А вот статические методы как определяются, как используются? 229 00:11:28,720 --> 00:11:29,720 статические методы, 230 00:11:30,960 --> 00:11:35,040 мы можем их использовать без создания экземпляра класса 231 00:11:36,480 --> 00:11:37,480 Но ты в своей практике используешь их? 232 00:11:39,920 --> 00:11:42,920 Так, ну, только промисол, 233 00:11:42,920 --> 00:11:43,920 например. 234 00:11:47,680 --> 00:11:50,720 Возможно еще просто в голову только promise all, 235 00:11:50,840 --> 00:11:51,840 promise race и так далее приходят. 236 00:11:56,080 --> 00:11:58,076 Ну, может быть проверка на массив там, 237 00:11:58,240 --> 00:11:59,240 РАИ, СРАИ. 238 00:11:59,960 --> 00:12:00,960 А, ну да, 239 00:12:01,280 --> 00:12:02,280 там тогда вообще много, 240 00:12:03,440 --> 00:12:06,439 наверное, есть. А хотя стоп. 241 00:12:06,439 --> 00:12:07,439 А Рэй за Рэе тоже. 242 00:12:08,160 --> 00:12:09,160 А, ну да, это метод. 243 00:12:11,080 --> 00:12:12,080 Ну а ты сам их определял, 244 00:12:13,240 --> 00:12:14,240 описывал? 245 00:12:14,840 --> 00:12:15,840 М-м 246 00:12:16,200 --> 00:12:20,300 ну сам никогда не мутировал прототип и нет а или ты имеешь ввиду какой-то 247 00:12:20,300 --> 00:12:24,400 свой класс создавал создавал статический методов ли 248 00:12:25,280 --> 00:12:26,280 Ля. 249 00:12:26,880 --> 00:12:27,880 Ну да, 250 00:12:28,320 --> 00:12:32,520 там класс для вызова back-end методов каких-то создавал, 251 00:12:32,680 --> 00:12:33,680 и в нем статические методы. 252 00:12:35,120 --> 00:12:36,120 Аппарат вызываемого абонента выключен. 253 00:12:36,720 --> 00:12:39,580 Ну а вот в каких случаях ты использовал статический метод, а не 254 00:12:39,580 --> 00:12:40,580 член класса? 255 00:12:49,840 --> 00:12:52,440 Когда нет необходимости нам создавать экземпляр класса для вызова этого 256 00:12:52,440 --> 00:12:53,440 метода. 257 00:12:56,000 --> 00:12:58,000 То есть, скорее всего, 258 00:12:58,000 --> 00:13:00,440 это когда у класса нет какого-то определенного состояния, которое мы 259 00:13:00,440 --> 00:13:01,440 можем менять. 260 00:13:05,880 --> 00:13:06,880 Ммм, окей, ладно. 261 00:13:09,320 --> 00:13:10,320 Как по этой части еще пара вопросов, 262 00:13:13,040 --> 00:13:14,040 сет массива чем отличается, 263 00:13:15,280 --> 00:13:16,280 структура данных, 264 00:13:17,520 --> 00:13:19,520 сет, мапа, рейд, чем они отличаются? 265 00:13:20,640 --> 00:13:21,640 Ммм, так. 266 00:13:24,560 --> 00:13:25,560 Во-первых, 267 00:13:26,240 --> 00:13:27,240 сет — это, можно сказать, 268 00:13:28,040 --> 00:13:30,680 коллекция для хранения каких-то уникальных значений. 269 00:13:33,200 --> 00:13:34,200 Ну и плюс, 270 00:13:34,400 --> 00:13:38,240 в отличие от массива, у неё есть набор методов, 271 00:13:38,360 --> 00:13:39,360 например там set, 272 00:13:40,080 --> 00:13:42,079 get, хотя get нет. 273 00:13:44,400 --> 00:13:45,400 Я думаю понятно, 274 00:13:45,720 --> 00:13:46,720 Set есть метод, 275 00:13:47,040 --> 00:13:48,040 Entries и так далее, 276 00:13:49,600 --> 00:13:52,800 у Map тоже есть набор своих методов, в отличие от Massive, 277 00:13:53,880 --> 00:13:54,880 по типу Entries, Cases и так далее. 278 00:13:59,160 --> 00:14:05,160 И в Map это коллекция для хранения значений в виде ключ-значения, 279 00:14:06,240 --> 00:14:09,396 и в отличии, ну скорее его можно сравнить с объектом. 280 00:14:09,396 --> 00:14:12,616 И в отличии от объекта в Map ключами могут быть не только String или 281 00:14:12,616 --> 00:14:13,616 Symbol, 282 00:14:16,040 --> 00:14:21,040 а какие-то произвольные типы данных по типу массивов, 283 00:14:21,160 --> 00:14:22,160 объектов и так далее. 284 00:14:25,560 --> 00:14:31,560 И плюс мы при инициализации мэппи-сет вызываем их с помощью оператора нью, 285 00:14:33,320 --> 00:14:36,320 а массивы мы просто объявляем с помощью квадратных скобочек. 286 00:14:38,600 --> 00:14:42,036 Конечно, их можно с помощью ньюэр рейтуржа объявлять. 287 00:14:45,200 --> 00:14:46,200 Это был Станислав Кеслич. 288 00:14:49,000 --> 00:14:50,000 Окей. Ладно. 289 00:14:51,880 --> 00:14:53,960 Так, а про разборщик мусора ты знаешь что-нибудь? 290 00:14:55,960 --> 00:14:58,960 Ну, немного знаю. Там, 291 00:14:58,960 --> 00:15:02,840 когда мы объявляем какие-то переменные, они в кучу складываются, 292 00:15:03,640 --> 00:15:04,640 занимают там память. 293 00:15:06,280 --> 00:15:08,280 И, например, мы объявили объект, 294 00:15:08,400 --> 00:15:09,400 и этот объект нигде не используется. 295 00:15:11,720 --> 00:15:16,680 И сборщик мусора при проходе находит такие объекты, 296 00:15:16,760 --> 00:15:17,760 которые нигде не используются в коде. 297 00:15:19,080 --> 00:15:22,960 И если на них нет ссылок, то он убирает их из памяти. 298 00:15:26,880 --> 00:15:29,960 В каких случаях сборщик мусора начинает работать? 299 00:15:36,840 --> 00:15:37,840 Эх, сборщик мусора. 300 00:15:40,040 --> 00:15:42,040 Блин, насколько я помню, он... 301 00:15:43,520 --> 00:15:49,520 периодически проходит и ищет ссылки на ненужный код. 302 00:15:52,440 --> 00:15:53,440 Наверное, 303 00:15:53,560 --> 00:15:55,556 не скажу, в каких случаях он начинает работать. 304 00:15:56,080 --> 00:15:58,080 По-моему, всегда. 305 00:16:00,040 --> 00:16:04,039 Да, окей, ладно, ну то есть ты имеешь ввиду как в конце 306 00:16:05,520 --> 00:16:09,440 event loop запускать заборщик мусора и удалять ненужные ссылки. 307 00:16:12,880 --> 00:16:13,880 Для чего нам надо, давай так, 308 00:16:14,920 --> 00:16:15,920 ответьте на вопрос, 309 00:16:15,920 --> 00:16:17,760 для чего нам надо выпускать борщ в мусор? 310 00:16:18,640 --> 00:16:19,640 для того, 311 00:16:19,800 --> 00:16:20,800 чтобы освободить память, 312 00:16:21,920 --> 00:16:22,920 которую они используют. 313 00:16:25,320 --> 00:16:27,319 для того, чтобы освободить память. 314 00:16:30,320 --> 00:16:31,320 Ну и соответственно, 315 00:16:31,400 --> 00:16:37,400 если бы ты такой функционал писал, то когда бы я вызывал такой сборщик? 316 00:16:39,560 --> 00:16:40,560 Угу. 317 00:16:45,080 --> 00:16:46,080 Сейчас подумаю немного. 318 00:16:50,160 --> 00:16:52,400 Не знаю, в голову приходит после выполнения какого-то определенной 319 00:16:52,400 --> 00:16:53,400 части кода. 320 00:17:04,000 --> 00:17:05,000 Ууу 321 00:17:10,760 --> 00:17:11,760 Что-то больше не приходит в голову. 322 00:17:13,840 --> 00:17:14,840 Ну, 323 00:17:14,840 --> 00:17:17,800 если у тебя приложение будет каждый раз после выполнения там какого-то 324 00:17:17,800 --> 00:17:18,800 кода, ну, я так прозываю, EventLoop'a. 325 00:17:20,560 --> 00:17:22,559 Может быть, я не прав. 326 00:17:24,400 --> 00:17:25,400 запускать какой-то там процесс, 327 00:17:25,960 --> 00:17:27,960 соответственно, по 328 00:17:28,200 --> 00:17:31,960 утилизации, соответственно, ресурсов, то это бы, наверное, приводило к 329 00:17:32,400 --> 00:17:33,400 нескольким проблемам. 330 00:17:34,880 --> 00:17:35,880 Мы ранее с тобой говорили о том, 331 00:17:36,720 --> 00:17:37,720 что JS однопоточный, 332 00:17:38,520 --> 00:17:40,240 соответственно, надо избегать таких процессов. 333 00:17:41,960 --> 00:17:42,960 Как думаешь или знаешь, 334 00:17:44,640 --> 00:17:46,640 соответственно, вот о... 335 00:17:47,560 --> 00:17:49,960 Ограничения по памяти есть у приложения? 336 00:17:54,560 --> 00:17:55,560 Ограничение попямься, 337 00:17:55,560 --> 00:17:56,560 да. 338 00:18:00,440 --> 00:18:02,440 Ну вот, если, 339 00:18:02,920 --> 00:18:03,920 допустим, 340 00:18:04,000 --> 00:18:05,000 там, 341 00:18:05,000 --> 00:18:06,780 вкладка в браузере начинает приближаться к этому лимиту, там, 342 00:18:06,780 --> 00:18:07,780 условно, 343 00:18:08,600 --> 00:18:09,600 4 гигабайта откидает, 344 00:18:10,160 --> 00:18:11,160 то... 345 00:18:12,120 --> 00:18:13,120 Вау! 346 00:18:14,680 --> 00:18:16,920 Может логичнее в этот момент запускать сборщик мусора? 347 00:18:17,520 --> 00:18:20,440 А, ты имеешь ввиду, когда появляются проблемы с памятью? 348 00:18:21,360 --> 00:18:22,360 Ну да. 349 00:18:24,160 --> 00:18:27,160 Ну, скорее всего, да. 350 00:18:31,480 --> 00:18:32,480 Так, ладно, 351 00:18:32,640 --> 00:18:33,640 окей, с ЦСС, 352 00:18:37,080 --> 00:18:38,080 с какими припроцессорами работал? 353 00:18:41,600 --> 00:18:42,600 СССР и ЛССР 354 00:18:46,520 --> 00:18:47,520 с методологиями, 355 00:18:51,000 --> 00:18:52,000 с которыми сталкивался и подходами. 356 00:18:52,800 --> 00:18:55,800 у Так, на методологии. 357 00:18:55,800 --> 00:18:56,800 только с пэм, 358 00:18:57,120 --> 00:18:58,120 насколько я помню, 359 00:18:58,520 --> 00:19:03,280 блок-элемент-модификатор и из подходов, наверное, 360 00:19:03,480 --> 00:19:04,480 модульный css. 361 00:19:06,840 --> 00:19:07,840 А модульный CSS какую проблему решает? 362 00:19:09,160 --> 00:19:10,160 Для чего его придумали? 363 00:19:11,080 --> 00:19:14,080 так, ну, изоляция стилей, 364 00:19:14,080 --> 00:19:16,080 то есть, чтобы нам, 365 00:19:16,080 --> 00:19:21,160 чтобы не было дублирующихся имен и не приходилось придумывать 366 00:19:21,160 --> 00:19:25,720 и городить какие-то большие имена классов. Угу, окей, 367 00:19:25,720 --> 00:19:26,720 а как сделать так, 368 00:19:27,040 --> 00:19:28,040 чтобы у селектора в стиле был... 369 00:19:30,840 --> 00:19:31,840 максимально возможный вес, 370 00:19:32,920 --> 00:19:34,920 то есть именно он применялся к компоненту. 371 00:19:37,120 --> 00:19:38,120 с помощью импотент можем реализовать 372 00:19:40,280 --> 00:19:41,280 еще какие-то варианты есть 373 00:19:45,960 --> 00:19:46,960 написать стили через inline-стили, 374 00:19:48,920 --> 00:19:49,920 либо каким-то образом повысить 375 00:19:52,680 --> 00:19:55,800 специфичность селектора, там, создать какую-то вложенность. 376 00:19:59,920 --> 00:20:00,920 Ммм, окей. 377 00:20:04,880 --> 00:20:05,880 Давай еще немного про Реакт. 378 00:20:10,960 --> 00:20:13,960 Пум-пум, пум-пум. Так, а что такое виртуал-дом? 379 00:20:15,760 --> 00:20:16,760 Так, ну, виртуал-дом — это, 380 00:20:17,960 --> 00:20:20,840 можно сказать, какая-то легковестная копия дом-дерева. 381 00:20:21,560 --> 00:20:24,360 Она хранится в оперативной памяти и синхронизируется с этим реальным 382 00:20:24,360 --> 00:20:25,360 дом-деревом. 383 00:20:28,880 --> 00:20:33,200 Основная цель она помогает избежать прямой работы с домом, так как это 384 00:20:33,200 --> 00:20:34,200 влияет на производительность. 385 00:20:38,680 --> 00:20:42,420 И у нас при каждом изменении дом в чистом джейсе происходят тяжеловесные 386 00:20:42,420 --> 00:20:43,420 операции для браузера по типу layout, 387 00:20:46,320 --> 00:20:47,320 painting, reflow и так далее. 388 00:20:49,520 --> 00:20:53,560 Виртуал дом хранится в виде обычного джава скрипт объекта, 389 00:20:54,360 --> 00:20:57,720 и благодаря этому мы можем свободно изменять его свойства, не затрагивая 390 00:20:57,720 --> 00:20:58,720 дом дерева, пока это не понадобится. 391 00:21:02,280 --> 00:21:06,600 и потом точно пакетно обновлять этот дом-дерево. 392 00:21:07,800 --> 00:21:08,800 Вообще принцип работы примерно такой, 393 00:21:10,880 --> 00:21:15,160 что при изменении состояния обновляется виртуал дом, 394 00:21:15,160 --> 00:21:17,820 после обновления виртуал дом сравнивается текущая версия с 395 00:21:17,820 --> 00:21:18,820 предыдущей 396 00:21:20,320 --> 00:21:26,320 и вычисляется разница между этими деревьями и потом точно обновляется 397 00:21:27,360 --> 00:21:28,360 только те части реального домозерия, 398 00:21:29,080 --> 00:21:30,080 которые действительно изменились. 399 00:21:32,520 --> 00:21:33,520 Ну плюс там реактор реализует 400 00:21:36,480 --> 00:21:37,480 эвристический алгоритм, 401 00:21:37,800 --> 00:21:39,720 который на двух предположениях основывается. 402 00:21:40,920 --> 00:21:41,920 Первое это то, что 403 00:21:43,120 --> 00:21:46,560 два элемента с разными типами произведут разные деревья, 404 00:21:47,360 --> 00:21:50,800 то есть при сравнении первым делом сравниваются корневые элементы. 405 00:21:51,680 --> 00:21:52,680 Если они изменились, 406 00:21:53,120 --> 00:21:56,400 то уничтожается старое дерево и строится новое с нуля. 407 00:21:57,760 --> 00:21:58,760 Если изменить, 408 00:21:59,120 --> 00:22:03,175 например, только атрибуты его элементов, то обновятся только 409 00:22:03,175 --> 00:22:04,175 атрибуты без уничтожения дерева. 410 00:22:05,920 --> 00:22:08,280 И второе, это то, что мы можем указать, 411 00:22:09,240 --> 00:22:12,200 какие элементы должны оставаться стабильными между ререндерами с 412 00:22:12,200 --> 00:22:13,200 помощью cropKey. 413 00:22:15,160 --> 00:22:16,160 То есть, 414 00:22:16,680 --> 00:22:17,680 когда я исключил элементы, 415 00:22:18,280 --> 00:22:19,280 они используются для того, 416 00:22:20,080 --> 00:22:24,300 чтобы сопоставить эти элементы текущего дерева и предыдущего при 417 00:22:24,300 --> 00:22:25,300 сравнении. 418 00:22:30,120 --> 00:22:31,120 Ну а вот когда код пишешь, 419 00:22:34,520 --> 00:22:37,760 где приходится кейп принудительно указывать? 420 00:22:38,800 --> 00:22:42,200 Ну, когда мы мапим какой-то массив, например. 421 00:22:44,520 --> 00:22:46,520 Окей, ладно. А что такое GSX? 422 00:22:47,880 --> 00:22:53,880 так ну можно сказать это какой-то html-подобный синтаксис в реакте 423 00:22:57,040 --> 00:23:00,700 в итоге он компилируется с помощью bible вызову функции 424 00:23:00,700 --> 00:23:01,700 react.createElement 425 00:23:05,400 --> 00:23:06,400 Ну, 426 00:23:08,160 --> 00:23:10,760 а без ДСХ можно использовать реактивную систему? 427 00:23:12,240 --> 00:23:17,360 Ну, можно с помощью... вызывать прям напрямую эти React.CreateElement. 428 00:23:17,560 --> 00:23:19,560 Угу, окей. 429 00:23:20,000 --> 00:23:23,478 Как, а тебе доводилось с классовыми компонентами работать? 430 00:23:24,280 --> 00:23:25,280 Так, ну на одном проекте доработал, 431 00:23:26,600 --> 00:23:27,600 немного там рефакторил. 432 00:23:29,400 --> 00:23:34,120 А вот отличие функционального подхода от классового чем заключается? 433 00:23:34,960 --> 00:23:35,960 Функционально от класса. 434 00:23:40,720 --> 00:23:41,720 Во-первых, 435 00:23:42,120 --> 00:23:46,128 наверное, отличие можно отнести в том, что мы можем функционально 436 00:23:46,128 --> 00:23:47,128 использовать хуки. 437 00:23:49,400 --> 00:23:50,400 Ещё к отличию можно отнести то, 438 00:23:51,640 --> 00:23:56,520 что у нас в функциональных компонентах, например, 439 00:23:56,680 --> 00:23:59,533 мы создаём какой-то объект или обработчик события, он будет при 440 00:23:59,533 --> 00:24:02,386 каждом рендере создаваться заново, в классовых он один раз 441 00:24:02,386 --> 00:24:03,386 инициализируется. 442 00:24:07,240 --> 00:24:11,360 На плюс эмоциональных нам не надо биндить, например, 443 00:24:11,520 --> 00:24:12,520 контекст. 444 00:24:14,520 --> 00:24:15,520 А еще что? 445 00:24:17,240 --> 00:24:21,040 у него функциональных нет метода рендер там нет не надо вызывать 446 00:24:21,040 --> 00:24:22,040 конструкторы 447 00:24:27,520 --> 00:24:28,520 Примерно такие отличия. 448 00:24:31,240 --> 00:24:32,240 У-у-у-у-у-у-у-у-у-у. 449 00:24:38,240 --> 00:24:39,240 Давай что-нибудь про Хук. 450 00:24:40,000 --> 00:24:41,000 Ууу 451 00:24:46,120 --> 00:24:48,120 Например, use callback, 452 00:24:48,120 --> 00:24:49,120 в каких случаях стоит использовать, 453 00:24:50,800 --> 00:24:52,160 а в каких случаях не стоит использовать. 454 00:24:53,680 --> 00:24:54,680 стоит использовать только в случаях, 455 00:24:57,960 --> 00:24:58,960 насколько мне кажется, 456 00:24:59,640 --> 00:25:00,640 если мы передаем его через 457 00:25:01,440 --> 00:25:04,440 пропсы к компоненту, который обернут в ReactMemo, 458 00:25:04,960 --> 00:25:10,680 ну либо если мы передаем ее в зависимости другим 459 00:25:10,680 --> 00:25:12,680 хоккам, например useEffect, 460 00:25:13,520 --> 00:25:17,040 потому что если мы не обернем в useCallback и передадим в зависимости, 461 00:25:18,040 --> 00:25:20,540 то при каждом рендере эта функция будет создаваться заново и триггерить 462 00:25:20,540 --> 00:25:21,540 этот эффект, 463 00:25:23,040 --> 00:25:24,040 например. 464 00:25:28,800 --> 00:25:29,800 Окей, 465 00:25:30,600 --> 00:25:32,600 так, с контекста Пи знаком? 466 00:25:34,960 --> 00:25:37,880 А что предпочел использовать контекст API или Redux? 467 00:25:39,800 --> 00:25:40,800 Так, ну мне больше нравится Redux, 468 00:25:43,440 --> 00:25:44,440 в основном, 469 00:25:45,080 --> 00:25:47,440 ну из-за того, что там как-то более явное отделение бизнес-логики от UI 470 00:25:47,440 --> 00:25:48,440 происходит. 471 00:25:51,440 --> 00:25:56,020 ну и плюс у контекста там минус что при изменении значения провайдере он 472 00:25:56,020 --> 00:26:00,600 рендерит всех своих дочерних компонентов 473 00:26:02,480 --> 00:26:03,480 а редакс там, 474 00:26:04,560 --> 00:26:07,920 ну там вычисления происходят в селекторах и если не нужно, 475 00:26:08,520 --> 00:26:10,560 то не выполняется перерисовка компонента 476 00:26:24,960 --> 00:26:30,960 Да, знаком, в основном там же каких-то мадалок использовал и дали толстиков 477 00:26:30,960 --> 00:26:31,960 каких-то. 478 00:26:37,440 --> 00:26:38,440 Ну а для чего Порталс? 479 00:26:42,560 --> 00:26:47,118 Так, ну чтобы отрисовать какой-то элемент, например, 480 00:26:47,240 --> 00:26:48,240 вне иерархии компонента этого. 481 00:26:51,160 --> 00:26:55,680 Обычно там принимают какую-то разметку первым аргументом и вторым контейнер, 482 00:26:55,680 --> 00:26:56,680 в котором нужно отрисовать элементы. 483 00:27:02,880 --> 00:27:03,880 Окей. 484 00:27:04,440 --> 00:27:08,400 Слушай, раз про редакцию немного заговорили, то уже тут пара вопросов. 485 00:27:08,400 --> 00:27:11,640 А жизненный цикл в редакции можешь описать? 486 00:27:12,600 --> 00:27:17,440 Жизнный цикл, ты имеешь ввиду по типу Лаксонго-Ворота? 487 00:27:18,240 --> 00:27:21,234 Да, да, да. Ну да, мы там сначала создаем экшен, 488 00:27:22,800 --> 00:27:23,800 передаем его в диспатч, 489 00:27:24,320 --> 00:27:25,320 далее обновляется состояние 490 00:27:27,160 --> 00:27:30,920 И после этого обновляется интерфейс, и так по кругу 491 00:27:34,800 --> 00:27:35,800 Вот экшен от редюсера чем отличается. 492 00:27:39,640 --> 00:27:41,640 Так, ну Action это объект, 493 00:27:43,080 --> 00:27:46,480 обычно с каким-то полем Type и Payload, 494 00:27:46,600 --> 00:27:47,600 если необходим. 495 00:27:48,600 --> 00:27:49,600 Reducer, 496 00:27:50,440 --> 00:27:51,440 ну Reducer это функция, 497 00:27:52,800 --> 00:27:53,800 чистая функция. 498 00:27:54,680 --> 00:27:55,680 А что такое чистая функция? 499 00:27:57,400 --> 00:27:58,400 Ну это функция, 500 00:27:58,760 --> 00:28:01,120 которая не имеет каких-то побочных эффектов и при одном и том же значении 501 00:28:01,120 --> 00:28:02,120 возвращает 502 00:28:04,200 --> 00:28:05,200 один и тот же результат. 503 00:28:06,960 --> 00:28:09,400 К побочным эффектам можно отнести вообще 504 00:28:10,200 --> 00:28:11,200 чтение каких-то глобальных переменных, 505 00:28:12,440 --> 00:28:13,440 например, 506 00:28:13,840 --> 00:28:17,560 либо обращение глобального API по типу Console.Log.Window. 507 00:28:18,800 --> 00:28:19,800 Плюс там вызовы функций. 508 00:28:21,800 --> 00:28:22,800 не вызову функции, 509 00:28:23,440 --> 00:28:24,440 а вызову, например, 510 00:28:26,080 --> 00:28:27,080 обращение копий к серверным. 511 00:28:30,440 --> 00:28:35,240 Ну там плюс мутирование каких-то входящих аргументов. 512 00:28:36,440 --> 00:28:39,440 Угу. Так, а ты же с редактурки там, да, работал? 513 00:28:43,400 --> 00:28:44,400 А Стулкит АП работал, 514 00:28:46,120 --> 00:28:47,120 Стулкит Квэрри то есть. 515 00:28:48,040 --> 00:28:49,040 Да, работал тоже. 516 00:28:50,280 --> 00:28:53,280 Угу. У-у-у. У-у-у. 517 00:28:53,280 --> 00:28:54,280 делал там кэширование данных 518 00:28:56,680 --> 00:28:57,680 Так, 519 00:28:57,720 --> 00:28:58,720 кширование данных. 520 00:29:02,280 --> 00:29:03,280 Вроде там автоматически кэшируется. 521 00:29:05,040 --> 00:29:06,040 Насколько я помню, гэт запросы. 522 00:29:07,480 --> 00:29:08,480 Хе-хе. 523 00:29:08,840 --> 00:29:11,320 Но вот тебе нужно инвалидацию провести. 524 00:29:12,760 --> 00:29:13,760 Ну да там можно передавать. 525 00:29:16,880 --> 00:29:18,880 Как, например, 526 00:29:19,600 --> 00:29:20,600 у нас есть пост-запрос и гет-запрос. 527 00:29:22,680 --> 00:29:23,680 И когда мы в гет-запрос передаем, 528 00:29:25,320 --> 00:29:26,320 насколько я помню, 529 00:29:26,320 --> 00:29:27,320 массив каких-то тегов, 530 00:29:28,640 --> 00:29:34,640 и в пост-запрос тоже передаем массив этих же тегов, 531 00:29:35,840 --> 00:29:39,360 вроде invalidate queries называется или как-то так, 532 00:29:39,840 --> 00:29:44,240 и при вызове этого пост-запроса будут вызываться автоматически 533 00:29:44,920 --> 00:29:45,920 инвалидация get-запроса этого же, 534 00:29:47,480 --> 00:29:48,480 с этими же тегами. 535 00:29:49,840 --> 00:29:50,840 Окей, понял. 536 00:29:51,560 --> 00:29:53,560 Так, ладно. 537 00:29:54,040 --> 00:29:55,040 Здесь понятно. 538 00:29:57,600 --> 00:29:59,600 По параметрам. Да, 539 00:29:59,600 --> 00:30:00,600 ты есть еще пара вопросов. 540 00:30:02,760 --> 00:30:03,760 То есть у тебя как опыта. 541 00:30:05,680 --> 00:30:09,280 Нормально тоже практически на всех проектах использовался. 542 00:30:10,120 --> 00:30:12,120 Ну, супер. Ну тогда, наверное, 543 00:30:12,240 --> 00:30:13,240 ты легко отвечишь, 544 00:30:13,920 --> 00:30:14,920 что такое дженерики. 545 00:30:16,880 --> 00:30:17,880 Да, 546 00:30:19,400 --> 00:30:20,400 синерики нам позволяют, 547 00:30:21,040 --> 00:30:24,620 можно сказать, создавать более гибкие типы, то есть не какой-то строго 548 00:30:24,620 --> 00:30:25,620 определенный тип, 549 00:30:28,360 --> 00:30:31,400 а типы, способные работать с различными типами. 550 00:30:32,680 --> 00:30:38,680 И позволяет нам определять тип момента использования по типу, как функции, 551 00:30:39,120 --> 00:30:40,960 как аргумент для функции мы передаем тип. 552 00:30:42,840 --> 00:30:43,840 Угу. 553 00:30:44,320 --> 00:30:46,319 Так, ну как-то так, 554 00:30:46,319 --> 00:30:47,319 если кратко. 555 00:30:53,800 --> 00:30:57,360 Какие-то утилитарные функции можешь в TypeScript привести, 556 00:30:57,520 --> 00:31:00,520 например? Так, ну да, 557 00:31:01,640 --> 00:31:02,640 вообще их там много. 558 00:31:04,200 --> 00:31:05,200 Так, из последних, 559 00:31:06,040 --> 00:31:07,040 которых используют часто, 560 00:31:07,200 --> 00:31:13,200 это, наверное, рекорд пикомит и там редонли паршал реквайрт. 561 00:31:13,400 --> 00:31:14,400 Всем пока! 562 00:31:16,840 --> 00:31:17,840 Окей. Спасибо. 563 00:31:19,040 --> 00:31:20,040 Так. 564 00:31:20,160 --> 00:31:22,160 Молодцы. Теперь такой. 565 00:31:23,440 --> 00:31:24,440 Небольшой вопрос по общим технологиям. 566 00:31:28,960 --> 00:31:29,960 Что такое протокол HTTP? 567 00:31:33,880 --> 00:31:37,400 Это протокол прикладного уровня передачи данных, 568 00:31:38,240 --> 00:31:42,640 изначально использовавшийся для передачи html документов. 569 00:31:44,720 --> 00:31:47,660 Сейчас используется для передачи каких-то произвольных данных по типу 570 00:31:47,660 --> 00:31:48,660 дрейсонов и так далее. 571 00:31:51,560 --> 00:31:52,560 А из чего он состоит? 572 00:31:53,560 --> 00:31:55,560 Угу, это стейт. 573 00:31:57,480 --> 00:32:02,680 Так, ну, во-первых, из метода пути до ресурса, 574 00:32:02,920 --> 00:32:03,920 там еще 575 00:32:04,480 --> 00:32:05,480 можно передать какой-то, например, 576 00:32:06,480 --> 00:32:07,480 body. 577 00:32:08,400 --> 00:32:09,400 ну еще хеддер, 578 00:32:10,040 --> 00:32:11,040 хеддеры. 579 00:32:11,400 --> 00:32:12,400 Угу. 580 00:32:14,240 --> 00:32:15,240 Так, 581 00:32:16,040 --> 00:32:17,040 ну и вроде все. 582 00:32:18,000 --> 00:32:20,000 Добрый вечер. Добрый вечер. 583 00:32:22,640 --> 00:32:24,640 Так, скорост сталкивался. 584 00:32:25,880 --> 00:32:28,880 Угу, да. Всем пока! 585 00:32:31,680 --> 00:32:33,680 Знакомьтесь. Знакомьтесь. 586 00:32:33,680 --> 00:32:36,040 доводилось ее придумывать механизмы как ее обойти. 587 00:32:38,600 --> 00:32:41,720 Ну, то есть, ты делаешь какой-то запрос к ресурсу, 588 00:32:41,840 --> 00:32:42,840 а тебе браузер говорит про корс. 589 00:32:44,360 --> 00:32:45,360 Не могу сделать запрос, 590 00:32:45,720 --> 00:32:48,040 что нужно сделать, чтобы теперь получилось. 591 00:32:48,320 --> 00:32:49,320 Угу. 592 00:32:50,120 --> 00:32:53,120 Так, ну, наверное, 593 00:32:53,120 --> 00:32:54,120 самый классический способ попросить, 594 00:32:54,120 --> 00:32:59,440 чтобы на бакенде добавили наш домен в список доступных источников. 595 00:32:59,440 --> 00:33:02,440 Да, хорошо, у меня всё-таки варианты есть. Так. 596 00:33:02,480 --> 00:33:03,480 Но я сам не использовал, 597 00:33:03,800 --> 00:33:05,799 но, насколько помню, есть 598 00:33:05,799 --> 00:33:09,559 возможность там через расширение отключить курс проверки 599 00:33:09,559 --> 00:33:15,140 в браузере. А вот корс он реализуется на стороне бэкэнда, соответственно, 600 00:33:15,140 --> 00:33:16,140 или клиента? 601 00:33:17,160 --> 00:33:18,160 Так, 602 00:33:18,320 --> 00:33:20,900 ну вообще на бэкэнде мы настраиваем список доменов с которых мы можем 603 00:33:20,900 --> 00:33:21,900 обрабатывать запросы. 604 00:33:26,520 --> 00:33:30,680 Ну, на бык-кредит ты настроил список запросов, а кто, собственно, 605 00:33:30,680 --> 00:33:31,680 выполняет курс, ну, 606 00:33:32,720 --> 00:33:33,720 сосчитывал. 607 00:33:39,760 --> 00:33:41,940 Если мы вместо браузера будем какой-нибудь консольную утилиту 608 00:33:41,940 --> 00:33:42,940 использовать, 609 00:33:44,240 --> 00:33:45,240 типа VGETA или COS, 610 00:33:46,600 --> 00:33:47,600 то это будет очень сложно. 611 00:33:48,400 --> 00:33:49,400 будет реагировать. 612 00:33:50,760 --> 00:33:51,760 Работать! 613 00:33:52,600 --> 00:33:53,600 Так, ну, насколько я помню, 614 00:33:54,920 --> 00:33:55,920 когда я через постман запросы делал, 615 00:33:57,640 --> 00:33:58,640 там не было шиппинг-корс. 616 00:34:01,440 --> 00:34:04,760 То есть ты имеешь в виду, это еще один способ обойти курс? 617 00:34:06,000 --> 00:34:07,000 Ну да, 618 00:34:07,960 --> 00:34:08,960 а с партиями сталкивался? 619 00:34:11,040 --> 00:34:12,040 Ну, 620 00:34:12,040 --> 00:34:14,020 допустим, ты разрабатываешь там какой-то фронтен, да, и тебе нужно от 621 00:34:14,020 --> 00:34:15,020 бэкэнда, 622 00:34:15,640 --> 00:34:17,640 от произвольных бэкэндов получать какие-то, 623 00:34:17,760 --> 00:34:20,640 ну, в смысле, не от произвольных бэкэндов, а от произвольных стендов. 624 00:34:21,200 --> 00:34:22,200 Обыкновенно. 625 00:34:22,360 --> 00:34:23,360 Допустим. 626 00:34:23,920 --> 00:34:28,120 Ну да, там вроде тоже через прокси можно настроить, 627 00:34:28,400 --> 00:34:29,400 чтобы не был курс ошибки. 628 00:34:31,320 --> 00:34:33,320 Да, у проксирования еще один вариант. 629 00:34:33,440 --> 00:34:34,440 Там же в вебпаке, допустим. 630 00:34:35,120 --> 00:34:37,840 Так, окей. И с хоп-сокетами сталкивался? 631 00:34:38,480 --> 00:34:39,480 Мда. 632 00:34:40,160 --> 00:34:41,160 Там он с помощью библиотеки сокитаю. 633 00:34:46,920 --> 00:34:50,836 Ну, собственно, дубсокет, который передачу данных организовывает. 634 00:34:52,040 --> 00:34:53,040 Так, 635 00:34:54,040 --> 00:35:00,040 передача данных по двухстороннему соединению между клиентом и сервером. 636 00:35:02,160 --> 00:35:05,360 А какие-то еще альтернативы есть веб-сокетам? 637 00:35:06,200 --> 00:35:08,200 Так, ну и за альтернатив, 638 00:35:08,240 --> 00:35:09,240 насколько я помню, 639 00:35:09,240 --> 00:35:10,240 можно... 640 00:35:11,040 --> 00:35:12,040 через полинг, 641 00:35:12,160 --> 00:35:16,228 примерно похожий интервал реализоваться через лонг полинг и 642 00:35:16,228 --> 00:35:17,228 сервер сэнт ивентс. 643 00:35:18,880 --> 00:35:19,880 Окей, 644 00:35:19,960 --> 00:35:21,960 ну ладно, пасиба. 645 00:35:22,000 --> 00:35:24,000 Так, я, возможно, 646 00:35:24,040 --> 00:35:25,040 сейчас... 647 00:35:25,160 --> 00:35:28,040 Подпишитесь на канал, ставьте лайки и подписывайтесь на канал, чтобы не 648 00:35:28,040 --> 00:35:29,040 пропустить новые видео. 649 00:35:40,360 --> 00:35:42,360 Он вернулся? Да, вижу. 650 00:35:42,600 --> 00:35:47,156 Да, я предлагаю перейти к части по укодированию. 651 00:35:47,200 --> 00:35:50,080 Сейчас я тебе скину ссылочку и задачку. 652 00:35:52,480 --> 00:35:53,480 Служны. 653 00:35:54,800 --> 00:35:56,800 Нет. Немножко. 654 00:36:01,520 --> 00:36:02,520 Мне кажется, 655 00:36:02,640 --> 00:36:03,640 все должно легко пойти. 656 00:36:56,640 --> 00:36:57,640 сейчас ссылку. 657 00:36:58,120 --> 00:36:59,120 Можешь пошагивать рекламный слайд. 658 00:37:15,440 --> 00:37:16,440 Видно? 659 00:37:16,600 --> 00:37:19,600 Да, видно. Сейчас я скопирую задачку. 660 00:37:24,480 --> 00:37:27,480 Так, ну вот, собственно, 661 00:37:27,480 --> 00:37:28,480 вопрос, 662 00:37:29,040 --> 00:37:30,040 что мы увидим. 663 00:37:31,800 --> 00:37:32,800 в результате выполнения этой функции. 664 00:37:37,160 --> 00:37:39,160 А, и у нас пустая массивка. 665 00:37:47,560 --> 00:37:51,520 Так, ну по идее у нас сначала выполнится весь синхронный код. 666 00:37:53,320 --> 00:37:55,320 Так, то есть сначала запускаем... 667 00:37:58,720 --> 00:37:59,720 Единица, 668 00:38:01,400 --> 00:38:02,400 потом запушится еще раз единица. 669 00:38:05,760 --> 00:38:07,760 Так, дальше. 670 00:38:09,200 --> 00:38:10,200 Дальше еще одна единица. 671 00:38:13,040 --> 00:38:14,040 Так, 672 00:38:14,160 --> 00:38:15,160 Length станет 3. 673 00:38:20,360 --> 00:38:21,360 М-м-м-м-м-м-м. 674 00:38:23,760 --> 00:38:27,560 Так, ну у нас по идее должен вывестись массив с четырьмя 675 00:38:27,560 --> 00:38:28,560 единицами. 676 00:38:30,680 --> 00:38:31,680 с четырьмя. 677 00:38:32,640 --> 00:38:35,640 Угу. Сколько раз? Три раза. 678 00:38:35,760 --> 00:38:36,760 Приятного аппетита! 679 00:38:37,840 --> 00:38:38,840 Так, 680 00:38:38,960 --> 00:38:41,920 ну давай раскомментируем консоль Локи, запустим, посмотрим что получается. 681 00:38:43,280 --> 00:38:45,279 Возможно, перепутал не четыре, 682 00:38:45,279 --> 00:38:47,279 а три, да-да. 683 00:38:50,680 --> 00:38:52,680 Так, у нас везде три единицы, 684 00:38:53,880 --> 00:38:55,880 как я говорил, потому что 685 00:38:56,120 --> 00:38:58,120 вар имеет глобальную область видимости. 686 00:39:00,920 --> 00:39:01,920 Лиза и т.д. 687 00:39:06,120 --> 00:39:09,280 Смотри, как можно модифицировать код так, 688 00:39:09,400 --> 00:39:10,400 чтобы он нам вывел 689 00:39:12,800 --> 00:39:13,800 Массив последовательно, 690 00:39:14,880 --> 00:39:15,880 то есть не сразу, 691 00:39:16,640 --> 00:39:17,640 три раза по три единицы, 692 00:39:18,440 --> 00:39:19,440 а сначала одну единицу, 693 00:39:20,440 --> 00:39:21,440 второй раз две единицы, 694 00:39:21,920 --> 00:39:22,920 третий раз три единицы. 695 00:39:23,680 --> 00:39:25,676 Так, ну можем вар заменить на вэд. 696 00:39:31,360 --> 00:39:34,359 Так, а как, ну, то есть, 697 00:39:34,359 --> 00:39:35,359 почему замена в ВЭП поможет? 698 00:39:42,400 --> 00:39:43,400 А, нет, не помогла. 699 00:39:47,360 --> 00:39:50,240 То есть ты имеешь в виду, как выводить актуальные значения? 700 00:39:52,760 --> 00:39:55,080 То есть, чтобы сначала массив с одной единицей, 701 00:39:55,200 --> 00:39:56,200 потом с двумя, потом с тремя. 702 00:39:58,680 --> 00:40:00,840 Не расслышал еще раз, что с ней сломает. 703 00:40:01,320 --> 00:40:02,320 Ты имеешь ввиду, 704 00:40:02,680 --> 00:40:03,680 что нужно выводить, чтобы сначала 705 00:40:04,480 --> 00:40:07,120 выводился массив с одной единицей, потом с двумя, 706 00:40:07,200 --> 00:40:08,200 потом с тремя? 707 00:40:09,240 --> 00:40:11,240 Ну да, надо код так изменить, 708 00:40:11,480 --> 00:40:12,480 чтобы мы получили такой 709 00:40:13,080 --> 00:40:14,080 результат. 710 00:40:15,680 --> 00:40:16,680 Расскажи, 711 00:40:16,920 --> 00:40:17,920 когда LED работает, 712 00:40:18,520 --> 00:40:19,520 в каких кейсах? 713 00:40:21,560 --> 00:40:23,560 Так, LED работает. 714 00:40:23,560 --> 00:40:24,560 В каких кейсах? 715 00:40:25,000 --> 00:40:26,996 Да, ну ты сейчас варный LED заменил. 716 00:40:27,840 --> 00:40:28,840 на что задачка была похожа. 717 00:40:31,440 --> 00:40:34,239 Так, ну если бы здесь примитивное значение было. 718 00:40:35,040 --> 00:40:36,040 Угу. 719 00:40:38,360 --> 00:40:39,360 Окей, да. 720 00:40:39,640 --> 00:40:40,640 А вот если массив, 721 00:40:41,480 --> 00:40:42,480 то что с этим делать? 722 00:40:43,840 --> 00:40:44,840 Так, ну сейчас немного подумаю. 723 00:40:47,960 --> 00:40:48,960 Ну, 724 00:40:49,240 --> 00:40:50,240 окей, вот если примитивное значение, 725 00:40:51,760 --> 00:40:52,760 что под капотом браузер у себя делает? 726 00:40:55,760 --> 00:40:56,760 Так, ну под капотом, 727 00:40:57,960 --> 00:41:01,040 мне кажется, здесь замыкание какое-то можно создать. 728 00:41:02,960 --> 00:41:03,960 Может, ты к этому. 729 00:41:04,840 --> 00:41:09,359 Ну да, да. Ну то есть вот если бы у нас стандартный цикл был 730 00:41:09,359 --> 00:41:11,353 и примитив, то вот если бы мы использовали ВАД, 731 00:41:13,760 --> 00:41:15,760 ВАР и ЛЭД. 732 00:41:16,160 --> 00:41:17,160 при использовании LED, 733 00:41:17,320 --> 00:41:18,320 чтобы под капотом браузера все делал. 734 00:41:20,360 --> 00:41:22,360 Так, приспособленный лед. 735 00:41:24,880 --> 00:41:25,880 Браузер под капотом. 736 00:41:30,000 --> 00:41:31,000 Так, насколько я понимаю, 737 00:41:31,360 --> 00:41:34,160 создавалось бы какое-то замыкание и сохранилась бы, 738 00:41:34,280 --> 00:41:35,280 выводилась бы именно та переменная, 739 00:41:36,240 --> 00:41:40,560 которая была передана в момент запуска SetTimeout. 740 00:41:42,640 --> 00:41:47,160 Ну да, да. То есть на каждой итерации цикла он бы хранил, да, 741 00:41:48,000 --> 00:41:51,560 значение актуальное для каждой итерации цикла. 742 00:41:52,400 --> 00:41:55,920 Вот. По массиву, да, ты, в принципе, все правильно сказал. 743 00:41:55,920 --> 00:41:56,920 Давай просто это реализуем. 744 00:42:06,320 --> 00:42:07,320 Блин, я знаю, 745 00:42:07,400 --> 00:42:08,400 как это можно реализовать, 746 00:42:08,480 --> 00:42:09,480 мне кажется, но я... 747 00:42:10,360 --> 00:42:12,800 Блин, так сейчас нам немного затрудняюсь тут. 748 00:42:13,480 --> 00:42:14,480 По идее, 749 00:42:15,160 --> 00:42:18,160 в immediately invoked function expression можно обернуть... 750 00:42:20,120 --> 00:42:21,120 может таким способом получится, 751 00:42:23,040 --> 00:42:27,440 то есть обернуть в ифе и в него передавать уже массив 752 00:42:32,560 --> 00:42:33,560 Смотри, 753 00:42:34,080 --> 00:42:39,800 если мы передаем функцию примитив и, допустим, объект или массив, 754 00:42:39,920 --> 00:42:40,920 в чем разница при передаче? 755 00:42:41,360 --> 00:42:42,360 Так. 756 00:42:43,200 --> 00:42:44,200 Если передаем примитив, 757 00:42:44,920 --> 00:42:46,920 или массив, или объект. 758 00:42:47,920 --> 00:42:51,680 Может ты имеешь ввиду то, что примитив передается по значению, 759 00:42:51,840 --> 00:42:52,840 а массив по ссылке? 760 00:42:54,320 --> 00:42:57,912 Да, вот то есть ты делал сейчас, по сути, присваивание, 761 00:42:58,040 --> 00:42:59,040 а ты, по сути, 762 00:42:59,960 --> 00:43:00,960 у тебя ссылка 763 00:43:06,280 --> 00:43:09,320 Тебе надо что-то сделать, чтобы у тебя не ссылка была, 764 00:43:09,560 --> 00:43:11,960 а актуальное значение на каждой итерации цикла. 765 00:43:14,000 --> 00:43:18,396 Да, ну то есть ты для примитива правильно сказал, что у тебя там 766 00:43:18,396 --> 00:43:21,399 создается новое значение для каждой итерации цикла. 767 00:43:22,360 --> 00:43:25,960 Для объекта массива нужно сделать аналогично, 768 00:43:26,200 --> 00:43:27,200 только самому в коде. 769 00:43:32,840 --> 00:43:33,840 Так, ну я тоже попробую тогда, 770 00:43:35,680 --> 00:43:38,200 по идее нужно же новый массив создавать. 771 00:43:54,680 --> 00:43:55,680 Так... 772 00:44:06,400 --> 00:44:09,400 Ну, да, собственно. 773 00:44:09,400 --> 00:44:10,400 Правильно. 774 00:44:10,560 --> 00:44:13,400 Мадир, у тебя какие-то есть вопросы ещё по этой задачке? 775 00:44:14,360 --> 00:44:15,360 Нет, поэта нету. 776 00:44:23,000 --> 00:44:24,999 Так, ну чё, следующего? 777 00:44:38,080 --> 00:44:39,080 Так, ну, 778 00:44:39,160 --> 00:44:41,160 пум-пум, пум-пум. 779 00:44:44,160 --> 00:44:45,160 Может, 780 00:44:45,360 --> 00:44:46,360 на реакт сразу? 781 00:44:46,600 --> 00:44:48,600 Да, я вот тоже думаю. 782 00:44:48,600 --> 00:44:49,600 Время уже поджимает, 783 00:44:49,600 --> 00:44:50,600 сразу на реакт перейти уже. 784 00:44:56,040 --> 00:44:57,040 По этой же ссылке или по другой? 785 00:44:58,280 --> 00:44:59,280 По этой же. 786 00:45:00,200 --> 00:45:03,200 Да, смотри, тут я тогда расскажу, 787 00:45:03,360 --> 00:45:04,360 чего надо сделать. 788 00:45:06,160 --> 00:45:12,160 К тебе пришел Джун с просьбой проревьювать его код. 789 00:45:14,360 --> 00:45:16,359 Собственно, он делал компонент, 790 00:45:17,240 --> 00:45:21,000 который будет встраиваться в реальное работающее приложение, 791 00:45:21,520 --> 00:45:22,520 то есть пойдет в просьбу. 792 00:45:23,280 --> 00:45:24,280 вот и ему нужно было 793 00:45:26,120 --> 00:45:28,120 Из-за того, что бэк еще не готов, 794 00:45:28,280 --> 00:45:29,280 замокать самому данные и 795 00:45:30,800 --> 00:45:31,800 отобразить, собственно, 796 00:45:32,240 --> 00:45:33,240 список справочников на странице. 797 00:45:34,520 --> 00:45:36,300 То есть, там вот на 2 четвертой строчке у тебя отображается количество 798 00:45:36,300 --> 00:45:37,300 справочников, 799 00:45:38,960 --> 00:45:39,960 которые 800 00:45:41,000 --> 00:45:42,000 получаются с бэка. 801 00:45:42,720 --> 00:45:45,716 Ну, то есть, сейчас по факту он замокал это. 802 00:45:46,120 --> 00:45:48,120 Вот. Положение скролла. 803 00:45:48,200 --> 00:45:49,200 Выводит, 804 00:45:49,600 --> 00:45:52,840 чтобы в будущем заиспользовать положение скролла в других компонентах 805 00:45:52,840 --> 00:45:53,840 на этой странице. 806 00:45:56,800 --> 00:45:57,800 И список полученных значений. 807 00:45:58,600 --> 00:46:00,320 То есть это по сути список справочников. 808 00:46:00,880 --> 00:46:06,556 Выводится, грубо говоря, название справочника на 30-й строчке. 809 00:46:06,640 --> 00:46:09,440 И какой-то атрибут справочника на 31-й строчке. 810 00:46:10,280 --> 00:46:11,280 Тебе надо посмотреть, 811 00:46:12,760 --> 00:46:13,760 поревьюить его код. 812 00:46:15,920 --> 00:46:21,120 И найти максимальное количество замечаний. 813 00:46:22,120 --> 00:46:26,280 И вообще идеи, что ты можешь предложить, как сделать код лучше. 814 00:46:28,160 --> 00:46:29,160 Исходя из того, 815 00:46:29,400 --> 00:46:33,120 что над этим кодом может работать большое количество фронтов, 816 00:46:34,280 --> 00:46:35,280 и нужно сделать так, 817 00:46:36,760 --> 00:46:37,760 чтобы он всем был понятен, 818 00:46:39,080 --> 00:46:40,080 и его можно было... 819 00:46:45,440 --> 00:46:46,440 Можешь посмотреть, 820 00:46:47,800 --> 00:46:48,800 оставлять комментарии, 821 00:46:49,400 --> 00:46:50,400 ну и, я думаю, 822 00:46:50,720 --> 00:46:53,440 можно долго не затягивать, сразу начать обсуждать. 823 00:46:58,040 --> 00:47:01,040 Так, ну, во-первых, 824 00:47:01,040 --> 00:47:02,040 во-первых... 825 00:47:02,720 --> 00:47:05,400 Здесь нужно массив зависимости добавить, чтобы при каждом рендере не 826 00:47:05,400 --> 00:47:06,400 вызывалась функция. 827 00:47:10,600 --> 00:47:11,600 Далее. 828 00:47:12,120 --> 00:47:13,120 Таким образом нельзя вызывать эффект. 829 00:47:15,800 --> 00:47:16,800 Так, 830 00:47:18,440 --> 00:47:21,200 Так, это бы я вылез в отдельную функцию. 831 00:47:30,160 --> 00:47:31,160 Вот так рандомно мы шли. 832 00:47:32,640 --> 00:47:37,720 А почему нельзя iSync в UseEffect использовать? 833 00:47:40,000 --> 00:47:41,000 Так, ну вроде, 834 00:47:43,280 --> 00:47:45,640 насколько я помню, если именно так сделать ссинк, 835 00:47:46,280 --> 00:47:47,280 тогда там будет ошибка. 836 00:47:48,600 --> 00:47:52,440 Но если обернуть в immediately invoked function expression, 837 00:47:52,680 --> 00:47:53,680 то ошибка не исчезнет. 838 00:47:57,040 --> 00:47:59,880 Ну и плюс юз эффект сам по себе асинхронный. 839 00:48:01,640 --> 00:48:02,640 Сет номер... 840 00:48:08,440 --> 00:48:09,440 Так и здесь был Любезвал Фичнабар. 841 00:48:14,040 --> 00:48:16,040 Так, ну, возможно, 842 00:48:16,040 --> 00:48:17,040 втройка. 843 00:48:17,800 --> 00:48:18,800 Втройка, я чувствую, это обернуть еще. 844 00:48:42,080 --> 00:48:46,440 Так, в Windows 8.3 Stunner у нас передается здесь ссылка, и в ремуфле и 845 00:48:46,440 --> 00:48:47,440 в Intel Stunner ссылка, 846 00:48:50,920 --> 00:48:51,920 но ссылка на эту функцию разная везде, 847 00:48:53,440 --> 00:48:54,440 поэтому отписка не будет происходить. 848 00:48:58,280 --> 00:48:59,280 И чтобы исправить это, 849 00:49:00,600 --> 00:49:01,600 лучше вынести в отдельную функцию. 850 00:49:11,440 --> 00:49:13,560 А если его не выносить, то что будет происходить? 851 00:49:15,200 --> 00:49:17,200 Так, ну тогда у нас... 852 00:49:18,400 --> 00:49:19,400 Ссылка на функцию, 853 00:49:20,200 --> 00:49:23,280 которую мы передаем в EventListener и RemoveEventListener будет передаваться 854 00:49:23,280 --> 00:49:24,280 разной ссылкой 855 00:49:26,360 --> 00:49:27,360 и не будет происходить отписки, 856 00:49:29,120 --> 00:49:31,960 из-за этого может засоряться память в браузере. 857 00:49:33,000 --> 00:49:35,000 Угу, отлично. 858 00:49:40,200 --> 00:49:41,200 А вот этот цикл зачем нужен вообще? 859 00:49:46,000 --> 00:49:47,000 Это он, 860 00:49:47,400 --> 00:49:48,400 по сути, 861 00:49:49,160 --> 00:49:50,160 заполняет мокрыми данными. 862 00:49:51,680 --> 00:49:52,680 Ну то есть вот там, 863 00:49:52,680 --> 00:49:58,560 где атрибут якобы выводится с справочника на сорок седьмой строке, 864 00:49:58,920 --> 00:50:02,760 вот он заполняет эти атрибуты рандомными значениями. 865 00:50:04,880 --> 00:50:06,880 Угу, так. 866 00:50:16,920 --> 00:50:22,200 По идее его можно просто в глобальной области видимости же вынести. 867 00:50:24,280 --> 00:50:25,280 Катя... 868 00:50:27,360 --> 00:50:28,360 Так что.. 869 00:50:28,800 --> 00:50:29,800 Крендамент жарь. 870 00:50:30,320 --> 00:50:31,320 Крендамент жарь. 871 00:50:35,880 --> 00:50:36,880 Так он возвращает промисс... 872 00:50:44,920 --> 00:50:45,920 Музыка 873 00:50:52,040 --> 00:50:55,720 Так, ну хотя пусть асинхронно тогда в юз эффекте выполняется, 874 00:50:55,840 --> 00:50:56,840 чтобы не было блокировки поток, 875 00:50:58,760 --> 00:50:59,760 в всякий случай. 876 00:51:03,680 --> 00:51:07,400 Это вообще нужно рефакторить или это неважная часть кода? 877 00:51:08,440 --> 00:51:11,439 Ну, почему? Тут все важно, 878 00:51:11,439 --> 00:51:12,439 в том числе и структура проекта. 879 00:51:12,439 --> 00:51:13,439 Так что давай все, 880 00:51:14,560 --> 00:51:15,560 что думаешь, говори. 881 00:51:15,560 --> 00:51:16,560 Хе-хе 882 00:51:21,160 --> 00:51:23,159 Так, рандомный момент дежавю. 883 00:51:24,400 --> 00:51:26,800 Эээ, ну по идее она будет один раз при монтировании компонента выполняться, 884 00:51:26,800 --> 00:51:27,800 заполнять данные. 885 00:51:32,520 --> 00:51:33,520 В принципе, 886 00:51:34,000 --> 00:51:35,000 что-то плохого не вижу здесь. 887 00:51:38,600 --> 00:51:39,600 Посмотри повнимательнее на логику. 888 00:51:42,080 --> 00:51:43,080 исходя из чего заполняются эти данные. 889 00:51:45,360 --> 00:51:48,360 Су-у Здесь чего? Так. 890 00:51:54,400 --> 00:51:55,400 А исходя из намбер... 891 00:51:58,120 --> 00:51:59,120 намбер это количество справочников 892 00:52:05,560 --> 00:52:06,560 Так, количество справочников. 893 00:52:07,840 --> 00:52:10,840 А где? Так, testdata. 894 00:52:14,040 --> 00:52:15,040 М-м 895 00:52:16,240 --> 00:52:17,240 set number data 896 00:52:19,120 --> 00:52:21,800 так, ну по идее, если у нас уже есть number, 897 00:52:21,960 --> 00:52:24,960 нам не нужно, не нужно этот массив вообще 898 00:52:28,200 --> 00:52:29,200 Так, здесь мы используем number, 899 00:52:30,000 --> 00:52:31,000 это общее количество. 900 00:52:33,080 --> 00:52:34,080 TestData. 901 00:52:34,480 --> 00:52:35,480 Так, TestData. 902 00:52:36,960 --> 00:52:40,080 TestData – это вот то, что ты в цикле сейчас убрал. 903 00:52:41,040 --> 00:52:42,040 Массив заполняется. 904 00:52:47,800 --> 00:52:48,800 Блин, я не понимаю, 905 00:52:48,800 --> 00:52:49,800 для чего... 906 00:52:50,440 --> 00:52:51,440 Но смотри, 907 00:52:52,760 --> 00:52:57,960 еще раз логика, то есть вот Джун замокал получение количества 908 00:52:57,960 --> 00:52:58,960 справочников с бэка. 909 00:53:01,760 --> 00:53:05,440 То есть он получил number и потом подумал, 910 00:53:05,600 --> 00:53:06,600 что мне надо поэкспериментировать, 911 00:53:08,480 --> 00:53:10,600 подображать различные атрибуты справочника. 912 00:53:11,280 --> 00:53:12,280 И решил, 913 00:53:13,080 --> 00:53:15,840 что раз он получил данные с бэка number, 914 00:53:16,880 --> 00:53:21,320 то он сможет по количеству справочников замокать эти атрибуты. 915 00:53:22,400 --> 00:53:25,240 Вот, и получается вот написал такой цикл. 916 00:53:38,560 --> 00:53:39,560 Ладно, я пока наконец это оставлю, 917 00:53:40,760 --> 00:53:41,760 чтобы сейчас долго не думать. 918 00:53:45,440 --> 00:53:47,436 Так, ну, здесь не хватает ключей ещё. 919 00:53:52,840 --> 00:53:53,840 Так, 920 00:53:53,960 --> 00:53:56,956 ну, в идее, в общем случае, у нас элементы... 921 00:53:59,240 --> 00:54:00,240 Это динамическое значение, 922 00:54:01,360 --> 00:54:03,800 оно при изменении number будет меняться. 923 00:54:05,280 --> 00:54:08,920 Из-за этого его лучше не делать ключом, так ну и здесь раз у нас 924 00:54:08,920 --> 00:54:09,920 список это лучше использовать UL 925 00:54:14,600 --> 00:54:15,600 для элементов ли 926 00:54:31,040 --> 00:54:32,040 Так, 927 00:54:32,160 --> 00:54:34,880 осталось разобраться с циклом, насколько я понимаю. 928 00:54:37,360 --> 00:54:38,360 По стилям все ок? 929 00:54:38,920 --> 00:54:39,920 Простите. 930 00:54:42,920 --> 00:54:43,920 Ну, 931 00:54:44,080 --> 00:54:45,080 в СССР может вынести только. 932 00:54:47,560 --> 00:54:49,560 Угу, окей. 933 00:54:50,520 --> 00:54:51,520 А ты вообще как? 934 00:54:54,240 --> 00:54:55,240 Вот так вот онлайн его пишешь? 935 00:54:57,000 --> 00:54:59,000 М-м-м-м-м-м. Это нет. 936 00:54:59,000 --> 00:55:02,760 Никогда не приходилось даже инлайн писать, только в каких-то, 937 00:55:03,280 --> 00:55:04,280 если стиле зависит, например, 938 00:55:05,120 --> 00:55:06,120 от состояния, 939 00:55:07,160 --> 00:55:11,320 тогда уже инлайн стали могу использовать обычно в css файлах. 940 00:55:13,360 --> 00:55:15,520 Потому что инлайн-стиль – это плохая практика, как и использование 941 00:55:15,520 --> 00:55:16,520 импотент. 942 00:55:19,520 --> 00:55:22,577 What is that push number in the middle there? What is that push number in the 943 00:55:22,577 --> 00:55:23,577 middle there? 944 00:55:32,600 --> 00:55:37,320 а нам нужно чтобы он при каждом изменении numbers так 945 00:55:39,480 --> 00:55:42,640 Номбер у нас вообще изменяется один раз по идее. 946 00:55:49,320 --> 00:55:50,320 Сет номер 947 00:56:02,560 --> 00:56:03,560 Нам, получается, 948 00:56:03,720 --> 00:56:05,960 информация, которая возвращает random number, 949 00:56:06,080 --> 00:56:07,080 по-любому нужна. 950 00:56:08,400 --> 00:56:13,520 Ну да, тебе надо ровно для каждого справочника этот атрибут. 951 00:56:14,760 --> 00:56:15,760 сгенерировать 952 00:56:21,800 --> 00:56:23,800 Так, ну тогда... 953 00:56:26,480 --> 00:56:27,480 Возможно, 954 00:56:28,160 --> 00:56:29,160 лучшим вариантом будет понестива. 955 00:56:32,200 --> 00:56:33,200 Например, 956 00:56:33,280 --> 00:56:34,280 въезд мема. 957 00:56:36,560 --> 00:56:39,160 А вам вообще этот цикл нужен в компоненте? 958 00:56:47,000 --> 00:56:50,020 Тоже можно вынести аберрантивы в функцию и number передавать в качестве 959 00:56:50,020 --> 00:56:51,020 аргумента. 960 00:56:56,960 --> 00:56:59,160 Посмотри еще раз внимательно на тест дата. 961 00:57:00,760 --> 00:57:06,120 как она инициализируется и где она используется. 962 00:57:07,080 --> 00:57:08,080 Используется она только для того, 963 00:57:09,040 --> 00:57:10,040 чтобы отрисовать список. 964 00:57:12,200 --> 00:57:13,200 По идее, 965 00:57:14,120 --> 00:57:15,120 не знаю, 966 00:57:15,760 --> 00:57:19,560 это же не нужно выносить в отдельное состояние, если это какой-то 967 00:57:20,440 --> 00:57:21,440 статичный массив, 968 00:57:22,360 --> 00:57:23,360 который никогда не будет изменяться. 969 00:57:25,640 --> 00:57:26,640 Это имитация запроса к серверу. 970 00:57:28,880 --> 00:57:31,360 А если у тебя массив всё-таки изменяется и у тебя перерендер 971 00:57:31,360 --> 00:57:32,360 компонентов происходит, 972 00:57:34,120 --> 00:57:36,880 тут может потенциально какая-то проблема быть или нет? 973 00:57:38,960 --> 00:57:42,798 Так, если изменяется массив, происходит перерендер компонентов. 974 00:57:44,240 --> 00:57:46,236 Да, и у тебя вот тест датса, 975 00:57:46,236 --> 00:57:47,236 она глобально объявлена. 976 00:57:49,760 --> 00:57:51,760 Понятия. Загадай. 977 00:57:51,880 --> 00:57:56,320 Тогда у нас при изменении тестдата не будет происходить рендер и будут 978 00:57:56,320 --> 00:58:00,760 отображаться при каждом рендере одни и те же значения. 979 00:58:04,160 --> 00:58:06,160 Я не знаю, может ты имеешь ввиду то, 980 00:58:06,280 --> 00:58:07,280 что нужно тест-дата 981 00:58:08,120 --> 00:58:09,120 это имитация ответа от бэкэнда, 982 00:58:11,760 --> 00:58:14,756 если так, тогда это нужно вынести в юз эффект, 983 00:58:15,640 --> 00:58:16,640 создать для этого 984 00:58:16,720 --> 00:58:17,720 состояние. 985 00:58:19,000 --> 00:58:22,160 и уже какой-то делать запрос на бэкэнд, 986 00:58:22,280 --> 00:58:23,280 потом сетить состояние этих данных. 987 00:58:27,800 --> 00:58:29,800 Ну, окей, необязательно на БКН, да, 988 00:58:30,200 --> 00:58:32,200 делать запрос. Ну, 989 00:58:32,200 --> 00:58:34,480 потенциально у тебя может быть логика, если при перерендере компонента у тебя 990 00:58:34,480 --> 00:58:35,480 просто... 991 00:58:36,280 --> 00:58:39,360 Могут лишние значения в эту тест-дату залетать, 992 00:58:40,120 --> 00:58:43,920 и у тебя неправильная логика приложения будет тогда. 993 00:58:46,320 --> 00:58:49,319 Окей. Ну, с тест-даты, да, 994 00:58:49,319 --> 00:58:50,319 либо тогда в стейд запихивать. 995 00:58:53,520 --> 00:58:54,520 либо 996 00:58:55,960 --> 00:58:58,960 цикл тогда в утилиту там в какую-то выносить 997 00:58:59,920 --> 00:59:00,920 ее отдельно вызывать, 998 00:59:01,240 --> 00:59:02,240 но опять же вопрос, 999 00:59:02,640 --> 00:59:05,080 где тогда хранится состояние этой тест-даты. 1000 00:59:08,040 --> 00:59:09,040 Ну окей, ты встой, 1001 00:59:09,760 --> 00:59:12,760 да, вынес? Угу. Хорошо. 1002 00:59:12,760 --> 00:59:16,400 А вот с точки зрения пользователя посмотри, пожалуйста. 1003 00:59:19,000 --> 00:59:23,880 На number и scroll при первом запуске приложения, 1004 00:59:24,000 --> 00:59:25,000 при инициализации. 1005 00:59:26,080 --> 00:59:30,280 А ещё я бы для скролла добавил троттлинг. 1006 00:59:31,400 --> 00:59:36,400 Ага, отлично. Ну, давай не будем добавлять, ты озвучил. 1007 00:59:36,400 --> 00:59:37,400 Чтоб время чуть сэкономить. 1008 00:59:38,640 --> 00:59:39,640 Так, ну еще, возможно, 1009 00:59:39,640 --> 00:59:42,840 вынести в отдельные компоненты листы, лист тайта. 1010 00:59:46,200 --> 00:59:49,720 лично, а вот с точки зрения пользовательского опыта. 1011 00:59:51,480 --> 00:59:52,480 Номбер и скролл. Посмотри, 1012 00:59:53,280 --> 00:59:54,280 как инициализируется, 1013 00:59:54,760 --> 00:59:55,760 как используется. 1014 00:59:56,160 --> 00:59:59,155 Вот. Могут ли быть какие-то проблемы с этим, 1015 00:59:59,360 --> 01:00:00,360 с точки зрения пользователя или нет. 1016 01:00:09,000 --> 01:00:11,520 как инициализировать со значением number. 1017 01:00:14,680 --> 01:00:15,680 Фич рендом намбер 1018 01:00:18,240 --> 01:00:19,240 как при изменении набора. 1019 01:00:24,800 --> 01:00:27,880 Эээ, так, ну, будет мерцание состояния, возможно. 1020 01:00:28,800 --> 01:00:30,800 а Ту-ту 1021 01:00:31,000 --> 01:00:32,000 В каком случае нам номера? 1022 01:00:34,960 --> 01:00:35,960 Да, 1023 01:00:35,960 --> 01:00:38,560 в случае набора у нас сначала будет по-любому 0 отображаться, а потом уже 1024 01:00:38,560 --> 01:00:39,560 после того, 1025 01:00:41,040 --> 01:00:42,040 как данные с бкнда придут, 1026 01:00:43,560 --> 01:00:44,560 циферки. 1027 01:00:45,520 --> 01:00:47,519 Угу. Супер. А соскроем? 1028 01:00:47,519 --> 01:00:49,519 Угу. Супер. А соскроем? 1029 01:00:49,519 --> 01:00:50,519 так скроу 1030 01:00:52,400 --> 01:00:55,399 Так, ну, Windows Scroll Y. 1031 01:00:56,040 --> 01:00:59,040 По идее, мы можем сразу при инициализации брать его. 1032 01:01:01,360 --> 01:01:02,360 А вот если бы мы ноль брали, 1033 01:01:05,080 --> 01:01:06,080 как до этого было, 1034 01:01:06,080 --> 01:01:07,080 то какое бы поведение было в браутере? 1035 01:01:09,920 --> 01:01:15,625 Так, ну, по идее, это уже у нас бы сначала было вверху в страницу, а 1036 01:01:15,625 --> 01:01:16,625 потом актуально. 1037 01:01:17,200 --> 01:01:20,200 Ну, да, то есть прыгала бы страница, 1038 01:01:20,200 --> 01:01:22,199 по крайней мере, при рефреше каком-нибудь. 1039 01:01:24,040 --> 01:01:25,040 Окей, окей. 1040 01:01:25,680 --> 01:01:27,320 Так, а можешь что-то наверх проскролить, 1041 01:01:27,720 --> 01:01:28,720 что там у нас было? 1042 01:01:29,480 --> 01:01:30,480 Обрати, пожалуйста, 1043 01:01:30,480 --> 01:01:31,480 на количество элементов. 1044 01:01:32,320 --> 01:01:33,320 Что-то можно еще предусмотреть. 1045 01:01:36,440 --> 01:01:37,440 Количество элементов... 1046 01:01:38,680 --> 01:01:39,680 Так это где? 1047 01:01:41,720 --> 01:01:44,200 Ну вот где количество справочников у нас, 1048 01:01:45,160 --> 01:01:48,740 какое там количество элементов может быть и что потенциально там можно 1049 01:01:48,740 --> 01:01:49,740 улучшить. 1050 01:02:01,680 --> 01:02:02,680 Заходи. 1051 01:02:12,520 --> 01:02:14,520 Нет, ты проговори просто это. 1052 01:02:15,880 --> 01:02:16,880 Сколько элементов? 1053 01:02:17,560 --> 01:02:18,560 Сколько элементов? 1054 01:02:20,240 --> 01:02:21,240 Это максимальное количество. 1055 01:02:25,520 --> 01:02:26,520 Так ты имеешь ввиду, 1056 01:02:27,480 --> 01:02:28,480 сейчас посмотрю, 1057 01:02:30,880 --> 01:02:33,480 ты имеешь ввиду то, что максимально 20 элементов может быть. 1058 01:02:34,920 --> 01:02:36,920 Нет, у нас рэндом намбер вызывается. 1059 01:02:39,200 --> 01:02:40,200 Используй эффективную функцию. 1060 01:02:41,440 --> 01:02:42,440 Набирай номер. 1061 01:02:43,400 --> 01:02:44,400 Угу. 1062 01:02:44,520 --> 01:02:45,520 Функция RandomNumber. 1063 01:02:45,760 --> 01:02:46,760 Давай там посмотрим, 1064 01:02:46,760 --> 01:02:47,760 что у нас происходит. 1065 01:02:48,120 --> 01:02:49,120 Промис Резолв Фрэндом Эджер 9000, 1066 01:02:51,440 --> 01:02:52,440 12000 1067 01:02:54,480 --> 01:02:55,480 Ммм, так. 1068 01:02:56,800 --> 01:02:59,799 Ты, блин, может, имеешь ввиду, 1069 01:02:59,800 --> 01:03:00,800 как оптимизировать список, 1070 01:03:01,200 --> 01:03:02,200 добавить, например, 1071 01:03:02,560 --> 01:03:03,560 погенацию, 1072 01:03:03,680 --> 01:03:04,680 либо виртуализацию? 1073 01:03:06,480 --> 01:03:08,479 Да, просто тут смотри, 1074 01:03:08,479 --> 01:03:10,478 опять же, такой тестовый вариант, 1075 01:03:10,478 --> 01:03:12,238 а если представить, что у нас, допустим, 1076 01:03:12,640 --> 01:03:13,640 список справочников, 1077 01:03:13,720 --> 01:03:14,720 это какая-то таблица сложная, 1078 01:03:15,880 --> 01:03:16,880 каждый элемент в таблице, 1079 01:03:18,160 --> 01:03:19,840 какой-то сложный реактивский компонент, 1080 01:03:19,920 --> 01:03:20,920 то потенциально, да, 1081 01:03:21,160 --> 01:03:22,160 на таком количестве элементов 1082 01:03:23,080 --> 01:03:24,080 могут быть проблемы. 1083 01:03:26,800 --> 01:03:27,800 Так, погибаться, 1084 01:03:27,880 --> 01:03:28,880 еще что можно... 1085 01:03:29,880 --> 01:03:30,880 Виртуализация. 1086 01:03:33,400 --> 01:03:34,400 Окей, 1087 01:03:36,040 --> 01:03:38,840 надеюсь у тебя какие-то вопросы еще будут по задачке. 1088 01:03:41,680 --> 01:03:42,680 Да нет, всего мог, 1089 01:03:42,920 --> 01:03:43,920 понятно. 1090 01:03:45,200 --> 01:03:46,200 Если по задачке, то нет вопросов. 1091 01:03:49,400 --> 01:03:50,400 Хотя нет, один есть. 1092 01:03:50,520 --> 01:03:53,880 Все-таки мы тут у нас МОК данные обсуждаем, 1093 01:03:54,000 --> 01:03:56,000 то у тебя в опыте. 1094 01:03:56,320 --> 01:03:58,320 Поехали. Опыт работы с МОК-даннами есть, 1095 01:03:59,200 --> 01:04:03,520 или с какими-то библиотеками, которые позволяют МОКать запросы к бэкэнду? 1096 01:04:04,560 --> 01:04:05,560 М-м-м, да. 1097 01:04:07,680 --> 01:04:08,680 Насколько я помню, 1098 01:04:10,360 --> 01:04:14,160 используем сейчас на проекте Axios Mock Adapter, 1099 01:04:15,840 --> 01:04:20,440 и вроде еще для этого подходит MSV Bibliotheque. 1100 01:04:24,800 --> 01:04:25,800 Главное, опыт есть. 1101 01:04:25,960 --> 01:04:26,960 Работал уже хорошо. 1102 01:04:29,880 --> 01:04:32,100 для чего вы используете на проекте в основном для тестирования мокровой 1103 01:04:32,100 --> 01:04:33,100 данной. 1104 01:04:35,600 --> 01:04:39,240 Ну, когда для тестирования, иногда бывает, приходится 1105 01:04:39,240 --> 01:04:42,560 сделать некий прототип пользовательского интерфейса для 1106 01:04:42,560 --> 01:04:43,560 демонстрации бизнес-заказчикам. 1107 01:04:47,080 --> 01:04:49,760 можно сделать данные как раз мог данные подготовить на них сделать 1108 01:04:49,760 --> 01:04:50,760 интерфейс показать как это работает 1109 01:04:53,080 --> 01:04:55,920 И уже после того, как UI будет утвержден, 1110 01:04:56,440 --> 01:04:57,440 можно будет передать в работу ноутбук. 1111 01:05:00,480 --> 01:05:03,480 Так, как правило, быстрее получается, 1112 01:05:03,480 --> 01:05:09,360 потому что если полный цикл запускать, то это может быть очень долго. 1113 01:05:09,960 --> 01:05:10,960 Понятно. 1114 01:05:17,440 --> 01:05:18,440 Антон, 1115 01:05:18,600 --> 01:05:19,600 если у тебя нет, 1116 01:05:20,040 --> 01:05:23,520 то у меня еще на финал несколько вопросов осталось, 1117 01:05:24,240 --> 01:05:25,240 будем расходиться. 1118 01:05:27,080 --> 01:05:30,079 Так, я знаю, что хотел спросить, 1119 01:05:30,160 --> 01:05:31,160 есть какие-то красные линии, 1120 01:05:32,240 --> 01:05:34,240 которые, ну, 1121 01:05:34,400 --> 01:05:36,160 которые для тебя недопустимы на работе? 1122 01:05:37,320 --> 01:05:39,840 из-за которого ты в принципе не готов будешь дальше работать. 1123 01:05:41,720 --> 01:05:42,720 М-м-м, так... 1124 01:05:45,120 --> 01:05:46,120 Это, наверное, 1125 01:05:48,200 --> 01:05:50,200 из того, что в голову приходит, например, 1126 01:05:50,600 --> 01:05:52,880 использование какого-то фреймворка другого. 1127 01:05:57,440 --> 01:05:58,440 Еще какие-то. 1128 01:06:00,600 --> 01:06:01,600 Сейчас подумаю немного тогда. 1129 01:06:13,720 --> 01:06:14,720 Может, постоянные переработки, 1130 01:06:15,640 --> 01:06:16,640 например. 1131 01:06:21,200 --> 01:06:22,200 У вас не то. 1132 01:06:25,040 --> 01:06:26,040 Ну, 1133 01:06:26,480 --> 01:06:27,480 постоянно их нету, 1134 01:06:28,000 --> 01:06:29,000 иногда бывает, 1135 01:06:29,560 --> 01:06:30,560 но опять же, это компенсируется, 1136 01:06:31,160 --> 01:06:34,398 там, какое-то долгое время можно будет отгулять. 1137 01:06:34,840 --> 01:06:37,839 Ах, отдохнуть, допустим, если накопится. 1138 01:06:38,320 --> 01:06:41,319 Ну, либо да, либо двойным окладом. 1139 01:06:42,280 --> 01:06:44,280 Ну, это если выходной, да? 1140 01:06:44,280 --> 01:06:45,280 Ну, это если выходной, да? 1141 01:06:45,280 --> 01:06:47,280 Да, да, если выходной, но тут, 1142 01:06:47,280 --> 01:06:48,280 как правило... 1143 01:06:50,080 --> 01:06:53,380 только по желанию если как бы желания нет то и как бы бизнесу мы говорим что 1144 01:06:53,380 --> 01:06:54,380 сорян ребят 1145 01:06:57,880 --> 01:06:58,880 где вы были раньше. 1146 01:07:03,520 --> 01:07:04,520 Вообще задач на проекте много. 1147 01:07:07,800 --> 01:07:10,800 А, да, кстати, Антон, расскажи, 1148 01:07:10,800 --> 01:07:15,355 пожалуйста, потому что я немного с этим затруднился в начале 1149 01:07:15,355 --> 01:07:17,355 собеседования, так сказать. 1150 01:07:17,355 --> 01:07:20,355 Да, смотри, мы, получается, 1151 01:07:20,355 --> 01:07:21,355 рассматриваем тебя в команду биллинга. 1152 01:07:22,240 --> 01:07:26,120 Вот, там фич-команда, она занимается, во-первых, 1153 01:07:26,880 --> 01:07:27,880 биллингом нашей платформы. 1154 01:07:30,760 --> 01:07:31,760 То есть там сейчас есть... 1155 01:07:35,040 --> 01:07:36,040 два дашборда 1156 01:07:36,560 --> 01:07:41,160 Один дашборд руководителя, другой дашборд для заказчиков, 1157 01:07:41,320 --> 01:07:42,320 там в околуме цифры, 1158 01:07:42,640 --> 01:07:44,320 вот. На этих дашбордах, соответственно, 1159 01:07:45,280 --> 01:07:46,280 графики на Canvas, 1160 01:07:47,080 --> 01:07:48,080 таблицы, различные срезы и так далее. 1161 01:07:50,000 --> 01:07:52,160 Вот, плюс есть различная детализация по 1162 01:07:52,400 --> 01:07:53,400 различным срезам. 1163 01:07:54,960 --> 01:08:00,840 с точностью до конкретного вычислительного ресурса и дня. 1164 01:08:03,480 --> 01:08:08,760 Плюс в этой команде есть еще два проекта, которые они ведут. 1165 01:08:08,880 --> 01:08:09,880 Это мониторинг и журналирование. 1166 01:08:11,240 --> 01:08:12,240 Мониторинг – это, 1167 01:08:12,400 --> 01:08:13,400 как правило, различные админки, 1168 01:08:14,760 --> 01:08:18,080 которые встраивают админки плюс плагины, 1169 01:08:18,760 --> 01:08:22,000 которые встраиваются в наш единый портал. 1170 01:08:22,120 --> 01:08:24,240 То есть у нас есть единый портал самообслуживания. 1171 01:08:25,000 --> 01:08:27,700 Он на микрофронтах. Туда встраиваются вот эти админки журналирования и 1172 01:08:27,700 --> 01:08:28,700 мониторинга, 1173 01:08:30,840 --> 01:08:31,840 плюс графаны и плагины графаний, 1174 01:08:34,000 --> 01:08:37,720 и также OpenSearch Dashboard для журналирования. 1175 01:08:37,840 --> 01:08:39,840 Соответственно, тоже система. 1176 01:08:40,440 --> 01:08:41,440 Задач более чем достаточно много. 1177 01:08:45,520 --> 01:08:46,520 Понятно. 1178 01:08:50,560 --> 01:08:54,797 Так, ну у меня в целом вопросов нет, я в начале собеседования задавал уже. 1179 01:08:56,800 --> 01:08:59,040 Я еще хотел уточнить график работы для тебя. 1180 01:08:59,320 --> 01:09:00,320 Какой приемлем? 1181 01:09:00,360 --> 01:09:01,360 Не график, а режим работы. 1182 01:09:04,000 --> 01:09:05,000 Режим работы, 1183 01:09:05,240 --> 01:09:06,240 ты имеешь ввиду часы? 1184 01:09:07,040 --> 01:09:11,040 Нет. Ну, часы, удалёнка, 1185 01:09:11,040 --> 01:09:13,040 гибрид. Так, 1186 01:09:13,320 --> 01:09:15,320 ну в приоритете, конечно, 1187 01:09:15,320 --> 01:09:17,320 удалёнка, но и гибрид рассмотрю. 1188 01:09:19,160 --> 01:09:20,160 Это же у Москвы находится, да? 1189 01:09:24,200 --> 01:09:25,200 Удаленки, да, полной у нас нет. 1190 01:09:26,200 --> 01:09:27,200 У нас гибрид. 1191 01:09:28,920 --> 01:09:33,760 Мы стараемся хотя бы среди фронтов выбирать 1192 01:09:34,480 --> 01:09:35,480 общие дни, когда ходить в офис. 1193 01:09:36,280 --> 01:09:39,720 Ну и плюс там фича команды стараются тоже общие дни выбирать, 1194 01:09:40,000 --> 01:09:41,000 чтобы вместе в офисе быть. 1195 01:09:42,560 --> 01:09:43,560 В целом у нас там где-то 3-2. 1196 01:09:46,280 --> 01:09:48,280 Угу, понял. 1197 01:09:49,960 --> 01:09:52,600 И еще поскажи пожалуйста по своим зарплатным ожиданиям. 1198 01:09:54,160 --> 01:09:57,159 Так, ну, сейчас рассмотрю, вот, 1199 01:09:57,159 --> 01:09:58,159 трехсот тысяч. 1200 01:10:00,280 --> 01:10:02,280 Хорошо, спасибо. 1201 01:10:04,240 --> 01:10:06,240 У меня все, если... 1202 01:10:08,160 --> 01:10:09,160 Если будут какие-то вопросы, 1203 01:10:09,680 --> 01:10:10,680 то можешь написать Эйчарам, 1204 01:10:11,320 --> 01:10:12,320 они тебе, 1205 01:10:12,520 --> 01:10:15,918 ну, они передадут их нам, мы, соответственно, их ответим. 1206 01:10:16,200 --> 01:10:17,200 Эйчара с тобой свяжутся, 1207 01:10:17,520 --> 01:10:19,440 ответят. По обратной связи, скорее всего, 1208 01:10:19,600 --> 01:10:20,600 уже после выходных. 1209 01:10:21,440 --> 01:10:22,440 Хорошо, 1210 01:10:22,920 --> 01:10:23,920 тогда всем пока, 1211 01:10:24,320 --> 01:10:25,320 приятно было пообщаться. 1212 01:10:26,120 --> 01:10:28,120 Да, взаимно. Спасибо. 1213 01:10:28,120 --> 01:10:29,120 Хорошего отдыха.
Editor is loading...
Leave a Comment