Untitled

 avatar
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