WEBVTT

1
00:05:26.920 --> 00:05:31.210
Михаил Непряхин: Так всем. Привет как видно слышно поставьте пожалуйста, плески

2
00:05:36.340 --> 00:05:37.700
Михаил Непряхин: так Окей

3
00:05:40.600 --> 00:05:45.790
Михаил Непряхин: так м сегодня мы говорим про интерфейсы

4
00:05:46.780 --> 00:05:49.210
Михаил Непряхин: вообще давайте. Давайте

5
00:05:50.420 --> 00:05:53.930
Михаил Непряхин: подытожим немножко вообще Что Мы Прошли. И Что еще

6
00:05:54.350 --> 00:05:56.210
Михаил Непряхин: побази Голову. Нам надо

7
00:05:59.080 --> 00:06:03.600
Михаил Непряхин: значит если так вот говорить Что является, базой

8
00:06:04.560 --> 00:06:06.310
Михаил Непряхин: Что знать вест хэм.

9
00:06:07.570 --> 00:06:10.740
Михаил Непряхин: Так начну во-первых значит это свайсы

10
00:06:10.990 --> 00:06:12.280
Михаил Непряхин: большая. Тема

11
00:06:12.750 --> 00:06:17.780
Михаил Непряхин: Свалась. И гонка данных это Ну нужные Для Собеседников Для жизни

12
00:06:19.330 --> 00:06:20.890
Михаил Непряхин: картинка Тормозит

13
00:06:24.600 --> 00:06:27.530
Михаил Непряхин: Выпленов Рпнов никаких Нету

14
00:06:28.600 --> 00:06:30.590
Михаил Непряхин: ввп не должно Быть никаких

15
00:06:39.370 --> 00:06:44.560
Михаил Непряхин: так а По картинке Подскажите кто нибудь Еще

16
00:06:45.930 --> 00:06:48.710
Михаил Непряхин: как Коно тормозить не тормозит

17
00:06:48.980 --> 00:06:50.170
Михаил Непряхин: Картинка

18
00:06:52.260 --> 00:06:53.180
Михаил Непряхин: лен

19
00:06:53.720 --> 00:06:55.130
Михаил Непряхин: закажи Странно

20
00:06:56.440 --> 00:06:57.780
Михаил Непряхин: тормозить сильно

21
00:07:01.970 --> 00:07:03.060
Михаил Непряхин: вообще

22
00:07:04.050 --> 00:07:06.660
Михаил Непряхин: лдпр точно никакой не подключен

23
00:07:11.590 --> 00:07:15.360
Михаил Непряхин: это очень Странно У Меня от Прямого соединения что Меня Любит

24
00:07:16.360 --> 00:07:17.560
Михаил Непряхин: звукок

25
00:07:18.350 --> 00:07:19.280
Михаил Непряхин: ну

26
00:07:19.930 --> 00:07:21.480
Михаил Непряхин: донован Давайте

27
00:07:24.290 --> 00:07:25.020
Михаил Непряхин: Да

28
00:07:25.640 --> 00:07:28.150
Михаил Непряхин: видимо Это зум Уже Тормозит

29
00:07:30.110 --> 00:07:32.190
Михаил Непряхин: ладно если Будет прямо, невозможно

30
00:07:33.120 --> 00:07:34.990
Михаил Непряхин: То Пишите

31
00:07:36.250 --> 00:07:39.630
Михаил Непряхин: Так короче Да свайсы

32
00:07:40.780 --> 00:07:42.530
Михаил Непряхин: немножко. Мапы

33
00:07:45.060 --> 00:07:57.410
Михаил Непряхин: Ну мапы в общем-то оно не так критично как свайсы ну просто важно понимать что мама, Она конкурентна в нее нельзя писать и если что нужно защищать медлик

34
00:07:58.920 --> 00:08:01.860
Михаил Непряхин: далее ну рантайм

35
00:08:04.280 --> 00:08:10.810
Михаил Непряхин: ну воронтами как бы две Темы поронтайм Это во-первых Это планировщик

36
00:08:12.740 --> 00:08:16.200
Михаил Непряхин: а вот про Которого. Мы тоже, разговаривали на прошлом занятии

37
00:08:16.310 --> 00:08:18.630
Михаил Непряхин: и немножко.

38
00:08:19.000 --> 00:08:23.260
Михаил Непряхин: Аа гормочка лектор ну совсем немножко. Просто надо понять что он есть

39
00:08:23.890 --> 00:08:29.440
Михаил Непряхин: вот Это то что касательно ронтаймы что происходит в фонтаме Это как бы Две основные Вещи

40
00:08:30.750 --> 00:08:32.650
Михаил Непряхин: вот дальше

41
00:08:32.840 --> 00:08:33.590
Михаил Непряхин: а

42
00:08:36.419 --> 00:08:38.830
Михаил Непряхин: так свайсы.

43
00:08:39.090 --> 00:08:43.210
Михаил Непряхин: Свайся планировщик ну вот сегодня иначе надо интерфейсе посмотреть

44
00:08:44.130 --> 00:08:56.940
Михаил Непряхин: и щупали про п про полиморфизм в общем-то это та основа многих, патронов, и вообще ввп и останется еще у нас

45
00:08:58.030 --> 00:09:07.660
Михаил Непряхин: по теории еще одна тема большая это про гурутины Каналы, вот все вместе Каналы, вэйт группы

46
00:09:11.700 --> 00:09:14.690
Михаил Непряхин: и конструкция селект

47
00:09:15.190 --> 00:09:16.200
Михаил Непряхин: вот мы

48
00:09:16.800 --> 00:09:23.770
Михаил Непряхин: вот эта в Принципе база она не такая большая вот но если вы типа понимаете то уже хорошо

49
00:09:24.810 --> 00:09:25.690
Михаил Непряхин: ру

50
00:09:25.970 --> 00:09:31.970
Михаил Непряхин: ну два Компонента осны вернтайма Это вот ш планировщик и короче коллекторов

51
00:09:32.160 --> 00:09:35.150
Михаил Непряхин: по большому счету Можно считать что там больше ничего нет

52
00:09:37.070 --> 00:09:42.760
Михаил Непряхин: ну в целом как бы очень большая часть планирования да то есть мы имеем абстракцию

53
00:09:43.080 --> 00:09:56.570
Михаил Непряхин: такую же по сложности даже сложнее чем в операционной системе Поэтому по Сути как бы у нас гоу работает в еще одной операционной системе

54
00:09:57.540 --> 00:10:00.040
Михаил Непряхин: очень. Крупный шарлик на улице двадцать пять

55
00:10:00.780 --> 00:10:02.010
Михаил Непряхин: а ну

56
00:10:03.370 --> 00:10:06.560
Михаил Непряхин: чуть-чуть все сломалось что ли чего вообще происходит

57
00:10:07.200 --> 00:10:10.120
Михаил Непряхин: как будто, бы там оно

58
00:10:10.750 --> 00:10:13.260
Михаил Непряхин: как будто, бы здесь ничего не трогалось на самом деле

59
00:10:25.540 --> 00:10:26.380
Михаил Непряхин: Ммм

60
00:10:27.040 --> 00:10:29.950
Михаил Непряхин: Будто все нормально вообще ничего не менялось

61
00:10:30.270 --> 00:10:31.430
Михаил Непряхин: Странно конечно

62
00:10:32.830 --> 00:10:33.790
Михаил Непряхин: каким,

63
00:10:35.290 --> 00:10:36.140
Михаил Непряхин: так

64
00:10:36.280 --> 00:10:39.570
Михаил Непряхин: значит про про интрофейса

65
00:10:42.980 --> 00:10:46.700
Михаил Непряхин: так вот нормально то есть вы Еще по идее Кот должен быть точно Так же

66
00:10:47.780 --> 00:10:52.370
Михаил Непряхин: но михаил Возможно мне ходило это

67
00:10:53.970 --> 00:10:55.630
Михаил Непряхин: поток звая, впредь

68
00:10:56.450 --> 00:10:57.440
Михаил Непряхин: noise

69
00:10:58.850 --> 00:11:02.250
Михаил Непряхин: видимо мид тоже начали блокировать судя по всему

70
00:11:02.370 --> 00:11:05.800
Михаил Непряхин: и похоже ко мне придется перешать чего Другое место,

71
00:11:11.100 --> 00:11:12.130
Михаил Непряхин: ну и

72
00:11:18.610 --> 00:11:19.450
Михаил Непряхин: Даш

73
00:11:20.210 --> 00:11:20.900
Михаил Непряхин: Ммм

74
00:11:23.240 --> 00:11:24.330
Михаил Непряхин: так в общем

75
00:11:25.360 --> 00:11:27.480
Михаил Непряхин: интерфейсы

76
00:11:28.350 --> 00:11:35.820
Михаил Непряхин: а что это такое Ну во-первых зачем да то есть как их использовать значит есть ли в вашем языке были не трофейсы

77
00:11:48.380 --> 00:11:50.600
Михаил Непряхин: Ну вот так вот камеру выключал.

78
00:11:51.360 --> 00:11:53.180
Михаил Непряхин: Легче стало или нет

79
00:11:54.400 --> 00:11:56.300
Михаил Непряхин: тормозит или не тормозится

80
00:12:01.510 --> 00:12:03.570
Михаил Непряхин: ну шоу как без камеры

81
00:12:04.310 --> 00:12:07.660
Михаил Непряхин: тормозить на корреспондентом уже записаться вмешиваться

82
00:12:10.190 --> 00:12:11.360
Михаил Непряхин: теперь, они понятны

83
00:12:19.190 --> 00:12:23.690
Михаил Непряхин: ну Стриминг, Не в четыре Ка Он типа в два с половиной Ка

84
00:12:24.110 --> 00:12:27.460
Михаил Непряхин: Раньше, Картинка убывала все окна зума а Сейчас Нет

85
00:12:28.470 --> 00:12:32.830
Михаил Непряхин: ну это Очень Странно Но Возможно он как-то обновился

86
00:12:39.100 --> 00:12:55.440
Михаил Непряхин: Так ну смотреть Есть вариант Сейчас Давайте Я Попробую мид. Вдруг сми Там будут лучше То есть я сомневаюсь Что дело у меня Конечно очень Хороший интернет я думаю Что дело

87
00:12:55.790 --> 00:12:56.920
Михаил Непряхин: взуми

88
00:12:57.220 --> 00:13:00.020
Михаил Непряхин: Скорее всего начали. Блокировать

89
00:13:00.520 --> 00:13:03.210
Михаил Непряхин: Сейчас я сделаю другую

90
00:13:11.570 --> 00:13:13.980
Михаил Непряхин: попробуйте попробуйте Мид

91
00:13:29.860 --> 00:13:31.960
Михаил Непряхин: Так как Же как Же это

92
00:13:33.570 --> 00:13:34.530
Михаил Непряхин: Так Вот

93
00:14:03.630 --> 00:14:06.050
Михаил Непряхин: Так Ну Что как митя.

94
00:14:09.810 --> 00:14:11.960
Михаил Непряхин: Ту кто хочет можете Мне оставаться когда

95
00:14:12.580 --> 00:14:13.860
Михаил Непряхин: не проблема

96
00:14:58.040 --> 00:15:01.040
Михаил Непряхин: так ну что Давайте здесь проверим

97
00:15:01.160 --> 00:15:05.650
Михаил Непряхин: так раз-два-три как тут тут впс два кадра Не два кадра

98
00:15:07.210 --> 00:15:08.380
Михаил Непряхин: Секунду

99
00:15:13.420 --> 00:15:14.490
Михаил Непряхин: так

100
00:15:19.900 --> 00:15:22.000
Михаил Непряхин: мне застыдины в пресс

101
00:15:22.270 --> 00:15:27.810
Михаил Непряхин: может быть Лучше картинка достаточно хуже чем взаимодействие на Экран

102
00:15:29.680 --> 00:15:30.410
Михаил Непряхин: Ну и

103
00:15:33.450 --> 00:15:35.500
Михаил Непряхин: что же что же она сломалась

104
00:15:39.180 --> 00:15:42.290
Михаил Непряхин: слушайте Ну если Так же как безумие

105
00:15:44.890 --> 00:15:46.550
Михаил Непряхин: видимо эточит У Меня

106
00:15:53.840 --> 00:15:55.510
Михаил Непряхин: потому что как Будто Бы

107
00:15:56.740 --> 00:15:58.510
Михаил Непряхин: нормальная статья была

108
00:16:00.390 --> 00:16:02.160
Михаил Непряхин: Так чуть ли Не тот остался

109
00:16:08.590 --> 00:16:16.290
Михаил Непряхин: Так ладно короче Давайте Попробуем что-нибудь Подсказывать вы там сами шуберте где лучше.

110
00:16:22.620 --> 00:16:23.440
Михаил Непряхин: У и

111
00:16:33.850 --> 00:16:34.610
Михаил Непряхин: это и

112
00:16:36.860 --> 00:16:40.540
Михаил Непряхин: Изуми ка Будто, на рустанова Сейчас для Меня лучше. Того чем было

113
00:16:40.800 --> 00:16:41.930
Михаил Непряхин: в начале

114
00:16:42.460 --> 00:16:43.580
Михаил Непряхин: Странно

115
00:16:46.240 --> 00:16:50.730
Михаил Непряхин: да У людей-то немного У Меня Там Конференция. До Ста Человек как-то Проплачено

116
00:16:52.690 --> 00:16:54.920
Михаил Непряхин: ну? Явно чего То Вдем проблема. С сити

117
00:16:57.900 --> 00:17:01.570
Михаил Непряхин: Так ладно Давайте Пытаться Пытаться Рассказывать нам

118
00:17:01.760 --> 00:17:02.650
Михаил Непряхин: короче

119
00:17:03.180 --> 00:17:09.150
Михаил Непряхин: А Что Мы Хотим? Какой функционал от интерфейсов Мы Хотим? Значит Вот Есть функция

120
00:17:09.940 --> 00:17:11.190
Михаил Непряхин: У нее

121
00:17:11.500 --> 00:17:12.750
Михаил Непряхин: сигнатуре

122
00:17:13.579 --> 00:17:16.300
Михаил Непряхин: мы тут принимаем тот месседж

123
00:17:17.190 --> 00:17:18.300
Михаил Непряхин: и

124
00:17:18.500 --> 00:17:19.790
Михаил Непряхин: принимаем

125
00:17:20.030 --> 00:17:21.200
Михаил Непряхин: интерфейс

126
00:17:22.760 --> 00:17:23.930
Михаил Непряхин: а зачем так

127
00:17:25.089 --> 00:17:26.859
Михаил Непряхин: Эээ потому что

128
00:17:27.200 --> 00:17:30.240
Михаил Непряхин: значит вы зачем нужен. Энтрофей знаете как он описывается

129
00:17:31.010 --> 00:17:34.600
Михаил Непряхин: а Тайп название интерфейса и ключевое слово интерфейс

130
00:17:35.290 --> 00:17:36.950
Михаил Непряхин: и далее

131
00:17:37.660 --> 00:17:39.740
Михаил Непряхин: смотрите у нас есть

132
00:17:41.740 --> 00:17:42.770
Михаил Непряхин: метод

133
00:17:43.030 --> 00:17:46.640
Михаил Непряхин: то есть в Интерфейсе просто описываются методы поведения

134
00:17:46.940 --> 00:17:51.010
Михаил Непряхин: по сути интерфейс Это универсальный. Тип

135
00:17:51.190 --> 00:17:53.470
Михаил Непряхин: То есть он полиморфный

136
00:17:53.620 --> 00:17:58.870
Михаил Непряхин: он Реализует полиморфизм гоу и он не

137
00:17:59.430 --> 00:18:05.000
Михаил Непряхин: эээ как бы Это не строгий не строгая структура А это Описание.

138
00:18:05.630 --> 00:18:11.070
Михаил Непряхин: Каким поведением Должна обладать структура которую Мы хотим? Передать

139
00:18:11.780 --> 00:18:16.640
Михаил Непряхин: А когда Мы говорим что Вот например Мы хотим? Работать с какой-то жесткой структурой

140
00:18:18.050 --> 00:18:20.730
Михаил Непряхин: а вот у меня она здесь истина Сейчас найдем

141
00:18:21.750 --> 00:18:23.290
Михаил Непряхин: вот у меня есть

142
00:18:23.580 --> 00:18:26.040
Михаил Непряхин: врайтер какой то есть райтер

143
00:18:26.720 --> 00:18:29.290
Михаил Непряхин: и у него есть метод

144
00:18:29.990 --> 00:18:31.480
Михаил Непряхин: брайт

145
00:18:32.090 --> 00:18:35.250
Михаил Непряхин: в общем-то сигнатура. Совпадает с энтрофейсом

146
00:18:35.620 --> 00:18:45.050
Михаил Непряхин: и это значит Что Мы можем Эту структуру использовать в функциях которые принимают интерфейс от соответствующей диссертации

147
00:18:46.420 --> 00:18:51.920
Михаил Непряхин: мы конечно же можем и строго сказать что наша функция принимает только

148
00:18:52.560 --> 00:18:53.820
Михаил Непряхин: стд

149
00:18:55.280 --> 00:18:57.710
Михаил Непряхин: стэй аут райдер

150
00:18:58.030 --> 00:19:00.830
Михаил Непряхин: вот на только райтер принимает жестко и все

151
00:19:00.980 --> 00:19:08.780
Михаил Непряхин: и как бы тоже все ок Мы можем вызвать у этого Врайтера который Мы принимаем метод врачей

152
00:19:09.070 --> 00:19:11.890
Михаил Непряхин: ну собственно вот он Мы его можем Вызвать

153
00:19:13.070 --> 00:19:14.230
Михаил Непряхин: и Но

154
00:19:14.410 --> 00:19:23.310
Михаил Непряхин: потом появляется надобность когда мы хотим в каких-то Ситуациях вот в стд-аут Писать

155
00:19:23.680 --> 00:19:26.070
Михаил Непряхин: а в каких-то Ситуациях файл, Писать

156
00:19:26.220 --> 00:19:27.550
Михаил Непряхин: запустись у нас шоу

157
00:19:28.940 --> 00:19:29.800
Михаил Непряхин: файл,

158
00:19:29.950 --> 00:19:30.900
Михаил Непряхин: норайтер

159
00:19:31.470 --> 00:19:32.630
Михаил Непряхин: и

160
00:19:32.750 --> 00:19:43.250
Михаил Непряхин: получается что, вот мы Хотим, не Хотим, еще Раз, писать тот же самый код то есть здесь у нас много кода мы что нам придется две функции писать да

161
00:19:44.050 --> 00:19:47.110
Михаил Непряхин: Одна, функция у нас может принимать стд-аут

162
00:19:47.920 --> 00:19:49.380
Михаил Непряхин: райтера

163
00:19:50.390 --> 00:19:58.360
Михаил Непряхин: а вторая функция вот вообще в один день точно такая же, То есть нас поведение Это устраивает но она принимает

164
00:19:58.680 --> 00:19:59.730
Михаил Непряхин: файл.

165
00:20:02.120 --> 00:20:05.400
Михаил Непряхин: Так я смотрю Миграция какая-то Да все-таки

166
00:20:09.080 --> 00:20:11.800
Михаил Непряхин: Люди Выходят Перезаходят

167
00:20:13.570 --> 00:20:16.340
Михаил Непряхин: дайте какую нибудь обратную, связь насколько все Плохо

168
00:20:21.230 --> 00:20:22.740
Михаил Непряхин: иссяк

169
00:20:25.150 --> 00:20:25.900
Михаил Непряхин: Ммм

170
00:20:26.990 --> 00:20:28.230
Михаил Непряхин: Окей

171
00:20:28.540 --> 00:20:29.490
Михаил Непряхин: Окей

172
00:20:30.690 --> 00:20:32.400
Михаил Непряхин: ладно в Зоне Говорят хорошо

173
00:20:32.950 --> 00:20:36.080
Михаил Непряхин: ну Еще михаил Можете Тоже,

174
00:20:37.260 --> 00:20:38.680
Михаил Непряхин: Джемма Терпима

175
00:20:39.750 --> 00:20:40.640
Михаил Непряхин: Окей

176
00:20:41.520 --> 00:20:55.140
Михаил Непряхин: Так вот значит интерфейс решает проблему когда Мы хотим, вот чтобы Не писать Не Дублировать Код, повторно а Мы можем просто сказать Окей значит Мы

177
00:20:55.250 --> 00:20:57.230
Михаил Непряхин: имеем структуры

178
00:20:57.480 --> 00:21:01.380
Михаил Непряхин: с Одинаковыми. Методами То есть вот Наш контракт

179
00:21:01.870 --> 00:21:05.130
Михаил Непряхин: и этот контракт Мы хотим? Абстрагировать

180
00:21:05.460 --> 00:21:08.430
Михаил Непряхин: и для этого заводим энтрофейс

181
00:21:08.620 --> 00:21:14.000
Михаил Непряхин: называть его можем как угодно но есть соглашение в Голову. Что

182
00:21:14.190 --> 00:21:20.730
Михаил Непряхин: интрофис должен заканчиваться наьер ну это не Всегда, так ну вот если вы какие то библиотечные интерфейсы пишете

183
00:21:20.890 --> 00:21:25.250
Михаил Непряхин: то ээ Трофей желательно называть оканчивающимся наер

184
00:21:26.410 --> 00:21:31.710
Михаил Непряхин: и и

185
00:21:31.930 --> 00:21:40.850
Михаил Непряхин: он не требует строгой имплементации то есть вот когда У нас есть структура

186
00:21:42.090 --> 00:21:46.940
Михаил Непряхин: если она имеет. Метод который удовлетворяет интерфейсу

187
00:21:47.410 --> 00:21:56.420
Михаил Непряхин: то Эту структуру можно Использовать в любом месте и ну где где принимается вот этот интерфейс

188
00:21:56.650 --> 00:22:09.790
Михаил Непряхин: интрофейс может Быть называться как угодно Буддист У нас называется в райтер интерфейс да но он можно назвать вообще абсолютно как угодно главное чтобы вот этот контракт он совпадал То есть в этой не трофей написано.

189
00:22:09.910 --> 00:22:11.010
Михаил Непряхин: Что и

190
00:22:11.200 --> 00:22:11.900
Михаил Непряхин: а и

191
00:22:12.260 --> 00:22:17.770
Михаил Непряхин: он работает только с теми структурами у Которых есть вот этот метод

192
00:22:18.060 --> 00:22:21.040
Михаил Непряхин: и если. Оно совпадает То оно Будет приниматься

193
00:22:21.420 --> 00:22:32.530
Михаил Непряхин: а в других языках ну Обычно все-таки чаще встречаться Не так тайпинг, а явная имплементация то Есть Есть мы специально должны вот здесь вот

194
00:22:33.960 --> 00:22:36.390
Михаил Непряхин: сделать какой то имлемент

195
00:22:36.530 --> 00:22:41.400
Михаил Непряхин: и вот Что конкретно Мы Имплементируем вот этот самый интерфейс

196
00:22:41.780 --> 00:22:56.780
Михаил Непряхин: Но в Голову. Это Не нужно То есть потому что ну как бы Доктайпинг, что-то такое типа Если у вас есть структура которая летает как утка крякает как утка там плавает как утка то

197
00:22:56.880 --> 00:23:11.140
Михаил Непряхин: наверное это утка а на самом деле не то что наверное это утка а как бы не важно. Утка или это не утка главное Что у утки есть правильные методы если есть методы правильные то значит Мы можем их использовать

198
00:23:11.880 --> 00:23:15.470
Михаил Непряхин: Поэтому Мы заводим аа Одну Функцию

199
00:23:15.890 --> 00:23:19.540
Михаил Непряхин: и используем вот этот вот интерфейс райдер

200
00:23:20.150 --> 00:23:23.360
Михаил Непряхин: если, вот сюда вот мы передадим

201
00:23:23.640 --> 00:23:24.810
Михаил Непряхин: а утку

202
00:23:25.030 --> 00:23:27.580
Михаил Непряхин: ну утка должна быть сметанным в рай да

203
00:23:27.760 --> 00:23:40.710
Михаил Непряхин: то ну Кот у Этой утки вызовет метод рад если мы сюда передадим курицу но у нее есть метод рай то вот в Этом месте Кот вызовет у Этой курицы метод райд

204
00:23:40.860 --> 00:23:50.360
Михаил Непряхин: вот и оно Реально прикольно работает То есть этим приятно пользоваться вы Не задумываетесь что надо что-то импровизировать

205
00:23:50.490 --> 00:23:59.780
Михаил Непряхин: если, вы понимаете что функция принимает интерфейс ну. Берете и добавляете ему метод или оно просто все работает

206
00:24:00.320 --> 00:24:14.270
Михаил Непряхин: так обязательна ли структура или может быть любой век соотношенности натуре а у нас столько структура ну. Не обязательная структура Да естественно любой объект у Которого есть метод ну. То есть Это может быть и

207
00:24:14.270 --> 00:24:22.870
Михаил Непряхин: все что угодно то есть как бы тут структура не обязательно главное чтобы у него было и были методы правильные нужные методы

208
00:24:22.970 --> 00:24:25.340
Михаил Непряхин: то есть смотрятся именно на методы

209
00:24:27.820 --> 00:24:28.720
Михаил Непряхин: так и

210
00:24:28.860 --> 00:24:32.140
Михаил Непряхин: так здесь вот пока вопросов, нет пока вот все понятно,

211
00:24:32.670 --> 00:24:39.360
Михаил Непряхин: потом переключались может что-то пропустил как тут, важная штука и дальше бомба это еще дальше Развивать

212
00:24:39.600 --> 00:24:41.410
Михаил Непряхин: пока силке и понятно,

213
00:24:43.070 --> 00:25:01.650
Михаил Непряхин: а с Лишним этот год ничего страшного пусть будут нас интересуют только методы которые вот минимально необходимы у Этой утки которого мы которую мы тут передаем может быть тысячи методов не важно главное что должен быть вот этот вот один который будет удовлетворять

214
00:25:05.100 --> 00:25:15.380
Михаил Непряхин: ну и конечно вся Сигнатура, должна быть э ну видите как бы вот эти Названия Они тут не обязательны в интерфейсе их можно вообще ничего Не писать вот

215
00:25:15.380 --> 00:25:25.420
Михаил Непряхин: суть в том что вот главное что в интерфейсе было Был тип который Мы аргумент который Мы принимаем и возвращаем значение какого они типа

216
00:25:25.530 --> 00:25:43.330
Михаил Непряхин: но для удобства обычно и

217
00:25:44.060 --> 00:25:46.320
Михаил Непряхин: вот если нету метода

218
00:25:52.810 --> 00:25:53.850
Михаил Непряхин: как там оно

219
00:25:55.330 --> 00:25:59.930
Михаил Непряхин: ну как я обычно этим не пользуюсь но здесь а вот генеральный метод

220
00:26:00.740 --> 00:26:13.800
Михаил Непряхин: да вот тут, есть какие-то варианты для генерации я обычно просто надо меня реализовать какой-то интерфейс я копирую. Смотрю у Меня нету да а мне надо ну. Просто там пишу

221
00:26:14.140 --> 00:26:21.450
Михаил Непряхин: и и Уже дальше оттусься от первого там из них Профессия Что мне надо было и дальше здесь уже описываю как она должна себя вести

222
00:26:23.590 --> 00:26:26.780
Михаил Непряхин: вот Поэтому Удобнее здесь перемены оставлять

223
00:26:26.920 --> 00:26:29.370
Михаил Непряхин: ну здесь видите еще такой пример

224
00:26:29.480 --> 00:26:31.970
Михаил Непряхин: урайтера вот Он Что записывает

225
00:26:32.680 --> 00:26:48.230
Михаил Непряхин: принимает спайс байт возвращает ошибку а вот это вот количество записанных бай ну значит просто это я тут показал вам пример стандартного интерфейса и Там в оригинале версии н Так и есть то. Есть это Количество перных бай

226
00:26:48.470 --> 00:27:01.230
Михаил Непряхин: вот ну наверное в этом случае ну там из описания, видно конечно но можно было бы тут как-то там написать еще даже более понятнее губку Позволяет, в Сигнатуре больше дать информации

227
00:27:03.700 --> 00:27:06.560
Михаил Непряхин: так. Почему Ониров Есть написанные рядом Со структурой

228
00:27:06.700 --> 00:27:08.780
Михаил Непряхин: потому. Что это

229
00:27:10.170 --> 00:27:14.090
Михаил Непряхин: ну. Тут. Наверное вопрос про то что обычно

230
00:27:15.000 --> 00:27:19.160
Михаил Непряхин: думаю Возникает вопрос где Держать интерфейс да Ну Давайте Так

231
00:27:19.360 --> 00:27:21.370
Михаил Непряхин: почему он Не рядом со структурой.

232
00:27:22.000 --> 00:27:25.380
Михаил Непряхин: Потому. Что Мы интерфейсы держим

233
00:27:25.520 --> 00:27:26.800
Михаил Непряхин: преимущественно

234
00:27:27.610 --> 00:27:29.750
Михаил Непряхин: в Том месте где они используются

235
00:27:30.020 --> 00:27:33.760
Михаил Непряхин: вот смотрите интерфейс используется вот в Этой функции,

236
00:27:34.070 --> 00:27:37.420
Михаил Непряхин: ну вот Мы его используем Мы видим где Мы его используем да

237
00:27:37.570 --> 00:27:45.550
Михаил Непряхин: и значит интерфейс Должен находиться здесь же в этом же пакете рядом с функцией это такая договоренность

238
00:27:45.720 --> 00:27:49.270
Михаил Непряхин: Что интерфейсы держим в месте Использования.

239
00:27:49.880 --> 00:27:56.610
Михаил Непряхин: Это первый вариант а второй вариант мы можем сделать Отдельный пакет для него и вот прямо туда его затолкать

240
00:27:57.090 --> 00:28:00.110
Михаил Непряхин: но не рядом со структурой

241
00:28:00.240 --> 00:28:01.430
Михаил Непряхин: потому, что

242
00:28:01.900 --> 00:28:08.530
Михаил Непряхин: ну в библиотеках вы можете такое встретить То есть в Принципе рядом со структурой тоже кладут, но Идея же в том что

243
00:28:08.660 --> 00:28:17.410
Михаил Непряхин: вы все равно его как бы важно видеть интерфейс это как бы контракт да по сути в том месте где вы его будете использовать

244
00:28:17.570 --> 00:28:21.460
Михаил Непряхин: а структурой ну его Она просто реализует и все

245
00:28:21.700 --> 00:28:33.390
Михаил Непряхин: и более того структура Же может реализовывать кучу интерфейсов сама того не зная то здесь может быть очень много разных методов и они просто есть

246
00:28:33.770 --> 00:28:35.120
Михаил Непряхин: и Бах

247
00:28:35.220 --> 00:28:39.730
Михаил Непряхин: а получается так что они реализуют на самом деле там

248
00:28:40.040 --> 00:28:47.080
Михаил Непряхин: три интерфейса да то есть тут может быть тренер фейса райтер клаузер, и коузер, райтер

249
00:28:47.860 --> 00:28:49.930
Михаил Непряхин: а ему всего лишь два метода имеем

250
00:28:53.540 --> 00:28:54.530
Михаил Непряхин: так

251
00:28:58.060 --> 00:29:00.290
Михаил Непряхин: а то есть дублирование интерфейса норм

252
00:29:01.580 --> 00:29:09.060
Михаил Непряхин: Так а Мы даже и Не Контролируем дублирование профессии То есть и

253
00:29:09.180 --> 00:29:14.010
Михаил Непряхин: кто его знает чьи интерфейсы его тут удовлетворили случайно

254
00:29:14.730 --> 00:29:18.900
Михаил Непряхин: Так интерфейс сергей сергеевичем принц, показ про это Окей

255
00:29:19.330 --> 00:29:23.250
Михаил Непряхин: так как понять какие Методы нужны для интерфейса

256
00:29:24.890 --> 00:29:28.150
Михаил Непряхин: ориентируемся только на структуру или можно что-то еще

257
00:29:28.640 --> 00:29:30.220
Михаил Непряхин: Ну смотрите

258
00:29:30.890 --> 00:29:32.690
Михаил Непряхин: короче интерфейсы

259
00:29:33.290 --> 00:29:35.270
Михаил Непряхин: и это такая тема

260
00:29:36.530 --> 00:29:39.520
Михаил Непряхин: странная короче когда вы Их понимаете

261
00:29:39.760 --> 00:29:49.190
Михаил Непряхин: то типа когда смотрите такие Вопросы, типа как Понять вы так ну что там понимать но вспоминая себя когда я разбирался с этим

262
00:29:49.440 --> 00:30:04.600
Михаил Непряхин: это был настолько черный ящик настолько блэк бокс что я вообще никогда не понимал ну вот просто вот в какой-то момент вот когда вот много вот с этим вот работал в библиотеке писал потом Раз, такой а понял, ну, Это вот просто вкавыкал

263
00:30:04.750 --> 00:30:06.870
Михаил Непряхин: Поэтому я допускаю

264
00:30:07.070 --> 00:30:10.240
Михаил Непряхин: что а потому что смотрите здесь же вот

265
00:30:10.490 --> 00:30:20.400
Михаил Непряхин: вопрос зачем он очень важный типа а зачем вообще нам эти на профессии нужны типа ну можно же Без них и как бы да, можно а

266
00:30:20.400 --> 00:30:34.800
Михаил Непряхин: как бы вы поймете зачем они нужны какие методы и вообще как это работает только вот когда насмотренность появится вот у других вы посмотрите как оно вот Сейчас Мы Еще Клянем Там стандартные какие-то Интерфейсы.

267
00:30:35.050 --> 00:30:42.670
Михаил Непряхин: Но оно прочит Это из Области. Ввп да как бы Это полиморфизм

268
00:30:43.080 --> 00:30:57.380
Михаил Непряхин: и Это более глубокий философский вопрос зачем нам нужно полимурное Поведение но Пока, мы просто разбираемся что в гоу оно реализовано вот Так что значит у нас знак Тайпинг, Что У нас Нет явной имплементации

269
00:30:57.380 --> 00:31:04.430
Михаил Непряхин: если так Получилось Что вам нужен Какой То интерфейс ну либо вы его

270
00:31:04.990 --> 00:31:12.870
Михаил Непряхин: Дописывать какие-то Методы удовлетворяете ну либо как бы вы Не сможете работать с Этой функцией со своей структурой если, У вас Не будет Этих методов

271
00:31:13.850 --> 00:31:25.410
Михаил Непряхин: так ориентированная структура можно что-то еще ну вот на Что ориентируемся на насмотренность на опыт и как бы вот оно не Сразу приходит короче такая тема сложная

272
00:31:25.970 --> 00:31:37.960
Михаил Непряхин: Так если интерфейс используется во многих, местах то его нужно дублировать в Эти места Использования Не нужно использовать вы же ведь можете интерфейс значит Допустим смотрите какая История

273
00:31:38.530 --> 00:31:39.780
Михаил Непряхин: А вот У нас

274
00:31:41.460 --> 00:31:44.350
Михаил Непряхин: есть какой-то Пакет

275
00:31:46.890 --> 00:31:48.700
Михаил Непряхин: де Бренда символ

276
00:31:49.180 --> 00:31:53.620
Михаил Непряхин: есть какой-то Пакеты пэнтенси и Там лежит, нужный нам, интерфейс

277
00:31:57.640 --> 00:32:00.120
Михаил Непряхин: а вот он Там Находится физически

278
00:32:02.600 --> 00:32:16.680
Михаил Непряхин: э мы его Хотим? Заюзать ну как бы мы просто здесь добавляем вот этого депенси и все мы говорим, что, Мы здесь используем вот этот интерфейс который вот он Там объявлен

279
00:32:17.140 --> 00:32:29.470
Михаил Непряхин: вот Поэтому как бы Место, нахождения интерфейса на самом деле вообще Не имеет значения потому что вы его Всегда сможете, заимпортировать и использовать

280
00:32:29.780 --> 00:32:38.530
Михаил Непряхин: Но бест-проектис Это Держать интерфейс рядом с реализацией о нейтрализации рядом с использованием,

281
00:32:38.900 --> 00:32:42.960
Михаил Непряхин: где Мы используем там Мы его держим то есть это как, бы

282
00:32:43.130 --> 00:32:44.740
Михаил Непряхин: просто, лучшая практика

283
00:32:45.760 --> 00:33:03.670
Михаил Непряхин: чтобы опять. Же увидеть и

284
00:33:06.720 --> 00:33:10.380
Михаил Непряхин: а так не Помню как понять что в этом месте необходимо пронять энтрофей

285
00:33:11.600 --> 00:33:12.660
Михаил Непряхин: Так и

286
00:33:13.210 --> 00:33:15.470
Михаил Непряхин: если вам нужно полиморное поведение

287
00:33:15.940 --> 00:33:20.120
Михаил Непряхин: то Есть вы написали очень длинную функцию

288
00:33:20.230 --> 00:33:24.110
Михаил Непряхин: она прям длиннющая вообще вот три экрана

289
00:33:24.670 --> 00:33:30.070
Михаил Непряхин: и вы понимаете что вот кроме как, со стыд-аутом

290
00:33:31.310 --> 00:33:37.380
Михаил Непряхин: а вы еще вот просто хотите. Поработать здесь с файлом

291
00:33:37.750 --> 00:33:39.110
Михаил Непряхин: Дженериков, Нет

292
00:33:39.920 --> 00:33:45.140
Михаил Непряхин: ну типа Не было Анфисенерикова да как бы рано изначально как бы Были только интерфейсы

293
00:33:45.340 --> 00:33:49.400
Михаил Непряхин: потом Появились дженерики недавно они Появились пару лет назад

294
00:33:49.800 --> 00:33:58.890
Михаил Непряхин: Но они у них механизм Внутри как у интерфейсов То есть Поэтому что. Вы тут интерфейс заезжаете в худженерик ну без разницы

295
00:33:59.040 --> 00:34:10.679
Михаил Непряхин: и тут по перформансу даже выгоднее использовать то, есть если есть вариант использовать в качестве интерфейса интерфейсе или инженерии надо использовать энтрофейс

296
00:34:10.940 --> 00:34:13.469
Михаил Непряхин: вот Поэтому как бы это идиоматично

297
00:34:14.670 --> 00:34:25.030
Михаил Непряхин: вот и интерфейс он просто позволяет не дублировать код то есть это по сути ну один из вариантов зачем уже интерфейс это

298
00:34:25.250 --> 00:34:33.480
Михаил Непряхин: и и

299
00:34:33.590 --> 00:34:41.900
Михаил Непряхин: как бы получить, обобщенный код то есть это интерфейсы помогают обобщить что-то

300
00:34:42.040 --> 00:34:55.340
Михаил Непряхин: то есть вот мы получаем как бы обобщенную функцию которая умеет работать не только с каким-то одним не с одной жесткой структурой а с многими структурами первый вариант

301
00:34:55.989 --> 00:35:03.950
Михаил Непряхин: а где еще используются интерфейсы интерфейса активно используется для связки слоев между Собой в архитектуре

302
00:35:05.630 --> 00:35:13.230
Михаил Непряхин: например, вы для мосгориса вы поняли своего. Допустим представьте чем Тут поздно воспринимаем да

303
00:35:14.570 --> 00:35:20.880
Михаил Непряхин: и хотим? Там внутри Этого метода с этим поиграть записать что-то в него,

304
00:35:22.110 --> 00:35:24.370
Михаил Непряхин: а вы это делаете через интерфейс

305
00:35:24.830 --> 00:35:33.020
Михаил Непряхин: эээ по Двум Причинам ну во-первых чтобы развязать свои То Есть интерфейс позволяет отвязаться от жестких импортов

306
00:35:33.500 --> 00:35:34.370
Михаил Непряхин: ну что

307
00:35:34.520 --> 00:35:48.600
Михаил Непряхин: у вас в импортах Ничего Нет когда вы используете, интерфейс у вас и

308
00:35:49.000 --> 00:35:54.930
Михаил Непряхин: и это позволяет э ну как бы вот написать своистую чистую архитектуру

309
00:35:55.740 --> 00:36:06.910
Михаил Непряхин: плюс вы можете интерфейс подменить то, есть вот вы погрози воспринимаете вы можете взять и подменить его на ненастоящий плогрыс и тем самым протестировать ваш, код

310
00:36:07.400 --> 00:36:11.970
Михаил Непряхин: то есть если вот читать Книгу Роберта мартина Так же как бы

311
00:36:13.970 --> 00:36:20.760
Михаил Непряхин: вот У нас Есть Несколько книг Которые Были на хайпе в последнее Время значит ну Там первая была Это клинтон

312
00:36:21.770 --> 00:36:24.110
Михаил Непряхин: Тоже, собственно роберта мартина

313
00:36:25.110 --> 00:36:26.700
Михаил Непряхин: и она

314
00:36:26.800 --> 00:36:34.530
Михаил Непряхин: наделала много шума и на собесах сплошь и рядом спрашивали вот этот соолит вот Оттуда да пошел

315
00:36:35.460 --> 00:36:37.970
Михаил Непряхин: и ну в общем-то вот

316
00:36:42.360 --> 00:36:50.310
Михаил Непряхин: ну Объединим принципы в соле другой Человек ну вот про эти принципы писал мартин потом он написал еще одну, книгу клинов икча

317
00:36:50.900 --> 00:36:56.070
Михаил Непряхин: и вот из последнего что наделала шуму-то она то есть вот чистая архитектура

318
00:36:56.360 --> 00:36:57.820
Михаил Непряхин: и и

319
00:36:58.180 --> 00:37:01.020
Михаил Непряхин: там основной принцип в Этой архитектуре

320
00:37:02.330 --> 00:37:05.390
Михаил Непряхин: а это Принцип инверсии зависимости

321
00:37:06.440 --> 00:37:11.220
Михаил Непряхин: ну вот Эти вот все вот Круги это тоже все про инверсию зависимостей

322
00:37:11.550 --> 00:37:30.520
Михаил Непряхин: и инверсия зависимостей достигается через инъекцию зависимости Сейчас я просто Скажу. Это Можете Не понимать я просто объясняю и

323
00:37:31.020 --> 00:37:33.210
Михаил Непряхин: Уменьшить связанность кода

324
00:37:35.030 --> 00:37:40.320
Михаил Непряхин: давайте даже чтобы это наверное Рисую чтобы это

325
00:37:49.660 --> 00:37:52.530
Михаил Непряхин: значит зачем Нужны Интрофии даты чем на вопрос

326
00:37:52.790 --> 00:37:55.710
Михаил Непряхин: значит есть У нас такой принцип как

327
00:37:57.520 --> 00:37:59.270
Михаил Непряхин: инверсия зависимостей

328
00:38:02.110 --> 00:38:04.210
Михаил Непряхин: депендент синдвершен

329
00:38:09.690 --> 00:38:13.740
Михаил Непряхин: значит чтобы реализовать этот принцип

330
00:38:14.130 --> 00:38:20.310
Михаил Непряхин: то есть эээ он нужен для того Чтобы зачем ему нужно Чтобы и снизить связанность

331
00:38:30.290 --> 00:38:34.440
Михаил Непряхин: снизить связанность кода что такое связанность кода

332
00:38:34.620 --> 00:38:37.920
Михаил Непряхин: это когда вы делаете, изменения

333
00:38:38.190 --> 00:38:43.060
Михаил Непряхин: в одном месте маленькое а оно влечет за Собой Изменение, большого количества кода

334
00:38:43.260 --> 00:38:45.460
Михаил Непряхин: то есть это вот это

335
00:38:45.740 --> 00:38:47.940
Михаил Непряхин: штука которая

336
00:38:48.210 --> 00:38:49.950
Михаил Непряхин: превращает ваш. Код

337
00:38:50.070 --> 00:38:51.180
Михаил Непряхин: в лапшу

338
00:38:51.560 --> 00:39:00.820
Михаил Непряхин: и это то за чем, нужно Следить для того чтобы со Временем, не платить вот этот налог на большую связанность

339
00:39:00.970 --> 00:39:06.540
Михаил Непряхин: вот аа еще по-другому про связанность это

340
00:39:07.000 --> 00:39:09.850
Михаил Непряхин: есть, такое понятие как пауэлл куплен

341
00:39:14.020 --> 00:39:27.440
Михаил Непряхин: ну там еще есть, хайка хижин ну вот нам нужна вот эта была куплена да вот Это Тоже Тоже про низкую связанность про уменьшение чтобы вот между Собой Два кусочка кода они имели небольшую связь Но

342
00:39:27.950 --> 00:39:33.420
Михаил Непряхин: Не было такого, что вот они вот между Собой Там Один, в Другом Или они как То Вообще очень жестко связаны

343
00:39:38.220 --> 00:39:40.620
Михаил Непряхин: вот это вот депенэнси инвершон

344
00:39:41.130 --> 00:39:45.280
Михаил Непряхин: инверсия зависимостей она достигается за счет Депендиции и Джексон

345
00:39:46.460 --> 00:39:48.130
Михаил Непряхин: как просто Несколько умных слов

346
00:39:58.980 --> 00:40:00.560
Михаил Непряхин: депентенси Джексон

347
00:40:00.760 --> 00:40:04.360
Михаил Непряхин: инъекция зависимостей меня можно Ужприинтересовать

348
00:40:04.780 --> 00:40:11.320
Михаил Непряхин: Поинтересовать То Есть вот когда Мы в структуру Инъектим Инъектим какую-то зависимость

349
00:40:11.930 --> 00:40:15.360
Михаил Непряхин: и происходит Это Через интерфейс

350
00:40:19.450 --> 00:40:20.460
Михаил Непряхин: То Есть

351
00:40:21.280 --> 00:40:24.340
Михаил Непряхин: значит У нас есть какая то структура

352
00:40:27.710 --> 00:40:30.570
Михаил Непряхин: и внутри у нас не

353
00:40:30.970 --> 00:40:34.000
Михаил Непряхин: Жесткие не Жесткая структура возгресса,

354
00:40:34.920 --> 00:40:39.200
Михаил Непряхин: а интерфейс то есть вот мы сюда ин джектем

355
00:40:39.360 --> 00:40:47.240
Михаил Непряхин: что Хотим, захотим настоящую базу заринжекем в настоящий возраст, захотим умок

356
00:40:47.340 --> 00:40:49.800
Михаил Непряхин: зин Джексон мок это

357
00:40:50.550 --> 00:40:52.330
Михаил Непряхин: фейковая реализация

358
00:40:52.470 --> 00:40:55.420
Михаил Непряхин: чтобы проверить что все работает

359
00:40:55.530 --> 00:41:03.420
Михаил Непряхин: без реальной базы ну с базой конечно не рекомендуется потому что базу поднять и проверить ничего не стоит и лучше так и делать

360
00:41:03.870 --> 00:41:16.320
Михаил Непряхин: а это используется в основном когда у нас есть клиент другого сервиса у нас у нас Же Всегда связками касеры создают нас нашими консервами он называет какой то еще микросервис и в базу, ходит

361
00:41:16.620 --> 00:41:17.840
Михаил Непряхин: вот базу,

362
00:41:18.010 --> 00:41:20.150
Михаил Непряхин: надо Всегда проверять наживую

363
00:41:20.540 --> 00:41:24.140
Михаил Непряхин: а вот когда У нас есть какая-то зависимость от другого сервиса

364
00:41:26.060 --> 00:41:32.790
Михаил Непряхин: то Мы в Него Не, можем сходить но вот локально Мы допустим хотим, проверить Мы в нем происходить Не, можем

365
00:41:32.980 --> 00:41:34.640
Михаил Непряхин: вот в этом месте

366
00:41:34.830 --> 00:41:36.420
Михаил Непряхин: ставится. Интерфейс

367
00:41:37.120 --> 00:41:38.380
Михаил Непряхин: и

368
00:41:38.500 --> 00:41:41.980
Михаил Непряхин: мы в зависимости от того что Хотим?

369
00:41:42.110 --> 00:41:50.600
Михаил Непряхин: То и передаем либо. Настоящую реализацию вот этого сервиса на Проде и Наш Сервис идет, вот в этот сервис

370
00:41:50.860 --> 00:41:53.070
Михаил Непряхин: либо, если мы тестируем

371
00:41:53.150 --> 00:41:58.120
Михаил Непряхин: то мы здесь фейковые Реализацию сервиса передаем

372
00:41:58.120 --> 00:42:13.760
Михаил Непряхин: и там просто вместо Вызова ну там Методы те же Самые вызываются да ну Там просто типа Мы Никуда Не идем А просто сразу отдаем какие-то захорокоженные данные и таким образом Мы можем проверить нашу бизнес-логику которая в нашем сервисе

373
00:42:14.730 --> 00:42:15.510
Михаил Непряхин: вот и

374
00:42:15.690 --> 00:42:18.430
Михаил Непряхин: и по Сути это

375
00:42:18.540 --> 00:42:20.270
Михаил Непряхин: есть Единственная

376
00:42:21.270 --> 00:42:26.090
Михаил Непряхин: вот как бы область где мы применяем интерфейс в реальной жизни

377
00:42:26.620 --> 00:42:33.000
Михаил Непряхин: потому, что. Интерфейсы которые вот типа врайтера рейдера

378
00:42:33.540 --> 00:42:42.340
Михаил Непряхин: это библиотечная интерфейс и обычно когда вы имеете дело с какой-то библиотекой вы очень часто имеете дело с антрофейсом

379
00:42:42.590 --> 00:42:50.920
Михаил Непряхин: почему так потому что авторы обычно у них свой взгляд на видение на развитие проекта

380
00:42:51.090 --> 00:42:53.790
Михаил Непряхин: и у них обычно

381
00:42:54.250 --> 00:42:55.730
Михаил Непряхин: а вот как бы

382
00:42:55.900 --> 00:42:58.270
Михаил Непряхин: и свое какое-то есть видение

383
00:42:58.410 --> 00:43:14.380
Михаил Непряхин: и они вам обычно дают энтрофейс для того чтобы вы работали с Этой библиотекой Вот чего угодно если Мы возьмем отдаст тот же допустим позгрес да То вы не будете работать со структурой позори вам дадут интерфейс

384
00:43:14.600 --> 00:43:25.690
Михаил Непряхин: и этот интерфейс будет с сделай квери ну сделали запрос к Базе на чтение одной строки сделал запрос на чтение многих, строк

385
00:43:25.690 --> 00:43:45.120
Михаил Непряхин: и это все делается через интерфейсы ну вот потому что автор может как-то менять и

386
00:43:45.120 --> 00:43:48.250
Михаил Непряхин: и вот эти вот вещи удобно делать через интерфейс

387
00:43:48.550 --> 00:43:56.550
Михаил Непряхин: но вы с этим э. Ну как бы вы не будете Иметь, проблемы не будете сталкиваться вы как бы

388
00:43:56.650 --> 00:44:15.500
Михаил Непряхин: и вот так вот глубоко поймете интерфейсы только когда вы будете какую-то свою библиотеку писать этого может вообще никогда не случится вы никогда не будете писать свою библиотеку и Поэтому вот Это вот как там правильно сделать композицию интерфейсов Это Знание Никогда У вас и Не появится

389
00:44:15.500 --> 00:44:28.800
Михаил Непряхин: вот аа а примеры того как строить архитектуру и вот Эту вот Инверсию зависимости Делать инъекцию зависимостей вот это мы все Будем разбирать смотреть По ровному то есть я это просто, вот какое-то Первое Касание просто

390
00:44:28.800 --> 00:44:38.370
Михаил Непряхин: сказал какие-то ключевые слова и

391
00:44:38.470 --> 00:44:43.900
Михаил Непряхин: Вот ну и волка хижина была куплена до хайка хижи но какие-то такие слова.

392
00:44:44.410 --> 00:44:51.970
Михаил Непряхин: Вот здесь вот Так вот верхнем уровне примерно Понятная Профессия зачем Они Нужны то Есть вопросов Нет

393
00:44:57.710 --> 00:44:59.010
Михаил Непряхин: Так

394
00:45:04.770 --> 00:45:10.000
Михаил Непряхин: много вопросов ладно короче Давайте сделаем две, Минутки перерыв

395
00:45:10.300 --> 00:45:12.430
Михаил Непряхин: и тут на вопросе к еще отвечу.

396
00:51:47.370 --> 00:51:48.070
alex: Ой.

397
00:51:59.700 --> 00:52:01.520
Михаил Непряхин: За шесть минут почитаем

398
00:52:03.930 --> 00:52:05.870
Михаил Непряхин: ну так так

399
00:52:08.090 --> 00:52:16.860
Михаил Непряхин: Помню свой в кукол это было безбожное божественное зрение, да вот к сожалению, он так и работает это правда в кувыкал с интерфейсами.

400
00:52:17.130 --> 00:52:19.840
alex: Как на трофеи на дворе устроен спрашивается без их.

401
00:52:19.840 --> 00:52:25.390
Михаил Непряхин: Да могут спросить про Сейчас Будем разбираться про нау Весьма присылайся могут но интерфейс

402
00:52:25.800 --> 00:52:30.860
Михаил Непряхин: сильно проще то есть Энтрофит сложен, немножко в другом, устройство у него довольно простое

403
00:52:31.620 --> 00:52:41.800
Михаил Непряхин: так несколько Раз смотрю ваше, видео про чисто архитектуру по несколько Раз много назад да так присадим природную архитектуру ну это да.

404
00:52:41.800 --> 00:52:43.840
alex: Какую архитектуру это я создавал.

405
00:52:43.840 --> 00:52:44.670
Михаил Непряхин: Так.

406
00:52:44.820 --> 00:52:48.590
alex: А вгу используются айок контейнеры.

407
00:52:48.790 --> 00:52:51.790
Михаил Непряхин: Или в этом Нет необходимости аио

408
00:52:51.970 --> 00:52:55.180
Михаил Непряхин: аю си это что такое контейнеры.

409
00:52:56.780 --> 00:52:58.610
dmitriy: Да Можно ли голосом Скажу.

410
00:52:58.610 --> 00:52:59.520
Михаил Непряхин: Да Давайте.

411
00:52:59.520 --> 00:53:02.370
dmitriy: Но Это, контейнеры с этим версии управления.

412
00:53:03.130 --> 00:53:06.350
Михаил Непряхин: На который передается Управление Зависимостями

413
00:53:08.960 --> 00:53:12.610
Михаил Непряхин: нет Ну смотрите значит

414
00:53:14.130 --> 00:53:17.150
Михаил Непряхин: я Так понимаю

415
00:53:17.880 --> 00:53:23.860
Михаил Непряхин: Это элементы в оренбурге обычно то Есть на Этом Приморке, строятся. Ну вот вот Ведь и спринкс Раз тут появился

416
00:53:24.180 --> 00:53:31.820
Михаил Непряхин: короче если, бы в Гоу был Френбург вот Прямо вот в центре, Языка ну Как. В джаве да там

417
00:53:31.930 --> 00:53:46.550
Михаил Непряхин: Спринг или ну я Не знаю там в джеймссе Есть какой-то главный фронт или Нет ну Типаж Джанго Это все короче говоря вокруг диая на контейнерах Построенная в френворке в гол такого Нет

418
00:53:46.700 --> 00:53:53.280
Михаил Непряхин: пытались что То кто только Не, Пытался писать и есть глядя вот

419
00:53:53.430 --> 00:53:55.320
Михаил Непряхин: от бубера

420
00:53:56.270 --> 00:54:00.600
Михаил Непряхин: бывший даб потом они его переделали

421
00:54:01.430 --> 00:54:08.310
Михаил Непряхин: забыл как он там Сейчас называется, Но он короче говоря очень уродливый и ужасный и его никто не использует

422
00:54:08.500 --> 00:54:13.110
Михаил Непряхин: на конференциях бывает всплывают какие-то доклады про него но

423
00:54:13.230 --> 00:54:17.950
Михаил Непряхин: нормальные люди этим не пользуются Поэтому Мы не используем

424
00:54:18.180 --> 00:54:32.690
Михаил Непряхин: ничего стороннего ну Свое, Подобно контейнерам как Будто бы что-то пишется ну это даже контейнером назвать нельзя это что-то очень такое простое легкоесное без всяких Там замудренных Абстракций просто почти что в Лоб

425
00:54:33.150 --> 00:54:45.330
Михаил Непряхин: как использовать Интерфейс в Контексте Вертикова ссылаюсь Или чистой рецептуры Стоит ли писать Интерфейс репозитор или сервис да То есть вот это единственное место, где стоит Использование трофейсы

426
00:54:45.580 --> 00:54:46.660
Михаил Непряхин: вообще

427
00:54:47.210 --> 00:55:00.850
Михаил Непряхин: я думаю Мы видели доклады про хейт в сторону интерфейсов что их очень много и Необоснованно используют Условно любой среднестатистический Человек он

428
00:55:01.480 --> 00:55:06.230
Михаил Непряхин: у Него какое-то в голове есть представление что типа вот я написал

429
00:55:06.880 --> 00:55:08.590
Михаил Непряхин: м какую То структуру

430
00:55:08.780 --> 00:55:19.880
Михаил Непряхин: и кто-то Другой но Сейчас он Же сам будет писать вызов. Этой своей методов У своей структуры он зачем То это делать. Через интерфейсы

431
00:55:19.890 --> 00:55:32.040
Михаил Непряхин: я не знаю откуда это пошло ну вот видимо соль или что-то люди придумали что интерфейса это прямо обязательно надо Сейчас на Интерфейсе делать интерфейса Стало слишком много это прям и

432
00:55:32.040 --> 00:55:49.910
Михаил Непряхин: и все усложнять ну мало того усложнять интерфейс они еще и

433
00:55:50.110 --> 00:55:54.110
Михаил Непряхин: интерфейсы платные то есть но в ней сколько-то стоят да

434
00:55:54.320 --> 00:56:01.500
Михаил Непряхин: и власти есть и те и другие есть и бесплатные но там сложность в другом а Там синтекси есть сложность

435
00:56:01.690 --> 00:56:04.070
Михаил Непряхин: вот и Поэтому

436
00:56:04.520 --> 00:56:08.020
Михаил Непряхин: интерфейсы стоит употреблять Дозированно

437
00:56:08.210 --> 00:56:20.690
Михаил Непряхин: только Там Где вы понимаете Что Это нужно То есть если вы ну вот не знаете Зачем Он здесь ну и не делайте его то есть как бы Вы должны отвечать на вопрос Зачем даже Если растут и спрашивают типа почему не интерфейс

438
00:56:20.690 --> 00:56:31.460
Михаил Непряхин: аа ну, Вы должны спросить зачем здесь Еще не может Объяснить зачем ну, просто, Так принято ну, блин ну Давайте как Без религиозности да значит зачем они нужны в репозитории и Сервисе

439
00:56:31.740 --> 00:56:34.480
Михаил Непряхин: а я объяснил шубы если, что Замокать

440
00:56:34.770 --> 00:56:40.900
Михаил Непряхин: и можно было проверить реализацию все ли хорошо работает на моках

441
00:56:41.070 --> 00:56:43.100
Михаил Непряхин: на Фейковых реализациях

442
00:56:43.400 --> 00:56:53.630
Михаил Непряхин: и для того чтобы убрать явные импорты это опять же для того чтобы вот как интерфейсы Так и чистой архитектуры довольно Сложные,

443
00:56:53.800 --> 00:57:13.070
Михаил Непряхин: архитектурные паттерны они легче изучаются понимаются когда У вас есть какие-то критерии вот где у вас чистая архитектура а где уже Нечистое так вот наличие интерфейса между отдателем и скейсом говорит о том Что у вас

444
00:57:13.200 --> 00:57:30.690
Михаил Непряхин: ну. Хорошая правильная, архитектура с разделением на свои. Вот Поэтому там она вертика ссылаясь невертиковалась как бы без разницы интерфейсы используются только в отделении адаптеров от Бизнес-логики Вот и все

445
00:57:30.820 --> 00:57:41.540
Михаил Непряхин: Раньше, Еще Можно было даже Из кейсы Вызывать из Контролеров Тоже, через, интерфейсы Но Сейчас этого никто почти Не Делает Поэтому как бы

446
00:57:42.590 --> 00:57:50.000
Михаил Непряхин: надо понимать типа уметь объяснить зачем вам здесь Нужен интерфейс и почти Всегда, можно убрать ничего Не будет

447
00:57:50.860 --> 00:58:08.820
Михаил Непряхин: так чтобы напримерпозиторы. Подменить да и вот из этого ну дто это вообще для того это дата трансфера это структура и

448
00:58:08.880 --> 00:58:11.130
Михаил Непряхин: а вот у сервиса есть поведение

449
00:58:11.850 --> 00:58:13.700
Михаил Непряхин: господи Сломал

450
00:58:14.190 --> 00:58:28.020
Михаил Непряхин: а у сервиса есть поведение и

451
00:58:28.640 --> 00:58:42.790
Михаил Непряхин: для того он не имеет метров на Него прежде чем Ну, вот логично а для сервиса Так как киева. Она тут уже Ответили. Так где хранить Интерфейсы и структуры которая используется Или реализуется несколькими редакторами.

452
00:58:43.010 --> 00:58:49.900
Михаил Непряхин: И Интерфейсы Всегда хранятся. Рядом с бизнес логикой Ведь они будут вызываться в бизнес логике

453
00:58:50.130 --> 00:58:53.870
Михаил Непряхин: Поэтому они и хранятся здесь же рядышком

454
00:58:55.680 --> 00:58:59.860
Михаил Непряхин: а уж там сколькими под авторами они Реализуются

455
00:59:00.190 --> 00:59:14.560
Михаил Непряхин: вообще Не важно То Есть Мы с точки, зрения бизнес-логики думаем и Видим интерфейс Мы его вызываем а уж Там и.

456
00:59:14.560 --> 00:59:14.960
alex: Не Все.

457
00:59:15.000 --> 00:59:21.660
Михаил Непряхин: Например, бод дискорд Или драма вкалетров есть один и значит еще есть Одна Такая тема, вот тоже интересное замечание

458
00:59:22.810 --> 00:59:27.610
Михаил Непряхин: короче откуда вот Это вот берется

459
00:59:28.990 --> 00:59:35.870
Михаил Непряхин: А значит когда Роберт мартин да кстати как Там По тормозам есть, они не Сохранились

460
00:59:41.150 --> 00:59:42.450
Михаил Непряхин: найти отлично

461
00:59:43.010 --> 00:59:44.000
Михаил Непряхин: Окей

462
00:59:44.740 --> 00:59:45.770
Михаил Непряхин: так

463
00:59:46.620 --> 00:59:48.410
Михаил Непряхин: А вот тут чего там было непонятно?

464
00:59:48.860 --> 00:59:51.790
Михаил Непряхин: Значит есть еще такая тема?

465
00:59:51.950 --> 00:59:55.090
Михаил Непряхин: Принтерфейса когда роберт мартин объяснял,

466
00:59:55.300 --> 01:00:02.140
Михаил Непряхин: как Раз, это инверсии зависимости ну в этот провод пронервской зависимости я вот здесь рассказываю на этом месте да

467
01:00:02.350 --> 01:00:09.910
Михаил Непряхин: значит он как как рассказывал типа значит он говорит вот смотрите есть У вас Бизнес-логика

468
01:00:12.440 --> 01:00:13.120
Михаил Непряхин: как там

469
01:00:18.020 --> 01:00:21.310
Михаил Непряхин: Есть У вас бизнес мой как ну дюс кейс он Же данте

470
01:00:24.630 --> 01:00:33.190
Михаил Непряхин: и вы вот в Этой Бизнес-логике вызываете какой-то метод ну например у нас есть какой-то бот

471
01:00:34.400 --> 01:00:36.660
Михаил Непряхин: и у него Мы

472
01:00:37.470 --> 01:00:45.570
Михаил Непряхин: Дискорта телеграммы вк да ну это Даже наверное было бы Не так это были Бы реальные интерфейсы дискорда,

473
01:00:47.510 --> 01:00:55.180
Михаил Непряхин: вот мы вызываем в дисконт что-то отправить да хотя допустим сентября-центр вызываем у дискорда, что-то отправляем в дисконт

474
01:00:55.970 --> 01:00:59.640
Михаил Непряхин: и он объяснял, на базе данных

475
01:01:00.130 --> 01:01:03.180
Михаил Непряхин: значит представьте у вас есть интерфейс

476
01:01:04.910 --> 01:01:06.200
Михаил Непряхин: эдейта борис

477
01:01:08.250 --> 01:01:12.510
Михаил Непряхин: интерфейс да и и вы ну что то отправляете не знаю

478
01:01:12.740 --> 01:01:16.010
Михаил Непряхин: создаете и не сертите давайте так

479
01:01:18.080 --> 01:01:21.600
Михаил Непряхин: что, ты не сертите в эту базу, данных вот это вот интерфейс

480
01:01:21.900 --> 01:01:22.920
Михаил Непряхин: интерто

481
01:01:23.800 --> 01:01:31.930
Михаил Непряхин: и он объяснял, как зачем он здесь нужен ну типа что, представьте вот у вас Сейчас база данных май сквель

482
01:01:33.430 --> 01:01:37.210
Михаил Непряхин: а вы через, какое-то время захотите, поменять на пользу

483
01:01:39.360 --> 01:01:43.430
Михаил Непряхин: и вам не нужно Будет трогать вот эту бизнес логику

484
01:01:43.880 --> 01:01:49.000
Михаил Непряхин: вам просто надо Будет адаптер вот У вас есть адапта май эсквиль

485
01:01:50.350 --> 01:01:55.440
Михаил Непряхин: а вам надо будет просто дописать рядышком адапте напосле

486
01:01:57.320 --> 01:01:58.090
Михаил Непряхин: а и

487
01:01:58.270 --> 01:01:59.900
Михаил Непряхин: в этом месте

488
01:02:01.290 --> 01:02:06.830
Михаил Непряхин: просто при инициативе это же вот интер вот интерфейс анжеров в структуре

489
01:02:07.640 --> 01:02:24.750
Михаил Непряхин: То есть Вот это Мы работаем через интерфейс вам надо будет просто подменить То есть когда вы через конструктор будете создавать и

490
01:02:25.330 --> 01:02:36.710
Михаил Непряхин: но это просто, он объяснял. То есть как бы ну зачем типа как вы просто, делаете вот так вот чтобы так можно было сделать и будет хорошо люди поняли буквально

491
01:02:36.830 --> 01:02:50.840
Михаил Непряхин: и дело в том что ни разу в жизни нигде я Не видел. Чтобы взяли и заменили одну, базу, данных на другую там несмотря на то что там и там эсквель

492
01:02:52.180 --> 01:02:55.590
Михаил Непряхин: а синтаксис он все равно блин разный

493
01:02:55.840 --> 01:03:08.290
Михаил Непряхин: они все равно Всегда очень сильно разъезжаются Там все равно кучу особенностей и Поэтому Вот этого стремится назвать одним создать один на трофейс и все Подтянуть под Него

494
01:03:08.510 --> 01:03:14.270
Михаил Непряхин: это ошибка Не Стоит Так Делать если У вас Есть Дискорд

495
01:03:16.610 --> 01:03:17.930
Михаил Непряхин: телеграм

496
01:03:18.360 --> 01:03:19.870
Михаил Непряхин: и Вокал

497
01:03:21.210 --> 01:03:25.480
Михаил Непряхин: как Будто Бы У всех У них Будет один Метод сент

498
01:03:26.540 --> 01:03:27.380
Михаил Непряхин: да.

499
01:03:27.510 --> 01:03:31.830
Михаил Непряхин: И как Будто бы можно просто сделать один интерфейс

500
01:03:32.350 --> 01:03:38.520
Михаил Непряхин: и использовать этот интерфейс Везде то есть делать реализацию для дискурса для телеграммы для выка

501
01:03:39.650 --> 01:03:55.070
Михаил Непряхин: но дело в том что все равно вэто же Разное и у вас рано или поздно возникнет Надобность как то особенно, поработать каким нибудь допустим телеграммам и У телеграммы Будет Какой нибудь функционал

502
01:03:55.320 --> 01:03:57.880
Михаил Непряхин: который заставит вас

503
01:03:58.140 --> 01:04:15.670
Михаил Непряхин: а вот У Него появится, какой-то метод еще Один. А Дискороду и вка он не нужен но вам придется и для дискуссии для выка либо заглушки какие-то этого метода, делать либо эээ либо реально какую-то реализацию Придумывать как Там. Сделать короче Появляются лишние Ненужные Методы

504
01:04:15.850 --> 01:04:20.050
Михаил Непряхин: и в конечном итоге все У вас в хлам разъедется

505
01:04:20.170 --> 01:04:21.770
Михаил Непряхин: Поэтому и

506
01:04:21.970 --> 01:04:24.000
Михаил Непряхин: даже на отправку

507
01:04:24.180 --> 01:04:26.280
Михаил Непряхин: смс и ушей

508
01:04:26.520 --> 01:04:37.110
Михаил Непряхин: не надо делать. Один интерфейс Сделайте свои интерфейсы и для отправки смс и для отправки и пушей вот допустим вот она значит

509
01:04:37.440 --> 01:04:40.660
Михаил Непряхин: есть Смс есть

510
01:04:41.690 --> 01:04:43.450
Михаил Непряхин: Рапуш

511
01:04:45.110 --> 01:04:49.400
Михаил Непряхин: Казалось Бы Ну и Там, и Там, будет метод Цен да Условно

512
01:04:49.760 --> 01:04:50.760
Михаил Непряхин: и Там, и Там,

513
01:04:51.360 --> 01:04:56.940
Михаил Непряхин: Но лучше все таки сделать для них разные интерфейсы

514
01:04:57.370 --> 01:05:06.140
Михаил Непряхин: и ну вот здесь же у вас в дискейсе, будет два интерфейса значит у вас здесь будет не трофей смс

515
01:05:06.680 --> 01:05:08.410
Михаил Непряхин: и у Него будет Метод центр

516
01:05:09.990 --> 01:05:13.750
Михаил Непряхин: и у вас здесь Же будет интерфейс пуш

517
01:05:15.640 --> 01:05:17.910
Михаил Непряхин: и смотрите у Него тоже будет Метод

518
01:05:19.080 --> 01:05:23.020
Михаил Непряхин: вы на это смотрите такие черт побери Одинаково

519
01:05:23.190 --> 01:05:38.580
Михаил Непряхин: это Же драй это Же Не повторяйте да, типа это надо их объединить сделать один интерфейс назвать его не знаю. И

520
01:05:38.800 --> 01:05:51.670
Михаил Непряхин: но прикол в том что если ваш сервис будет развиваться они тут по интерфейсам разъедут сто процентов на практике это еще Раз проверено не стоит объединять

521
01:05:51.670 --> 01:05:59.090
Михаил Непряхин: ни базы ни мессенджеры ни какие то пуши эсэмэски.

522
01:05:59.280 --> 01:06:01.840
Михаил Непряхин: Даже если у вас

523
01:06:02.700 --> 01:06:06.100
Михаил Непряхин: кафка рэбит инкью

524
01:06:07.340 --> 01:06:08.940
Михаил Непряхин: и натс

525
01:06:10.040 --> 01:06:12.860
Михаил Непряхин: это все Брокер сообщений

526
01:06:12.990 --> 01:06:23.510
Михаил Непряхин: но у них все равно разные пиар То есть даже у одного и того же Не знаю Там просто Делают форк и там уже появляются изменения

527
01:06:23.860 --> 01:06:27.840
Михаил Непряхин: Поэтому здесь интерфейсы они как бы

528
01:06:27.900 --> 01:06:45.570
Михаил Непряхин: Э это просто Роберт мартин говорил как О них надо думать что, вот смотрите вы взяли там сделали замену но в реальной жизни так не работает в реальной жизни интрофей здесь нужны не для того чтобы когда нибудь взять и поменять дискорд на телеграм

529
01:06:45.630 --> 01:06:49.350
Михаил Непряхин: а они Нужны для того чтобы разделить

530
01:06:50.080 --> 01:07:00.720
Михаил Непряхин: бизнес-логику от Адаптеров воздействует сделать барьер прям физический уж когда вы не трофей используете вы уже импортов вот этих пакетов у себя не имеете

531
01:07:01.350 --> 01:07:03.530
Михаил Непряхин: вы через интернет с ними работаете

532
01:07:03.760 --> 01:07:08.400
Михаил Непряхин: вот и То есть это первая меда разделить свои

533
01:07:08.590 --> 01:07:16.670
Михаил Непряхин: и два это если что протестить и если вдруг захотите замокать вы можете это без Проблем сделать и все и все реально все

534
01:07:16.870 --> 01:07:21.920
Михаил Непряхин: то есть У нас вообще здесь один интерфейс

535
01:07:22.190 --> 01:07:24.850
Михаил Непряхин: и одна, реализация

536
01:07:25.250 --> 01:07:41.220
Михаил Непряхин: и как бы ну вопрос зачем дай интерфейс использовать а вот для этого чтобы разделить свои. И чтобы если что можно было замокать ну Мы еще про это архитектуре дойдем еще поговорим но просто все равно что бы вы поняли назначение интерфейсов

537
01:07:41.430 --> 01:07:46.150
Михаил Непряхин: в архитектуре они играют, Роль именно вот

538
01:07:46.480 --> 01:07:48.860
Михаил Непряхин: вот это вот для гея

539
01:07:50.780 --> 01:07:58.340
Михаил Непряхин: и в библиотеках они Играют вообще другую Роль они Играют Роль для

540
01:07:58.690 --> 01:08:03.980
Михаил Непряхин: создание гибкого и пиая и легких, Наработок библиотек

541
01:08:04.420 --> 01:08:11.890
Михаил Непряхин: и его с библиотеками вы ну вы их не будете писать скорее всего да вы их будете просто использовать а вот

542
01:08:11.970 --> 01:08:22.450
Михаил Непряхин: в архитектурных патронах ну вот как бы тоже здесь какие-то минимальные ну вы их просто будете оккупировать и тоже особо не использовать их по назначению как бы как они есть

543
01:08:22.510 --> 01:08:35.960
Михаил Непряхин: конечно же можно наворотить в гол все патерные опушные потому что ну вот вы возьмете любые оппоненты там, используется полиморфизм вот Именно ну с Помощью интерфейсов он Горелизован

544
01:08:36.240 --> 01:08:52.779
Михаил Непряхин: и тогда вам надо было там уже По другому назначению использовать ну в библиотеках он тоже Так используется очень часто в каких-то хитрых паторных Но в гол не принято Наворачивать эти излишние абстракции вгу принято Делать максимально Просто Прямолинейно в лоб

545
01:08:52.779 --> 01:08:56.300
Михаил Непряхин: Без Замудрения Без абстракции Облегченно

546
01:08:56.380 --> 01:08:58.040
Михаил Непряхин: что бы

547
01:08:58.300 --> 01:09:11.960
Михаил Непряхин: ну потому. Что сервисы и

548
01:09:18.830 --> 01:09:23.450
Михаил Непряхин: ой ну правда просто есть архив значит и вы его

549
01:09:23.550 --> 01:09:32.069
Михаил Непряхин: а хотите, допустим делать Зип и Хотите. Делать ну какие там еще есть форматы не знаю

550
01:09:33.069 --> 01:09:33.910
Михаил Непряхин: а

551
01:09:34.170 --> 01:09:35.590
Михаил Непряхин: вылетело из головы

552
01:09:37.710 --> 01:09:39.439
Михаил Непряхин: и вот мы допустим

553
01:09:39.729 --> 01:09:40.470
Михаил Непряхин: да.

554
01:09:41.520 --> 01:09:46.080
Илиас Эззахид: Аа? Тар я кстати вот Как раз хотел спросить про Рода Патрон стратегия.

555
01:09:48.380 --> 01:09:53.410
Михаил Непряхин: Вот Патрон Стратегия типичный пример Использования интерфейсов

556
01:09:53.620 --> 01:09:55.970
Михаил Непряхин: А Грязип Не знаю Давайте

557
01:10:00.390 --> 01:10:09.600
Михаил Непряхин: как-то Так и

558
01:10:11.400 --> 01:10:14.020
Михаил Непряхин: дело, в том Что и

559
01:10:14.150 --> 01:10:17.720
Михаил Непряхин: опять же Репутация у патрона Стратегии Очень плохая

560
01:10:17.850 --> 01:10:26.080
Михаил Непряхин: потому что люди Начинают лепить патрон Стратегию вообще везде то Есть вот Есть Ли у вас Одна реализация

561
01:10:26.260 --> 01:10:30.890
Михаил Непряхин: вот вообще только вот Сейчас вот дим да ну Не лепите вы Сейчас здесь на трофейс

562
01:10:31.160 --> 01:10:33.360
Михаил Непряхин: потому, что это будет преждевременная оптимизация

563
01:10:33.610 --> 01:10:36.520
Михаил Непряхин: если у вас появилось еще

564
01:10:36.550 --> 01:10:55.050
Михаил Непряхин: а один допустим формат но даже в Этом случае как будто бы Патрон стратегию можно без него обойтись ну если у вас уже третий вариант ну можете если, вы разбираетесь понимаете как писать паную стратегию можете ее сюда затолкать но в целом даже в этом случае ну можно обойтись просто

565
01:10:55.080 --> 01:11:07.110
Михаил Непряхин: а на обычном повторении кода, без без Упорывания в интерфейсе то Есть как бы интерфейсе знать надо как они устроены знать надо Использовать очень ограниченно

566
01:11:07.360 --> 01:11:21.860
Михаил Непряхин: и постепенно ну. Вы увидите как и

567
01:11:21.950 --> 01:11:33.850
Михаил Непряхин: практически не используется в Голову если они появляются Кот сразу усложняется а там Если, начинаешь разбираться, Ради чего почти Всегда да и не Ради чего просто так Можно было Без этого обойтись

568
01:11:35.810 --> 01:11:45.620
Михаил Непряхин: так на Сколько и

569
01:11:46.340 --> 01:12:00.700
Михаил Непряхин: понятно Если Вы попадаете Прав новичковую какую-то важно как бы чтобы У вас синьоры все-таки были какие-то с опытом они вам все-таки Не, дадут вот это вот чего-то делать а если, Вы сразу попадете в команду где вот все такие же как Вы

570
01:12:01.000 --> 01:12:14.410
Михаил Непряхин: ну У вас Не выработается вот это вот Вы Не поймете как делать Поэтому в вайбере с Этой точки зрения и

571
01:12:14.490 --> 01:12:27.180
Михаил Непряхин: и состав Команды уточнять перед Тем как вы работу находите чтобы там Были опытные люди потому что, Без этого к бизнессмотренности вы все равно Не Научитесь как хорошо делать

572
01:12:28.820 --> 01:12:33.310
Михаил Непряхин: Так Вот короче зачем оно нужно понятно,

573
01:12:34.390 --> 01:12:39.070
Михаил Непряхин: ээ дальше значит Есть У нас особенности. Конечно же как, Без этого

574
01:12:39.710 --> 01:12:42.990
Михаил Непряхин: Э для того чтобы с этими особенностями разобраться

575
01:12:43.610 --> 01:12:45.980
Михаил Непряхин: мы

576
01:12:46.380 --> 01:13:10.390
Михаил Непряхин: так ну здесь и

577
01:13:10.480 --> 01:13:13.200
Михаил Непряхин: и оно вот оно все работает

578
01:13:14.110 --> 01:13:25.690
Михаил Непряхин: э и выводит сколько байденеписано записано было разное количество потому что, здесь я передаю хэллоу файл а здесь хелво стыд аут и вот оно вот оно записалось

579
01:13:26.180 --> 01:13:27.390
Михаил Непряхин: это

580
01:13:28.360 --> 01:13:32.940
Михаил Непряхин: м так здесь еще вот о чем я Хотел поговорить

581
01:13:33.610 --> 01:13:37.600
Михаил Непряхин: давайте посмотрим на них да значит вот У нас и стыд аут

582
01:13:39.780 --> 01:13:42.780
Михаил Непряхин: есть структура, райтера,

583
01:13:42.930 --> 01:14:03.120
Михаил Непряхин: есть Конструктор Мы конечно же смотрите полей не Имеем никаких факторов но правила хорошего тона Всегда, создавать структуру с помощью конструктора и

584
01:14:03.120 --> 01:14:08.450
Михаил Непряхин: принято в пушкина называть конструктором и принято называть ее сню начиная с нее

585
01:14:08.900 --> 01:14:16.570
Михаил Непряхин: значит вот у нее есть у этого Райтера есть реализующий интерфейс райтер метод

586
01:14:16.870 --> 01:14:18.770
Михаил Непряхин: и просто Мы пишем в консоль

587
01:14:19.550 --> 01:14:23.480
Михаил Непряхин: есть у нас другой значит другая реализация

588
01:14:23.960 --> 01:14:30.640
Михаил Непряхин: в районе мы пишем файл ну здесь уже нам, нужен файл зачем нужен потому, что мы Его еще должны закрыть

589
01:14:30.820 --> 01:14:43.550
Михаил Непряхин: и здесь Мы в Конструкторе смотрите Мы создаем файл может вернуться Ошибка потому что Не будет Прав, на создание например, а дальше когда мы воссоздали мы вернули эту структуру У райтера

590
01:14:43.610 --> 01:14:51.870
Михаил Непряхин: еще и такая интересная особенность которую надо запомнить Что. Возвращаем мы структуры почти Всегда, возвращаемые структуры

591
01:14:52.180 --> 01:15:06.930
Михаил Непряхин: а принимаем интерфейсы то Есть вот Мы же ведь, здесь Могли бы вернуть интерфейс Гошкам нам бы в Принципе это разрешила ну то есть вот этот метрофейс Мы взяли бы здесь и вернули есть еще сокращенная запись можно Так, сделать

592
01:15:07.470 --> 01:15:09.570
Михаил Непряхин: а если, Мы хотим? Вернуть интерфейс

593
01:15:10.910 --> 01:15:26.500
Михаил Непряхин: анонимный интерфейс такой Так называемый Вот Так Вот можно и

594
01:15:26.720 --> 01:15:33.350
Михаил Непряхин: Вот вы можете здесь Вернуть интерфейс но возвращать интерфейс Не принято принято возвращать друг другу как есть

595
01:15:33.850 --> 01:15:35.630
Михаил Непряхин: а интерфейс уже

596
01:15:36.940 --> 01:15:55.060
Михаил Непряхин: принимать в аргументах Почему потому что. Когда вы возвращаете интерфейс вы обязываете им пользоваться а может быть пользователь не хотел и

597
01:15:55.060 --> 01:15:59.840
Михаил Непряхин: Поэтому как бы но вот авторы библиотек очень часто все равно возвращают интерфейсы

598
01:16:00.510 --> 01:16:02.820
Михаил Непряхин: да да Сейчас это посмотрим

599
01:16:03.540 --> 01:16:12.440
Михаил Непряхин: так Э, дальше вот наш метод который реализует интерфейс здесь мы просто пишем файл возвращается количеством бай которые мы записали и возвращаем их

600
01:16:12.680 --> 01:16:23.080
Михаил Непряхин: и смотрите еще есть метод клоуз потому что Мы должны файл потом закрыть То есть это ресурс который Мы открываем здесь создаем и нам надо его закрыть

601
01:16:23.610 --> 01:16:32.330
Михаил Непряхин: и как видите он есть вот этот еще дополнительный метод но ничего страшного главное что вот этот метод реализует наш интерфейс

602
01:16:32.340 --> 01:16:49.320
Михаил Непряхин: и Поэтому вот здесь когда я создаю файлик видите я здесь диферы его закрываю диффер. Это. Такой деструктор который срабатывает по Выходу, из функции вот в этом случае он по Выходу, из коупа в мэйния выйдет, и закроет наш файл

603
01:16:51.730 --> 01:17:01.250
Михаил Непряхин: дальше значит может возникнуть ситуация, что нам, нужно этот клоуз использовать внутриборкера

604
01:17:02.210 --> 01:17:08.790
Михаил Непряхин: аа вот допустим Мы Не хотим, его здесь в дифференции Так Делать а Мы хотим, вот здесь вот внутри

605
01:17:08.950 --> 01:17:10.420
Михаил Непряхин: блокеры его закрыть

606
01:17:13.650 --> 01:17:15.210
Михаил Непряхин: так

607
01:17:16.140 --> 01:17:27.010
Михаил Непряхин: вот ну видите красненьким подсвечиваться потому что у интерфейса нету метода голос что, делать Окей Давайте мы его Добавим Добавим Метод квос

608
01:17:27.440 --> 01:17:29.370
Михаил Непряхин: он возвращает нас Ошибку

609
01:17:29.980 --> 01:17:34.120
Михаил Непряхин: потому что у нас закрытие Файма Оно возвращает Ошибку

610
01:17:34.760 --> 01:17:36.410
Михаил Непряхин: Ошибку тоже Проверим

611
01:17:41.420 --> 01:17:45.530
Михаил Непряхин: ну если Что, Напишем, что-то ошибка ну когда же здесь Можно панику бросить теку

612
01:17:46.930 --> 01:17:48.290
Михаил Непряхин: так Вот так и сделал

613
01:17:48.740 --> 01:17:53.410
Михаил Непряхин: и пишем и закрываем

614
01:17:53.960 --> 01:18:13.160
Михаил Непряхин: и пистолет, как бы я взял Вот эти Интерфейсы со стандартной библиотеки и

615
01:18:13.570 --> 01:18:16.310
Михаил Непряхин: вот э теперь, мы сталкиваемся с ошибкой

616
01:18:16.950 --> 01:18:24.370
Михаил Непряхин: э файв у нас этот ээ метод реализует ну мы видели да вот он вот Он У Него есть

617
01:18:24.870 --> 01:18:25.620
Михаил Непряхин: а и

618
01:18:27.540 --> 01:18:36.080
Михаил Непряхин: стыд-аут Наш Не реализует ну здесь так и Ошибка будет вот что типа ээ нету консоли вот этого метода

619
01:18:36.870 --> 01:18:39.490
Михаил Непряхин: вот от этого метода к волос иерар его нет

620
01:18:40.180 --> 01:18:43.230
Михаил Непряхин: но Мы хотим и Мы хотим? Писать консоль

621
01:18:43.390 --> 01:18:48.700
Михаил Непряхин: но видите ли для того чтобы писать к концу не надо ничего Закрывать да

622
01:18:49.050 --> 01:18:54.280
Михаил Непряхин: а что же делать в этом случае нам просто надо удовлетворить этот интерфейс

623
01:18:54.530 --> 01:18:58.290
Михаил Непряхин: вот Мы просто берем его и удовлетворяем

624
01:18:59.010 --> 01:19:03.840
Михаил Непряхин: а для того чтобы Отдавать чернокопае вот мне сказал

625
01:19:06.190 --> 01:19:14.370
Михаил Непряхин: ну просто вернем нил и все ничего не делаем просто ничего Не Делаем вот надо Вернуть Ошибку, ошибки тут быть Не может Поэтому Возвращаем ни

626
01:19:14.460 --> 01:19:27.700
Михаил Непряхин: и тем Самым Мы бах все Мы удовлетворили этот интерфейс то есть оба методы Мы удовлетворили все и оно опять работает и

627
01:19:28.330 --> 01:19:33.870
Михаил Непряхин: вот Поэтому если, вы видите перед Собой Какой то интерфейс

628
01:19:34.210 --> 01:19:41.280
Михаил Непряхин: а ну а У вас какого-то Метода Не Хватает Ну Берите Да Ты Пишите его и все будете удовлетворять Этому Интерфейсу

629
01:19:42.300 --> 01:19:48.850
Михаил Непряхин: Таким образом принято вовлекать Игрушками ну Не То что принято у выбора другого Нет

630
01:19:49.690 --> 01:20:00.020
Михаил Непряхин: вариантов и других Нет если вы про очень хотите, вот видите там есть метод клоуз а у вас он ну как бы Не Нужен он вам а Реализовать его обязаны ну делайте за Лягушку,

631
01:20:01.470 --> 01:20:03.660
Михаил Непряхин: а выглядит как острее приходится к звезде

632
01:20:03.760 --> 01:20:07.410
Михаил Непряхин: Ну да пихать не прощай звезде не надо

633
01:20:07.810 --> 01:20:14.380
Михаил Непряхин: так Значит я вам показал вот это вот стандартные интерфейсы из стандартной библиотеки,

634
01:20:14.550 --> 01:20:17.250
Михаил Непряхин: Мы можем вот здесь вот вместо

635
01:20:18.220 --> 01:20:19.170
Михаил Непряхин: в райдером

636
01:20:19.470 --> 01:20:21.820
Михаил Непряхин: использовать айоврайтер

637
01:20:23.110 --> 01:20:29.180
Михаил Непряхин: а его райтер это из пакета, ол, вот он ну выглядит точно так же я его отсюда и взял

638
01:20:29.800 --> 01:20:34.860
Михаил Непряхин: и смотрите что. Еще есть здесь здесь есть интерфейс озер

639
01:20:37.880 --> 01:20:51.220
Михаил Непряхин: то есть Мы можем не писать свой интерфейс а просто использовать еврайт и клоуз но дело в том что, это же разные интерфейсы да то есть как бы вот этот райдер и

640
01:20:51.340 --> 01:20:54.190
Михаил Непряхин: делать интерфейс и Маленькими

641
01:20:54.290 --> 01:21:00.090
Михаил Непряхин: и чаще всего в библиотеках и в стандартной библиотеке интерфейс Состоит, из одного метода. И это, правильно

642
01:21:00.470 --> 01:21:08.400
Михаил Непряхин: если вы Хотите. Их скомбинировать то есть возможность сделать композицию, на трофейсов и они здесь тоже есть

643
01:21:09.990 --> 01:21:16.780
Михаил Непряхин: вот посмотрите у нас в интерфейс есть рит райтер но она Не проходит нам нужен вот этот профессор райд Клозер,

644
01:21:17.250 --> 01:21:24.050
Михаил Непряхин: он состоит из энтрофийцев райдер зениттерфейса лоузером и просто первом варваре Клозер, и

645
01:21:25.440 --> 01:21:30.370
Михаил Непряхин: я здесь использую этот Мы можем уже больше не использовать Бах Опять работает

646
01:21:31.040 --> 01:21:32.190
Михаил Непряхин: потому что

647
01:21:32.380 --> 01:21:49.350
Михаил Непряхин: как видите неважно какой интерфейс я сам его напишу Или я возьму интерфейс из стандартной библиотеки ведь, он просто вот себя Содержит вот эти вот Методы которые Мне нужны проекты голос и все и у меня все поработать

648
01:21:49.600 --> 01:21:51.010
Михаил Непряхин: что, здесь еще есть

649
01:21:51.790 --> 01:21:53.130
Михаил Непряхин: есть шордер

650
01:21:53.490 --> 01:22:00.890
Михаил Непряхин: и в общем-то вот это вот эти интерфейсы ридер то есть он получает слайс

651
01:22:01.220 --> 01:22:02.160
Михаил Непряхин: байт

652
01:22:02.790 --> 01:22:04.180
Михаил Непряхин: и и

653
01:22:05.870 --> 01:22:07.680
Михаил Непряхин: в этот слайс байд

654
01:22:08.010 --> 01:22:13.770
Михаил Непряхин: аа Читает Возвращает Сколько Он в него Прочитал в этот Смс-байт

655
01:22:14.360 --> 01:22:15.210
Михаил Непряхин: байт

656
01:22:15.750 --> 01:22:17.140
Михаил Непряхин: а в райдер

657
01:22:17.300 --> 01:22:22.880
Михаил Непряхин: ведь как, бы, Тоже, такую сигнатуру имеет Он получает этот вай фай и записывает

658
01:22:23.140 --> 01:22:24.010
Михаил Непряхин: куда-то

659
01:22:24.900 --> 01:22:26.120
Михаил Непряхин: и и

660
01:22:26.360 --> 01:22:40.520
Михаил Непряхин: вся. Стандартная Библиотека там вы пишете файл или читаете ис файлы вы пишете в сеть Или читаете из сети оно вот эти вот интерфейс вы можете очень часто увидеть что они используются

661
01:22:40.520 --> 01:22:47.300
Михаил Непряхин: вообще роб, пайк когда роба Пайка спрашивали роп пайка-то Один из писателей за кого,

662
01:22:49.020 --> 01:23:01.440
Михаил Непряхин: робоппай когда спрашивали что ему нравится, больше всего в гол и какое Он считает У Него самое Большое достижение то что он придумал он сказал что он считает Своим достижением самым большим

663
01:23:01.880 --> 01:23:05.710
Михаил Непряхин: что он придумал Вот эти интерфейсы рейдер и Райтер

664
01:23:06.210 --> 01:23:22.630
Михаил Непряхин: и Прикольная штука потому что и

665
01:23:22.670 --> 01:23:31.970
Михаил Непряхин: и грубо говоря когда вот вы чего-то низкого уровня вы там пытаетесь хакать ээ там подменить что-нибудь вот вы вот по Сути просто реализуете свой лидер свой райтер

666
01:23:31.970 --> 01:23:43.880
Михаил Непряхин: и вот делаете что хотите, ну и здесь понятно, что есть еще клоуз что допустим нам ресурс какой-то надо закрыть как тот же файл Или как сроккет когда Мы Читаем и сети

667
01:23:44.760 --> 01:23:48.400
Михаил Непряхин: а ну Сико Действительно сделать какой то сдвиг

668
01:23:48.820 --> 01:24:03.710
Михаил Непряхин: и Комбинация да вот этих и

669
01:24:08.990 --> 01:24:27.460
Михаил Непряхин: вот короче говоря стандартная Библиотека она Пестрит вот Такими Маленькими энтрофииками Это практически Там ничего не возьмите вы везде это встретите и По Сути когда вы что-то с какой-то стандартной Функцией работаете она обычно вам возвращает интерфейс

670
01:24:27.490 --> 01:24:38.970
Михаил Непряхин: а Вы уже у этого интерфейса Там Сразу. Вы можете посмотреть. Что Вы можете с Ним сделать заходите ага. Понятно, могу. Райд развернуть могу к озерку дернуть как бы все ясно

671
01:24:39.050 --> 01:24:57.660
Михаил Непряхин: как бы вот это вот и есть вот эта, простота и прозрачность вы Всегда понимаете Что вы можете сделать с Объектом который вы получили функции и Что вы точно не можете сделать То Есть Если У вас интерфейс в распоряжении ну вот только какие методы там в этом профессии есть вот в общем-то этим вы и работаете

672
01:24:58.030 --> 01:25:02.240
Михаил Непряхин: так здесь пока все понятно, здесь пока Вопросов Нет

673
01:25:08.950 --> 01:25:15.720
Михаил Непряхин: а дальше нужно посмотреть как интерфейс устроена низком уровне аа что такое натрофейс

674
01:25:16.340 --> 01:25:20.950
Михаил Непряхин: дайте ваши предположения что такое интерфейс как Вы думаете, как. Он представлен в памяти

675
01:25:21.800 --> 01:25:23.950
Михаил Непряхин: прошлый, Раз, был вопрос про

676
01:25:26.340 --> 01:25:28.750
Михаил Непряхин: про анонимную Функцию как. Она в памяти представлена

677
01:25:29.310 --> 01:25:30.780
Михаил Непряхин: вот ну короче

678
01:25:32.140 --> 01:25:37.200
Михаил Непряхин: так По Инфраструктуры Ну да, или Прав структура

679
01:25:37.320 --> 01:25:38.810
Михаил Непряхин: и Ну

680
01:25:39.340 --> 01:25:53.620
Михаил Непряхин: как бы это конечно понято Но это все-таки структура короче когда вам такие вопросы? Задают отвечайте что структура вообще не промахнетесь но если, не структура значит интерфейс на низком уровне

681
01:25:57.100 --> 01:26:01.220
Михаил Непряхин: состоит из двух полей это поинтер

682
01:26:04.560 --> 01:26:08.210
Михаил Непряхин: и Еще один поинтер Два пойнтера

683
01:26:09.620 --> 01:26:11.190
Михаил Непряхин: значит первый пойнтер

684
01:26:11.720 --> 01:26:13.420
Михаил Непряхин: поинтерна

685
01:26:14.180 --> 01:26:16.420
Михаил Непряхин: таблицу Виртуальных вызовов

686
01:26:17.880 --> 01:26:21.970
Михаил Непряхин: а второй пойнтер Это на реальное Вэлью

687
01:26:23.460 --> 01:26:24.780
Михаил Непряхин: короче говоря

688
01:26:25.050 --> 01:26:26.680
Михаил Непряхин: и и

689
01:26:27.610 --> 01:26:30.400
Михаил Непряхин: принтерфейс Это два указателя

690
01:26:30.730 --> 01:26:36.100
Михаил Непряхин: Раз Два указателя Один. Указать у нас Восемь батлер указать Восемь бай значит на трофей из шестнадцать бай

691
01:26:36.620 --> 01:26:39.730
Михаил Непряхин: как строка Гастро у нас Тоже, была, Шестнадцать бать

692
01:26:40.680 --> 01:26:54.780
Михаил Непряхин: ну? И

693
01:26:55.830 --> 01:27:01.750
Михаил Непряхин: Мы Же работаем с какими-то структурами да У кого, У чего еще Есть методы ну? Как минимум обычная структура

694
01:27:03.450 --> 01:27:15.870
Михаил Непряхин: ну? Или Там у винтау и сторонники тоже и у было убого может быть методы иначе, здесь будет, вот этот реальный бум и если эта структура с методами воды здесь Будет находиться указатель на реальную структуру

695
01:27:16.110 --> 01:27:18.140
Михаил Непряхин: и таблицы виртуальных

696
01:27:18.340 --> 01:27:19.300
Михаил Непряхин: вызовов

697
01:27:19.810 --> 01:27:39.070
Михаил Непряхин: и Сложная структура Но смысл в том Что там просто перечислены Условно как можно об этом думать у нас Же так Тайпинг, так значит нам надо и

698
01:27:39.160 --> 01:27:43.320
Михаил Непряхин: а то здесь бо Там Райд и сигнатура квоус

699
01:27:43.730 --> 01:27:46.530
Михаил Непряхин: ну Там, сигнатура пауза вот условно они Там,

700
01:27:46.640 --> 01:28:02.760
Михаил Непряхин: и чтобы работать с интерфейсом условно вот Мы проверяем оно вообще удовлетворяет вот То Что Мы Хотим? Запихнуть в интерфейс Оно вот Этому удовлетворяет То удовлетворяет значит Идем дальше и помещаем указатель

701
01:28:02.940 --> 01:28:06.980
Михаил Непряхин: э она реальное значение все а дальше Мы работаем с Этим интерфейсом

702
01:28:07.530 --> 01:28:10.390
Михаил Непряхин: а если Не удовлетворяет вот ошибка

703
01:28:10.800 --> 01:28:25.810
Михаил Непряхин: То есть если Мы хотим Запихнуть что-то У чего Нет вот этих методов а мы там прописали что они должны быть то они а здесь указатели по Сути на реальные тоже методы

704
01:28:25.810 --> 01:28:37.750
Михаил Непряхин: то есть там очень много всяких указателей ну. Просто вы должны. Понимать что как бы и

705
01:28:37.810 --> 01:28:44.900
Михаил Непряхин: но синтрофей состоит Из указателя назначения и Из указателя на таблицу ритуальных. Методов

706
01:28:45.120 --> 01:28:47.910
Михаил Непряхин: Или еще по-другому в Голову. Называют видэйбол

707
01:28:49.710 --> 01:28:54.580
Михаил Непряхин: а когда У нас Функция принимает какой То интрофейс

708
01:28:54.810 --> 01:29:03.090
Михаил Непряхин: То соответственно эта Функция просто берет вызывает вот эти Методы а они ээ

709
01:29:03.280 --> 01:29:09.260
Михаил Непряхин: ну Вернее даже даже не эти Методы оно берет реальной волью и вызывает у него Методы

710
01:29:09.850 --> 01:29:14.490
Михаил Непряхин: а это скорее нужно для проверки что эти методы у этого в илью есть

711
01:29:14.870 --> 01:29:22.330
Михаил Непряхин: значит Ммм Почему реализовано так есть Два вида реализации.

712
01:29:24.530 --> 01:29:26.360
Михаил Непряхин: Значит здесь

713
01:29:26.890 --> 01:29:29.910
Михаил Непряхин: опять же погружаю вас немножечко в

714
01:29:30.350 --> 01:29:39.080
Михаил Непряхин: этот Компьютер сайнс для того чтобы какой-то контекст У вас был чтобы побольше моего контекста вот про Эту тему, здесь и

715
01:29:39.510 --> 01:29:48.360
Михаил Непряхин: довольно все просто но тем не менее важно понимать значит есть у нас полиморфизм да так называемый

716
01:29:50.940 --> 01:29:54.400
Михаил Непряхин: а что такое полиморфизм Это вот свойство

717
01:29:55.080 --> 01:29:56.510
Михаил Непряхин: аа объекта

718
01:29:57.360 --> 01:30:00.000
Михаил Непряхин: ну как бы

719
01:30:00.100 --> 01:30:01.310
Михаил Непряхин: Вызывать

720
01:30:02.640 --> 01:30:12.930
Михаил Непряхин: короче Это Один из тампов Ввп эээ абстракция нужна для того чтобы У

721
01:30:14.210 --> 01:30:18.970
Михаил Непряхин: подставлять разные объекты ну ключевые не думаю знаете что такое полимошизм

722
01:30:19.590 --> 01:30:26.750
Михаил Непряхин: вот есть значит разные способы как его добиться, значит первый это мономорфизация

723
01:30:28.760 --> 01:30:32.760
Михаил Непряхин: и поле марфиза или

724
01:30:32.880 --> 01:30:41.040
Михаил Непряхин: не помню как вот Это вот второй называется короче мономорфизация Это когда У нас

725
01:30:41.420 --> 01:30:45.120
Михаил Непряхин: нету таблицы Виртуальных методов У нас все статичное

726
01:30:45.850 --> 01:30:47.280
Михаил Непряхин: У нас статика

727
01:30:48.270 --> 01:30:52.030
Михаил Непряхин: а в момент компиляции вот это вот все

728
01:30:52.190 --> 01:30:54.680
Михаил Непряхин: не нужно потому что

729
01:30:55.250 --> 01:31:01.260
Михаил Непряхин: Допустим Есть функция которая принимает интерфейс

730
01:31:03.250 --> 01:31:05.600
Михаил Непряхин: и вот

731
01:31:05.940 --> 01:31:22.910
Михаил Непряхин: как Раз, таки монархизация Этой власти в гоме нету монархизации да конврастия короче говоря вот это, вот этот интерфейс Он Подставляется Вместо Него реальное значение То есть там прямо, Реально типа берется там какой-то тип и все и проблемы нет

732
01:31:23.700 --> 01:31:34.330
Михаил Непряхин: и но проблема в том что и

733
01:31:34.810 --> 01:31:54.560
Михаил Непряхин: и все места где у вас интерфейсы используются там нужно подставить реальные типы чтобы у них были эти методы короче раздувается. Бинарник и долго компелируются программы Но зато быстро. Работают

734
01:31:55.440 --> 01:32:00.290
Михаил Непряхин: когда выполняются Вот значит в гол пошли другим путем

735
01:32:00.900 --> 01:32:04.690
Михаил Непряхин: в гугу пошли блин как там Сейчас слово

736
01:32:05.250 --> 01:32:06.510
Михаил Непряхин: мона

737
01:32:07.320 --> 01:32:09.260
Михаил Непряхин: морфизация,

738
01:32:10.910 --> 01:32:12.060
Михаил Непряхин: в с

739
01:32:14.680 --> 01:32:17.310
Михаил Непряхин: час подсказка монет блин в скотт

740
01:32:17.750 --> 01:32:20.070
Михаил Непряхин: мономорфизация

741
01:32:20.640 --> 01:32:21.860
Михаил Непряхин: илииле

742
01:32:34.120 --> 01:32:35.610
Михаил Непряхин: оля марфизация

743
01:32:42.270 --> 01:32:44.650
Михаил Непряхин: параметрический полиморфизм

744
01:32:47.340 --> 01:32:51.140
Михаил Непряхин: короче блин что то как то она даже Не. Гуглится, нормально никому видимо это не надо

745
01:32:51.480 --> 01:32:52.430
Михаил Непряхин: и и

746
01:32:52.720 --> 01:32:55.210
Михаил Непряхин: Ну короче укушки не Так

747
01:32:55.660 --> 01:32:58.840
Михаил Непряхин: У гошки создается Таблица виртуальных методов

748
01:32:59.250 --> 01:33:16.890
Михаил Непряхин: итак на самом деле Вообще У всех остальных языков тоже то Есть все создают эти таблицы виртуальных методов потому что мормона монархизация довольно Сложная штука и Медленная очень вот и по сути накладные расходы у нас перетекают вронтаем

749
01:33:17.200 --> 01:33:29.090
Михаил Непряхин: то есть вы представляете да мы вронтайме вынуждены но во Первых вот по этим вот указателям переходить это оверхет вообще как вот когда Вы по указателям переходите ну это дорого

750
01:33:29.930 --> 01:33:40.750
Михаил Непряхин: если погадателям Не прыгать ну если можно Не прыгать то указать ему лучше не прыгать. Поэтому Есть, указатель как бы сразу же вы имеете верх это Медленнее

751
01:33:40.970 --> 01:33:52.880
Михаил Непряхин: потом Указатели обычно вызывают авокации в куча и Поэтому если Увидеть указатель ну Есть, вероятность суббота Локация, не Всегда Но почти Всегда

752
01:33:53.190 --> 01:34:04.110
Михаил Непряхин: а плюс вот это вот проверка в таблице, когда вы куда-то что принимает функция принимает какой-то интерфейс и вы туда передаете свой тип

753
01:34:05.420 --> 01:34:21.780
Михаил Непряхин: нужно будет вронтайме то есть гошка берет смотрит У этого типа вообще есть вот эти вот методы Которые есть в этом интерфейсе и вот эта вот проверка плюс потом вот это Создание, витейбл,

754
01:34:21.800 --> 01:34:37.570
Михаил Непряхин: в первый Раз оно долго потом конечно то есть при первом использовании оно создается и

755
01:34:38.280 --> 01:34:42.330
Михаил Непряхин: и еще накварные расходы появляются когда у нас дженерики появились

756
01:34:42.840 --> 01:34:48.620
Михаил Непряхин: а вообще в целом можно и

757
01:34:48.720 --> 01:34:55.150
Михаил Непряхин: но мы потом когда будем, в энергии проходить чуть ли не в самом конце потому, что они так до кучи нужны

758
01:34:55.320 --> 01:34:57.940
Михаил Непряхин: а им по большому счету особо не нужны

759
01:34:58.140 --> 01:35:04.670
Михаил Непряхин: то мы там увидим что, дженерики тоже используют все эти же механики

760
01:35:04.670 --> 01:35:19.790
Михаил Непряхин: и по сути дженерики в гоу это интерфейсы и

761
01:35:19.880 --> 01:35:20.750
Михаил Непряхин: вот

762
01:35:21.890 --> 01:35:27.320
Михаил Непряхин: что могут спросить на собесе ну вот грубо говоря что такое интерфейс

763
01:35:28.210 --> 01:35:34.150
Михаил Непряхин: что это не указатель а это два указателя Что это структура с двумя Указателями

764
01:35:34.410 --> 01:35:42.820
Михаил Непряхин: и из чего. Состоит интерфейс и вы должны. Сказать Что интерфейс это указатель на реальный тип на реальное значение

765
01:35:43.110 --> 01:35:44.850
Михаил Непряхин: и это

766
01:35:45.380 --> 01:35:47.560
Михаил Непряхин: указатель на таблицу

767
01:35:49.020 --> 01:36:00.070
Михаил Непряхин: и грубо говоря вы должны еще понимать что у интерфейса под капотом все равно есть какой-то тип и Мы можем узнать какой это тип

768
01:36:00.510 --> 01:36:07.020
Михаил Непряхин: и тоже как бы и есть такая возможность Э этот тип Достать оттуда

769
01:36:08.470 --> 01:36:09.810
Михаил Непряхин: Так

770
01:36:12.180 --> 01:36:21.130
Михаил Непряхин: здесь есть прикол значит что Еще на Собеседование нужно вот есть задача вот как от задачи на свайсы есть есть задача на интерфейс

771
01:36:21.500 --> 01:36:22.520
Михаил Непряхин: так

772
01:36:22.730 --> 01:36:38.970
Михаил Непряхин: чем ниже с кем разработчик, и тем больше грузят задачами вот Поэтому чем как бы вы неопытнее тем больше вероятность на такую задачу нарваться У синьоров Эти Сдачи Не спрашивают опять Же, если Не хотите, нарываться на Эти Задачи проходить с Нервное Собеседование Там этого Не будет и

773
01:36:39.840 --> 01:36:41.170
Михаил Непряхин: есть интерфейс

774
01:36:41.880 --> 01:36:49.330
Михаил Непряхин: он пустой Да Кстати Еще такое явление как пустой интерфейс то Есть интерфейс в Котором Нет никаких методов

775
01:36:49.670 --> 01:37:07.470
Михаил Непряхин: и значит Это значит что он удовлетворяет вообще и

776
01:37:07.550 --> 01:37:09.740
Михаил Непряхин: понять какого он типа

777
01:37:09.980 --> 01:37:13.160
Михаил Непряхин: и вот уже с этим конкретным. Типом Можно что-то делать

778
01:37:14.940 --> 01:37:16.230
Михаил Непряхин: есть Тип

779
01:37:16.820 --> 01:37:20.420
Михаил Непряхин: но тут вэлью какое-то ну какое-то поле есть так и над Кучем

780
01:37:21.320 --> 01:37:22.990
Михаил Непряхин: Могла быть и пустая структура

781
01:37:23.330 --> 01:37:28.180
Михаил Непряхин: и вот У нас есть значит Две функции. Экземплярных зимпов Два

782
01:37:28.650 --> 01:37:32.250
Михаил Непряхин: обе эти функции Возвращают, вот этот наш интерфейс

783
01:37:32.930 --> 01:37:39.310
Михаил Непряхин: ну к слову, не надо Возвращать интерфейсы ну допустим вот Возвращаются интерфейсы с задачками Так выглядит

784
01:37:39.990 --> 01:37:43.770
Михаил Непряхин: в этом случае Мы Возвращаем нил. Просто Нет и все

785
01:37:44.670 --> 01:37:48.600
Михаил Непряхин: а в этом случае Мы Создаем эту структуру нашу

786
01:37:49.550 --> 01:37:51.200
Михаил Непряхин: как указатель

787
01:37:51.320 --> 01:37:53.080
Михаил Непряхин: То есть она будет нил,

788
01:37:53.470 --> 01:37:55.070
Михаил Непряхин: и ее возвращаем

789
01:37:56.700 --> 01:38:04.600
Михаил Непряхин: аа ну вот мы ээ возвратили в первом случае здесь у нас нил и во втором случае не

790
01:38:05.590 --> 01:38:07.210
Михаил Непряхин: дальше Мы проверяем

791
01:38:07.380 --> 01:38:11.050
Михаил Непряхин: значит одинаковы ли Эти структуры

792
01:38:12.130 --> 01:38:13.210
Михаил Непряхин: и

793
01:38:13.880 --> 01:38:15.200
Михаил Непряхин: внезапно

794
01:38:16.120 --> 01:38:17.770
Михаил Непряхин: Нет они Не одинаковы

795
01:38:18.620 --> 01:38:21.970
Михаил Непряхин: то есть структура и один неравна структуры и Два

796
01:38:23.490 --> 01:38:24.830
Михаил Непряхин: а хотя

797
01:38:24.940 --> 01:38:34.780
Михаил Непряхин: и структура и один майнтрофейс и структура и два это Моя энтрофейс то Есть короче говоря и это не трофейс

798
01:38:35.120 --> 01:38:40.690
Михаил Непряхин: Но в этом случае Мы просто Не увернули а в этом случае Мы создали структуру и ее здесь вернули

799
01:38:41.970 --> 01:38:42.980
Михаил Непряхин: Окей

800
01:38:43.150 --> 01:38:45.490
Михаил Непряхин: смотрим что же Там, еще

801
01:38:46.710 --> 01:38:53.110
Михаил Непряхин: аа делаем проверку значит в лоб равно ли и один нил и равно ли едва ни

802
01:38:55.530 --> 01:38:58.120
Михаил Непряхин: смотрим и один нил

803
01:38:58.790 --> 01:39:01.680
Михаил Непряхин: не равно а едва равно

804
01:39:03.230 --> 01:39:16.240
Михаил Непряхин: получается что вот это вот мы проверяем равно нил вот мы вернули него она равно нел а вот здесь когда мы структуру нилого вернули оно неву не равно внезапно

805
01:39:17.000 --> 01:39:21.000
Михаил Непряхин: то есть Мы Проверяем вот Это вот Это реально

806
01:39:21.590 --> 01:39:22.910
Михаил Непряхин: равнонил

807
01:39:23.590 --> 01:39:25.810
Михаил Непряхин: аа а вот Это вот не равно ни

808
01:39:30.440 --> 01:39:35.370
Михаил Непряхин: Это явление называется типизированный нил, то есть здесь у нас нил, просто нил,

809
01:39:35.770 --> 01:39:38.380
Михаил Непряхин: а здесь нил, типизированный ни

810
01:39:38.520 --> 01:39:41.840
Михаил Непряхин: то есть как бы мы создали тип и этот тип он был нел

811
01:39:42.290 --> 01:39:43.200
Михаил Непряхин: и и

812
01:39:43.510 --> 01:39:48.080
Михаил Непряхин: когда вы понимаете что, интерфейс

813
01:39:48.180 --> 01:39:51.360
Михаил Непряхин: структура интерфейса наверное интерфейс это структура

814
01:39:52.130 --> 01:40:00.160
Михаил Непряхин: то конечно становится все проще потому что вы понимаете что оно вот здесь возвращается ведь структура

815
01:40:00.740 --> 01:40:03.340
Михаил Непряхин: и и

816
01:40:04.060 --> 01:40:07.530
Михаил Непряхин: но почему в этом случае она равна не была в этом не равна

817
01:40:07.810 --> 01:40:11.460
Михаил Непряхин: потому Что Давайте смотреть дальше на

818
01:40:12.970 --> 01:40:20.620
Михаил Непряхин: Новелью значит есть У нас возможность вот через проценты Ви посмотреть Что там За Вылью

819
01:40:22.230 --> 01:40:26.510
Михаил Непряхин: а смотрим Что Вэлью в первом случае Нет и во втором случае нил.

820
01:40:27.040 --> 01:40:34.060
Михаил Непряхин: Окей а Что с типом. Еще возможность Заглянуть посмотреть какой там тип через процент большая т

821
01:40:35.360 --> 01:40:37.400
Михаил Непряхин: а в первом случае тип

822
01:40:37.530 --> 01:40:39.090
Михаил Непряхин: мэйн экземппо

823
01:40:39.260 --> 01:40:45.630
Михаил Непряхин: ну, То есть у нас структура вот Это вот экземпал ведь указатель на нее а во втором реально нил.

824
01:40:46.710 --> 01:40:48.640
Михаил Непряхин: И Получается какая тема

825
01:40:49.420 --> 01:40:53.610
Михаил Непряхин: так как у нас интерфейс состоит из двух полей

826
01:40:54.480 --> 01:40:55.550
Михаил Непряхин: то и

827
01:40:56.300 --> 01:41:00.500
Михаил Непряхин: можно думать об этом как о Типе и авелью

828
01:41:00.690 --> 01:41:04.420
Михаил Непряхин: то есть и

829
01:41:04.630 --> 01:41:05.900
Михаил Непряхин: здесь нил

830
01:41:06.980 --> 01:41:09.450
Михаил Непряхин: и здесь вэлью

831
01:41:09.820 --> 01:41:10.900
Михаил Непряхин: тоже нил

832
01:41:12.470 --> 01:41:13.450
Михаил Непряхин: атайп

833
01:41:13.590 --> 01:41:15.210
Михаил Непряхин: у нас здесь

834
01:41:15.640 --> 01:41:20.830
Михаил Непряхин: уже задан он антипизирован тайп У нас здесь Экземпал

835
01:41:21.140 --> 01:41:22.940
Михаил Непряхин: А здесь он Не задал

836
01:41:23.200 --> 01:41:24.970
Михаил Непряхин: и он Будет

837
01:41:27.190 --> 01:41:28.710
Михаил Непряхин: он Год просто нил

838
01:41:32.310 --> 01:41:37.470
Михаил Непряхин: короче говоря правило такое если Вы проверяете интерфейс на ним

839
01:41:38.170 --> 01:41:43.600
Михаил Непряхин: то он нил когда и вэлью и тип нил

840
01:41:43.980 --> 01:41:48.450
Михаил Непряхин: а это бывает только в том случае если вы просто возвращаете на трофей как к нему

841
01:41:50.390 --> 01:42:02.230
Михаил Непряхин: если хотя бы одно, из Полей допустим Тип был бы Не задан но Целью задано Или в Элью короче если хотя бы Одно, не нил то интрофейс уже не нил

842
01:42:04.500 --> 01:42:07.380
Михаил Непряхин: это задачка Именно на понимание

843
01:42:07.700 --> 01:42:09.210
Михаил Непряхин: что такое интерфейс

844
01:42:09.760 --> 01:42:25.530
Михаил Непряхин: эээ что мы сравниваем не просто какой-то поинтер Что Мы не Думаем О интерфейсе как Об обычном указателе потому Что это необычный указатель это толстый указатель он состоит из двух полей и чтобы интерфейс был нил

845
01:42:25.790 --> 01:42:28.850
Михаил Непряхин: и оба этих поля условно должно Быть нил

846
01:42:29.670 --> 01:42:38.590
Михаил Непряхин: если поле уже имеет тип если стукнула интерфейс имитип даже если уэлью ни

847
01:42:38.780 --> 01:42:40.840
Михаил Непряхин: то он все равно не будет равен ни

848
01:42:41.020 --> 01:42:42.270
Михаил Непряхин: вот такая

849
01:42:43.090 --> 01:42:47.870
Михаил Непряхин: задачка с подвохом типа как на Гонку данных свайсах точно докажите ему.

850
01:42:48.380 --> 01:42:49.640
David R: В вопросе к вопросу.

851
01:42:49.640 --> 01:42:50.180
Михаил Непряхин: Давайте.

852
01:42:50.180 --> 01:43:02.000
David R: Прям вот тут ээ Получается, У нас может быть Э Тип нил вэлл нил а может ли быть Наоборот Что вел Ю.

853
01:43:03.150 --> 01:43:04.090
Михаил Непряхин: Человек У нас Не.

854
01:43:04.090 --> 01:43:06.730
David R: Ввел ее нил. А типнил.

855
01:43:07.050 --> 01:43:12.750
Михаил Непряхин: Наверное нет я чего-то начал говорить а потом подумал Блин а Как Мы Это. Можем сделать Мы же.

856
01:43:12.750 --> 01:43:17.380
David R: Ну да вы то что перед ним сказали что если хотя бы один из Этих не нил.

857
01:43:17.380 --> 01:43:18.240
Михаил Непряхин: Да но такой.

858
01:43:18.240 --> 01:43:22.970
David R: Не может Быть Что У нас Всегда получается Тип должен Быть какой-то анил какое-то уже Определенное значение.

859
01:43:24.000 --> 01:43:35.780
Михаил Непряхин: Так Сейчас надо Подумать как нам, сделать так чтобы здесь вэлью все-таки было А типа Не было Не короче Похож такое на такое было невозможно да короче У нас в элью может быть ни У либо ни нил

860
01:43:36.420 --> 01:43:42.470
Михаил Непряхин: ну Тип тоже может быть нем либо нел но не может быть такого чтобы вэлью вот тут что-то было

861
01:43:42.920 --> 01:43:45.000
Михаил Непряхин: аа а здесь был нил

862
01:43:45.140 --> 01:43:50.150
Михаил Непряхин: вот наверное такое просто, невозможно но вот это вот про эту штуку Можно учитать запретить

863
01:43:51.020 --> 01:43:52.460
Михаил Непряхин: но Мне кажется, так нельзя

864
01:43:56.640 --> 01:43:59.320
Михаил Непряхин: а поручиться будет практике это явно возвращать не

865
01:44:00.970 --> 01:44:02.140
Михаил Непряхин: а

866
01:44:03.580 --> 01:44:04.890
Михаил Непряхин: сложный вопрос

867
01:44:05.050 --> 01:44:06.590
Михаил Непряхин: потому что

868
01:44:06.780 --> 01:44:14.710
Михаил Непряхин: но вообще да вообще да то есть если вы хотите вернуть ним вот так не надо делать никогда то есть возвращайте нил

869
01:44:15.540 --> 01:44:16.240
Михаил Непряхин: а и

870
01:44:17.000 --> 01:44:19.330
Михаил Непряхин: потому что но в этом нет смысла типа

871
01:44:20.120 --> 01:44:24.490
Михаил Непряхин: вообще-то ошибка Часто возникает при работе с Ошибками

872
01:44:24.670 --> 01:44:32.130
Михаил Непряхин: что когда вместо Нила допустим у нас тут возвращалась бы ошибка а ошибка это интерфейс

873
01:44:32.480 --> 01:44:35.830
Михаил Непряхин: если мы Посмотрим что такое ошибка это интерфейс

874
01:44:36.140 --> 01:44:38.140
Михаил Непряхин: с методом ира

875
01:44:38.590 --> 01:44:52.440
Михаил Непряхин: вот то надо его возвращать нил. Потому что если. Вы сделаете свою кастную ошибку а сделать ее несложно да то вы просто берете да и реализуете здесь и

876
01:44:52.540 --> 01:44:54.190
Михаил Непряхин: шаспсек

877
01:44:58.480 --> 01:45:01.670
Михаил Непряхин: дружочек ты ни в чем не помогаешь там

878
01:45:02.190 --> 01:45:17.880
Михаил Непряхин: короче вот вы просто реализовываете, вот это, вот интерфейса ира и вместо того чтобы Вернуть ним допустим начинаете возвращать эт и их Зампол ну то есть вот танец, это сделал

879
01:45:17.960 --> 01:45:28.480
Михаил Непряхин: вот витя. Экземппом меня удовлетворяет энтерфейсу ира вы берете так возвращаете будете проверять а там ни нил. Поэтому да короче просто не надо вот так вот делать.

880
01:45:28.540 --> 01:45:40.270
Михаил Непряхин: Но дело в том что не надо это мало все равно надо понимать что такое явление как типизированный ним оно существует это как бы Еще Одна претензия

881
01:45:40.460 --> 01:45:52.610
Михаил Непряхин: гошки То есть вот как бы, их две основных претензий это первое что почему в слайсях возможна гонка данных и почему с власти такие странные вторая претензия вот это вот почему у нас есть типизированный миф вот и факт вообще

882
01:45:52.610 --> 01:46:02.060
Михаил Непряхин: но вот это просто, такая особенность как бы у всех. Языков есть косяки ну вот такие вот косячки особенности есть угошки зато других кучу преимуществ Поэтому как гну

883
01:46:02.100 --> 01:46:08.790
Михаил Непряхин: а надо же на собеседник что-то спрашивать вот Поэтому спрашивают вот такие Всякие штуки подводные камни

884
01:46:12.000 --> 01:46:14.060
Михаил Непряхин: да если еще Весь вопрос Ведь.

885
01:46:14.240 --> 01:46:34.620
David R: Есть Еще вопрос получается если функция принимает и

886
01:46:34.620 --> 01:46:36.900
David R: и как это.

887
01:46:37.170 --> 01:46:41.080
Михаил Непряхин: Актом для этого Есть конструкция да для этого Есть конструкция

888
01:46:41.540 --> 01:46:58.790
Михаил Непряхин: короче говоря м когда вы работаете, с пустым интерфейсом то вы можете Убедиться Что, Там именно То Что, вы нужно в свече а если Нет Тогда открыть Ошибку ну примеры посмотрим Я Еще про это дальше примерчики Есть

889
01:46:59.520 --> 01:47:13.030
Михаил Непряхин: Так Сейчас его ошибки это тоже интерфейс там помню был какой-то труд тоже снял на подзыгу короче Да-да ну вот есть еще подобная ошибка но ой подобная задача но вот здесь вот возвращаются ошибки

890
01:47:13.100 --> 01:47:23.830
Михаил Непряхин: вот ну короче если, вы понимаете что существует такое явление как типизированный немца над профессией если вы понимаете что. Интерфейс это не просто указатель

891
01:47:23.950 --> 01:47:28.570
Михаил Непряхин: вы вы не можете просто взять и проверить на ней вот если бы это был тонкий указатель

892
01:47:28.670 --> 01:47:37.110
Михаил Непряхин: ну, как функция Например, функция это тонкий указатель да это просто указатель или мапа папа тоже тонкий указатель это просто указатель

893
01:47:37.210 --> 01:47:52.340
Михаил Непряхин: и канал канал это тоже, тонкий. Указатель вы просто берете и проверяете на него. И не задумывайтесь если там ну. Там Два варианта Либо Неу Либо волью да как бы Либо ведет куда-то эту указатель Либо он неловый

894
01:47:52.830 --> 01:48:07.870
Михаил Непряхин: То интерфейс нельзя Это как бы толстый указатель он состоит из двух Полей и уже вы его не можете просто взять и проверить на Ним то есть с одной стороны вроде бы претензия к гол. Почему Так а с другой стороны а типизация Строгая

895
01:48:07.870 --> 01:48:14.100
Михаил Непряхин: смотрите Мы Же ведь структуру проверяем они если Там структура как бы она

896
01:48:14.540 --> 01:48:32.970
Михаил Непряхин: ну? Это уже не просто проверка на него и структуры то есть это уже не прямая проверка одного. Указателя а это Прям надо посмотреть и

897
01:48:32.990 --> 01:48:36.110
Михаил Непряхин: но важно понимать что такое интерфейс как у настроя

898
01:48:37.450 --> 01:48:38.710
Михаил Непряхин: м

899
01:48:39.370 --> 01:48:42.920
Михаил Непряхин: и значит последнее на сегодня пропустой интерфейс

900
01:48:47.330 --> 01:48:48.550
Михаил Непряхин: значит

901
01:48:49.340 --> 01:48:59.360
Михаил Непряхин: Есть у нас два синтаксиса Галиасы для пустого интерфейса пустой митрофей словно Так вот Обозначаются либо, энни то же самое

902
01:48:59.860 --> 01:49:07.190
Михаил Непряхин: эни появился из фэнериков потому Что в джунглях активно Юзуют интерфейсы и там вот это просто уродливо выглядит

903
01:49:07.730 --> 01:49:20.080
Михаил Непряхин: а уродливо оно сделано потому что опять, же ро пайк в Интервью говорил что специально Он Так сделал За дизайнером что бы вы видели если, вы Начинаете использовать пустой интерфейс

904
01:49:20.180 --> 01:49:30.720
Михаил Непряхин: видя как Он Ротко выглядит значит вы Делаете Что То Не Так потому Что когда вы Начинаете использовать пустой интерфейс вы Превращаете из гол с эстетической типизацией

905
01:49:31.240 --> 01:49:32.810
Михаил Непряхин: динамический язык

906
01:49:32.980 --> 01:49:47.020
Михаил Непряхин: То есть и

907
01:49:47.130 --> 01:49:49.760
Михаил Непряхин: То есть это такой маркер Что что-то идет, Не так

908
01:49:50.060 --> 01:50:06.600
Михаил Непряхин: да пустые интерфейсы иногда используются супер редко это очень редкое явление только Там где и

909
01:50:07.170 --> 01:50:20.750
Михаил Непряхин: да Если проверить Сколько и

910
01:50:21.000 --> 01:50:29.390
Михаил Непряхин: Тоже Структура из двух полей Так пустой интерфейс Можно Извлекать Что угодно То есть Мы

911
01:50:29.950 --> 01:50:31.350
Михаил Непряхин: Там пом

912
01:50:38.130 --> 01:50:45.390
Михаил Непряхин: а вот ну я сказал Что У меня а это пустой интерфейс и в пустой интерфейс присвоил аа число

913
01:50:45.610 --> 01:50:54.730
Михаил Непряхин: Строку булевый Тип то есть ну пустой если, увидеть функция принимает пустой интерфей значит она может принять что угодно вот

914
01:50:54.900 --> 01:50:58.590
Михаил Непряхин: ну или Сейчас все-таки эни чаще чем пустой энтрофейс

915
01:50:59.050 --> 01:51:07.270
Михаил Непряхин: вот У нас функция с пустым интерфейсом и она принимает смотрите сорок два хлоут ну то есть

916
01:51:07.380 --> 01:51:10.480
Михаил Непряхин: это Там питон джиэс

917
01:51:10.890 --> 01:51:13.990
Михаил Непряхин: хороший язык. Без статистической цивилизации

918
01:51:14.200 --> 01:51:16.590
Михаил Непряхин: получается то есть в Год уж Так можно

919
01:51:17.120 --> 01:51:20.640
Михаил Непряхин: и Мы можем сделать свайс

920
01:51:21.060 --> 01:51:24.490
Михаил Непряхин: из разных элементов разных типов

921
01:51:24.810 --> 01:51:44.220
Михаил Непряхин: и и

922
01:51:44.840 --> 01:51:47.590
Михаил Непряхин: Так ну Можем По Ним дапотироваться

923
01:51:48.600 --> 01:52:03.520
Михаил Непряхин: Так значит как приводить пустой интерфейс к чему-то Понятному эстетическому и

924
01:52:03.990 --> 01:52:17.290
Михаил Непряхин: и чтобы с Этим как-то поработать У Пустого интерфейса ничего нету да вот если Мы Там захотим посмотреть какие есть методы у пустого интерфейса ничего нету ничего нельзя с ним сделать чтобы с ним Можно было что-то сделать надо Вернуть его обратно в строку

925
01:52:17.630 --> 01:52:23.580
Михаил Непряхин: Поэтому есть такой синтакси значит точка и скобки в скобках указывается.

926
01:52:23.770 --> 01:52:26.940
Михаил Непряхин: Тип которого Мы хотим, Сделать Каст

927
01:52:27.040 --> 01:52:34.670
Михаил Непряхин: привести значит Если Каст успешный то в этом случае. Вэс будет строка

928
01:52:34.980 --> 01:52:40.940
Михаил Непряхин: Если Каст не успешный то Ничего не будет, никакой, паники Не произойдет

929
01:52:41.130 --> 01:52:42.950
Михаил Непряхин: вэ будет, пустая строка

930
01:52:43.370 --> 01:52:47.690
Михаил Непряхин: а если бы здесь был указатель здесь был бы пустой указатель

931
01:52:48.820 --> 01:53:07.670
Михаил Непряхин: Иногда как бы это имеет смысл но все-таки это неудобно и хочется убедиться вот Мы смогли скастовать или Нет вот удачное Проведение, типов или Нет Поэтому есть второе значение как У мап тоже вот это булю его значение принято писать ок,

932
01:53:07.850 --> 01:53:23.240
Михаил Непряхин: ну и здесь соответственно если, Не ок, То Мы там что-то делаем значит вот Мы пытаемся провести интерфейс к строке если оно будет успешно то здесь будет тру а здесь будет вэлью если, оно не Успешно то здесь будет фоукс а здесь будет пустая Строка

933
01:53:24.390 --> 01:53:26.700
Михаил Непряхин: это Первый вариант кастинга

934
01:53:27.010 --> 01:53:32.530
Михаил Непряхин: и есть еще кейс когда Мы не понимаем

935
01:53:33.010 --> 01:53:42.900
Михаил Непряхин: вернее как Когда Мы не только со строкой можем работать вот Мы вот принимаем постоинтерфейс Мы не знаю, Там, с режиссером работы например, ан маршельма ну типа энн кодера диконера пишем

936
01:53:43.090 --> 01:54:02.050
Михаил Непряхин: и мы Не понимаем что она может прийти. Что угодно может прийти. И в зависимости От того что пришло мы прописываем Разное Поведение. Значит есть специальный синтез, для этого называется тайпс Вич то есть вот эта конструкция она как бы использует свич

937
01:54:02.080 --> 01:54:09.490
Михаил Непряхин: но Вот здесь у нас происходит Кастинг, Мы пытаемся. Привести наш,

938
01:54:09.590 --> 01:54:12.500
Михаил Непряхин: ношу перемену ай к типу

939
01:54:12.880 --> 01:54:17.100
Михаил Непряхин: аа а какому типу Мы здесь просто пишем тайп ключевое слово

940
01:54:17.610 --> 01:54:25.100
Михаил Непряхин: и вот здесь вот как бы призываем вам в эту перемену этот получившийся тип а дальше мы Проверяем

941
01:54:25.810 --> 01:54:39.360
Михаил Непряхин: Какой это тип это инт если. Это инт то что то делаем соответственно синдром то есть здесь у нас уже оказывается, Ви это уже инт он уже вот здесь внутри, Он приведен, кенту

942
01:54:39.560 --> 01:54:58.670
Михаил Непряхин: Мы понимаем Что Мы работаем синтом Это Стринг, если да то Вот здесь внутри, Мы уже имеем стрингу может быть это ошибка и тогда мы здесь имеем ошибку если, мы никуда, Не попали Дефолт У нас работает вот этот кейс и ну все неизвестный тип ни к чему не смогли провести

943
01:54:59.040 --> 01:55:07.420
Михаил Непряхин: также Еще есть способы через, рефлексию то есть рефлексия можно прямо, там. Спросить какого ты типа друг

944
01:55:07.430 --> 01:55:22.180
Михаил Непряхин: и он конечно ответит но это уже библиотек и рефлексия и

945
01:55:22.180 --> 01:55:28.690
Михаил Непряхин: легко очень Накосячить Поэтому так если вы будете с этим работать просто знаете Что рефлексия если Что Есть

946
01:55:28.690 --> 01:55:38.110
Михаил Непряхин: но ею Занимался рок-пайк про которого я уже два раза сегодня упоминал в контексте Что он интерфейсами Занимался и он занимался

947
01:55:38.140 --> 01:55:57.520
Михаил Непряхин: этими айтрами лидерами то, есть ну в общем он интерфейсом занимался вот и он писал рефлексию пакет рефлекшн гол и когда его спрашивают какое его самое неудачное решение. Он отвечает. Что это вот по Китрафлексия то есть недоволен как вот Так Получилось

948
01:55:57.630 --> 01:56:00.100
Михаил Непряхин: сложно дорого запутано

949
01:56:00.530 --> 01:56:01.810
Михаил Непряхин: выключи

950
01:56:02.100 --> 01:56:05.270
Михаил Непряхин: ну лучше, бы ее было не писать говорит он

951
01:56:06.310 --> 01:56:08.330
Михаил Непряхин: а эта конструкция вне свеча работает

952
01:56:08.630 --> 01:56:15.750
Михаил Непряхин: ну вот эта конструкция вне свеча работает да но если вы ее заталкиваете. В свич то вот здесь вот вы пишете ключевое слово тайп,

953
01:56:15.960 --> 01:56:22.640
Михаил Непряхин: а уже конкретно идти потом уже здесь как бы продвигается это надо несколько раз запускать и рассмотреть короче да.

954
01:56:24.140 --> 01:56:27.690
Konstantin: Я Имею. В виду Именно стайп То есть чтобы получить тип.

955
01:56:27.690 --> 01:56:28.430
Михаил Непряхин: Да да да.

956
01:56:28.430 --> 01:56:29.750
Konstantin: Только.

957
01:56:29.750 --> 01:56:34.040
Михаил Непряхин: Только свечи то есть вот это прямо, вот этот тайп здесь он является

958
01:56:34.130 --> 01:56:42.800
Михаил Непряхин: к частью вот Этой конструкции, просто не стали короче Изобретать велосипед и использовались, вич, вот хотя По большому Счету конечно Могли Бы

959
01:56:42.850 --> 01:56:57.630
Михаил Непряхин: как-нибудь Тайп-свитчи здесь вот так вот Называть да как-нибудь а здесь бы и Не надо Было бы или как-нибудь просто какой-нибудь вэлью ставили сюда ай и дальше проверяли какую-то Валюту ну так Не стали делать и решили вот через такой синтез пойти

960
01:56:58.110 --> 01:57:04.890
Михаил Непряхин: вот это называется Кастинг, ну и вообще как бы вот эта в кубочках у нас тоже потом проказ типов и на следующей лекции, и посмотрим

961
01:57:06.650 --> 01:57:07.650
Михаил Непряхин: вот

962
01:57:08.010 --> 01:57:09.230
Михаил Непряхин: здесь

963
01:57:09.560 --> 01:57:18.710
Михаил Непряхин: давайте. Значит это про интерфейсы базового всего есть еще очень сложная тема, но для нее нужны свежие мозги

964
01:57:19.400 --> 01:57:27.580
Михаил Непряхин: и ее важно понимать и про нее поговорим в следующий Раз, вот ну вот пока на текущий момент про интерфейс базы по интерфейса это все

965
01:57:28.150 --> 01:57:30.230
Михаил Непряхин: так Вопросы, какие нибудь здесь.

966
01:57:31.160 --> 01:57:32.590
Илиас Эззахид: Можно голосом Пожалуйста.

967
01:57:32.590 --> 01:57:33.380
Михаил Непряхин: Да да да.

968
01:57:34.140 --> 01:57:48.330
Илиас Эззахид: Аа вот джовисты ну не обязательно джаба ну люди Которые уже с опытом приходят и У них все архитектура строена на интерфейсах и используют частные интерфейсы ну

969
01:57:48.330 --> 01:57:54.770
Илиас Эззахид: какие они в одном ошибке Делают. Когда переходят на гору Касаемо, интерфейса как там счастье

970
01:57:55.020 --> 01:57:58.790
Илиас Эззахид: ну чистая архитектура оп много интерфейса.

971
01:57:59.770 --> 01:58:06.740
Михаил Непряхин: Ну во-первых джависты Очень длинные Названия пишут да это наверное Основная проблема, ужуристов что они начинают

972
01:58:07.980 --> 01:58:14.550
Михаил Непряхин: здесь Например в Голову. Принято Что ну вот смотрите я вот использую Например, вот Стыд, а вот У Меня да

973
01:58:14.890 --> 01:58:16.300
Михаил Непряхин: Пакеты Стыд, аут

974
01:58:16.490 --> 01:58:34.370
Михаил Непряхин: и и

975
01:58:34.420 --> 01:58:37.320
Михаил Непряхин: Придумывать Короткие Названия, пакетом

976
01:58:37.710 --> 01:58:49.180
Михаил Непряхин: и принято лаконично и пять придумывать чтобы он был емкий короткий и

977
01:58:49.210 --> 01:59:01.350
Михаил Непряхин: патор надо эти использовать может они и знают Вот и они их Используют Поэтому удживистов хорошего получается писать в библиотеке то есть вот есть много библиотек Которые от дживиса написали и сразу видно что ты живисты

978
01:59:01.620 --> 01:59:15.700
Михаил Непряхин: она и

979
01:59:15.760 --> 01:59:26.350
Михаил Непряхин: в целом как бы, ошибка кого, угодно. Из Других Языков, кто переходит что начинают все равно преусложнять как бы,

980
01:59:26.350 --> 01:59:38.040
Михаил Непряхин: Тяжеловесный код начинают делать что типа принято было использовать какие нибудь обязательные гетторы сеттеры а Их Вообще в Голову. Часто не принято делать просто фигарить структуру как есть

981
01:59:38.040 --> 01:59:56.690
Михаил Непряхин: и меняете там просто анимичную, модель делаете и все то есть вот это тоже такая идея что вот если Можно как-нибудь вгу попроще обычно делают попроще а сложно делают только там где вот ну либо это библиотека какая-то и Хотят им Капсулировать все нафиг чтобы там все запретить

982
01:59:56.830 --> 02:00:07.560
Михаил Непряхин: вот а джинджер же не сразу так вот надо Там, приватно все сделать вот только внешние пять но здесь чаще всего Мы в гоу смотрите как бы специфика какая гол

983
02:00:07.890 --> 02:00:10.650
Михаил Непряхин: а сервис в гоу это один дамен

984
02:00:11.100 --> 02:00:15.050
Михаил Непряхин: Поэтому раз у вас весь сервис это один домен

985
02:00:15.130 --> 02:00:34.090
Михаил Непряхин: у вас уже очень сильно все Облегчается вам не надо и

986
02:00:34.340 --> 02:00:38.820
Михаил Непряхин: даже многие вот Эту вот чистую архитектуру считают за

987
02:00:39.410 --> 02:01:00.360
Михаил Непряхин: и Если,

988
02:01:00.360 --> 02:01:02.860
Михаил Непряхин: потому что вот именно стиль у гол,

989
02:01:02.860 --> 02:01:08.870
Михаил Непряхин: Не, думать особо о будущем вот написать здесь и Сейчас, чтобы это было просто читаемо эффективно

990
02:01:08.880 --> 02:01:17.060
Михаил Непряхин: а чистая архитектура она еще и вот если на своей неделе, тогда авторы отделяет, вам как бы Еще становится легче

991
02:01:17.060 --> 02:01:30.210
Михаил Непряхин: и и

992
02:01:30.340 --> 02:01:31.580
Михаил Непряхин: поэтому как будем,

993
02:01:32.760 --> 02:01:33.460
Михаил Непряхин: вот

994
02:01:33.700 --> 02:01:35.220
Михаил Непряхин: тогда Еще вопрос ответь.

995
02:01:40.520 --> 02:01:42.140
Илиас Эззахид: А можно Еще тогда вопрос.

996
02:01:42.140 --> 02:01:42.650
Михаил Непряхин: Да и.

997
02:01:42.820 --> 02:01:55.370
Илиас Эззахид: Надеюсь Не домучилась вы говорили что в альберте плохие паттерны какие-то можете какие-то примеры Давать Не обязательно вольтеры просто примеры Плохих антипатийных го.

998
02:01:56.290 --> 02:02:09.210
Михаил Непряхин: Ну не и

999
02:02:09.520 --> 02:02:11.690
Михаил Непряхин: старых синьоров вот в Этом кругу

1000
02:02:12.810 --> 02:02:16.080
Михаил Непряхин: а насчет плохого но и

1001
02:02:16.280 --> 02:02:18.980
Михаил Непряхин: если вы не используете чистую архитектуру

1002
02:02:19.180 --> 02:02:36.980
Михаил Непряхин: То это уже Плохо потому Что грубо говоря чистая архитектура ну в общем даже пустническая актера любая архитектура Что угодно любая портедактор и экстремизмальная Луковичная там чего угодно любая архитектура она очень сильно облегчает. Поддержку

1003
02:02:37.090 --> 02:02:41.630
Михаил Непряхин: и вот самая Главная Ошибка Это Не использовать никакую архитектуру

1004
02:02:41.770 --> 02:02:48.920
Михаил Непряхин: придумывать либо, чего-то Свое, что как бы ну прикольно. Конечно но обычно вы не придумаете что-то хорошее

1005
02:02:48.940 --> 02:03:01.730
Михаил Непряхин: вы так просто. Экспериментируете для себя и у вас каждый Сервис заново начинается он выглядит По-разному У вас Нет преемственности и короче говоря вот вы в поисках постоянно находитесь и вот это вот

1006
02:03:01.730 --> 02:03:10.150
Михаил Непряхин: То Что должны лиды Пресекать, и У вас все равно в команде обычно пять десять сервисов

1007
02:03:10.150 --> 02:03:28.970
Михаил Непряхин: и важно чтобы они Были одинаковые одинаковые то Есть чтобы они были похожи чтобы они были шаблонные потому, что, если у вас они будут не шаблонные вы офигеете в голове держать отличие а вот здесь вот так Это У, нас сделано здесь и

1008
02:03:28.970 --> 02:03:41.830
Михаил Непряхин: и есть как бы вот профессиональный подход. Когда У вас шаблонное мышление вы один Раз, подумали как это хорошо сделать а потом это переиспользуете ну

1009
02:03:41.910 --> 02:03:57.660
Михаил Непряхин: по-моему вообще логично и

1010
02:03:57.660 --> 02:04:04.950
Михаил Непряхин: Да в институтах преподавал преподаватель видимо в большинстве своем У них Вправе могут проблемы хорошей архитектуре

1011
02:04:04.970 --> 02:04:14.660
Михаил Непряхин: и и

1012
02:04:14.930 --> 02:04:25.920
Михаил Непряхин: а хайп чистая архитектура это вообще две, Тысячи пятнадцатый год То есть грубо говоря там какой-то вот популяризации архитектуре ей всего лишь там десять лет

1013
02:04:26.100 --> 02:04:38.800
Михаил Непряхин: и то спасибо мартину там про роберта мартина много Еще можно плохого сказать Он Действительно Там очень Противоречивый Человек Но Тем Не менее То Что Он популяризирует паторной Архитектуры Это очень круто потому Что

1014
02:04:38.800 --> 02:04:47.260
Михаил Непряхин: вам становятся. Автоматически Не нужно изучать Никакие другие патроны кроме паттерна Архитектурного

1015
02:04:47.390 --> 02:05:10.020
Михаил Непряхин: то есть У вас Лоу куплен и Хайка хижин в чистой архитектуре из коробки вам Не. Надо слить знать вам не надо эти Все принципы лебовски и прочее изучать потому что если вы архитектуру делаете по Патерному клина и текча У вас это все есть из коробки и Вот это очень крутое Достижение

1016
02:05:10.080 --> 02:05:11.040
Михаил Непряхин: мартина

1017
02:05:11.240 --> 02:05:17.620
Михаил Непряхин: и если. Вы не Разобрались с этим до конца Будет. Все равно вообще будет фигня потому что

1018
02:05:17.800 --> 02:05:35.800
Михаил Непряхин: и тоже как большая проблема что Люди до конца не разобрались и Лепят те же везде интерфейсы или Делают. Какую-то большую вложенность сложную Делают. Ну. Вот я Там в ролике про Чистую архитектуру это рассказывал в общем-то основные ошибки Поэтому вот тут больше ничего не расскажу

1019
02:05:36.800 --> 02:05:38.000
Михаил Непряхин: так

1020
02:05:38.620 --> 02:05:42.260
Михаил Непряхин: подтверждаю архитектура в Возрасте восьмидесятых

1021
02:05:47.650 --> 02:05:51.570
Михаил Непряхин: а лисков срян не львовский барберлисков

1022
02:05:51.680 --> 02:05:52.750
Михаил Непряхин: договорился

1023
02:05:53.230 --> 02:06:06.600
Михаил Непряхин: кип это нужно Избошникова да кроме металлвара и чистой Архитектуры По Сути паторной в Голову. Как таковые Не Используются никаких фабрик фабрик и никаких Там стратегий ну конечно вы увидите стратегию неизбежно

1024
02:06:06.910 --> 02:06:18.000
Михаил Непряхин: да Особенно, если будете в Вами Будет работать Я Не знаю важна стратегия Мне кажется, То погибли вообще из всех патронов Которые там есть у этих у банды четырех вот

1025
02:06:18.350 --> 02:06:26.980
Михаил Непряхин: когда люди приходят в гоу они выдыхают потому что в гол не принято использовать абстракции

1026
02:06:27.200 --> 02:06:39.580
Михаил Непряхин: эээ банально гитлер это не принято использовать принято просто анимичные модели меняешь напрямую в Столовую поля и все То есть вот

1027
02:06:39.660 --> 02:06:49.400
Михаил Непряхин: плюс гоу что синтаксис реально как бы простой Не надо Имплементировать интерфейсы Супер просто все Автоматически имплементироваться

1028
02:06:49.400 --> 02:07:03.580
Михаил Непряхин: То есть Мы по Сути Эти четыре Темы Сложные Разбираем Только Ради Собеседования в первую очередь они конечно да позволяют чуть глубже погрузиться и вы лучше начинаете понимать Философию языка

1029
02:07:03.940 --> 02:07:06.660
Михаил Непряхин: вот и

1030
02:07:06.960 --> 02:07:10.130
Михаил Непряхин: По большому счету даже если вы Это будете не знать

1031
02:07:10.240 --> 02:07:17.770
Михаил Непряхин: То вы сразу можете писать на Голову. И Так более менее будет даже неплохо а если будете знать будете еще и хорошо писать

1032
02:07:17.840 --> 02:07:37.440
Михаил Непряхин: Поэтому здесь мы двух зайцев выбиваем чтобы вы философию пропитали философию и пропитались, языка и чтобы себе, смогли пройти ну вот без этих с тем Собой невозможно пройти то Есть как Будто и

1033
02:07:37.730 --> 02:07:40.780
Михаил Непряхин: Ран тайм-планировщик обязательно произойдет

1034
02:07:40.890 --> 02:07:46.970
Михаил Непряхин: и еще произойдет про Каналы Но вот это вот в следующий Раз, Мы про канала посмотрим

1035
02:07:47.780 --> 02:07:48.570
Михаил Непряхин: так

1036
02:07:50.750 --> 02:07:53.940
Михаил Непряхин: все вопросов, Нет больше по интерфейсам

1037
02:08:00.440 --> 02:08:08.510
Михаил Непряхин: Окей короче говоря ээ у нас тут осталась еще одна каверная тема которую очень важно понимать

1038
02:08:08.590 --> 02:08:20.990
Михаил Непряхин: и самое главное вот вот с Этой вот вот штукой поиграйтесь попробуйте здесь интерфейсы свои пописать в другие места и складывать вот этот интерфейс

1039
02:08:21.540 --> 02:08:26.070
Михаил Непряхин: а ну вот У меня-то изначально вот так вот было вот и

1040
02:08:27.950 --> 02:08:33.270
Михаил Непряхин: ну попытайтесь поломать этот код посмотреть как его можно сломать что будет хуже

1041
02:08:33.470 --> 02:08:44.670
Михаил Непряхин: вот и потому что тут Есть тема Одна, еще на ресивера короче говоря важно понимать вот про вот этот указатель в сиверах

1042
02:08:44.820 --> 02:08:48.250
Михаил Непряхин: вот он же может быть указатель да мы можем ээ

1043
02:08:49.870 --> 02:08:55.030
Михаил Непряхин: обращаться Вызывать метод просиверу по указателю а можем по значению

1044
02:08:55.420 --> 02:09:04.040
Михаил Непряхин: и вот это вот такая важная штука которая очень глубокую механику имеет. И важно

1045
02:09:04.180 --> 02:09:07.710
Михаил Непряхин: покрутить немножко интерфейсы чтобы понять

1046
02:09:07.920 --> 02:09:09.620
Михаил Непряхин: что это такое

1047
02:09:09.850 --> 02:09:13.480
Михаил Непряхин: вот и все из Сложных тем Там осталось Только про каналы

1048
02:09:13.670 --> 02:09:16.140
Михаил Непряхин: и можем Уже Там это писать

1049
02:09:16.680 --> 02:09:17.830
Михаил Непряхин: архитектур.

1050
02:09:18.880 --> 02:09:23.780
Михаил Непряхин: Так ладно полтора часа У нас вообще Не получается укладываться

1051
02:09:23.990 --> 02:09:25.490
Михаил Непряхин: короче

1052
02:09:26.130 --> 02:09:41.940
Михаил Непряхин: тема растягивается к сожалению, вот ну может быть потом немножко, сократятся, занятия с сарян чтобы Было полтора часа как бы объявлено а мы часто часто выходим

1053
02:09:41.940 --> 02:09:51.970
Михаил Непряхин: около. Двух даже за два вот ну дальше тема будет чуть попроще и бум он чаще укладывался в полтора часа поступить темы очень сложно

1054
02:09:52.720 --> 02:09:57.250
Михаил Непряхин: надо открыть чушь на часа да ну. В интересно ну. Окей ладно Если интересно хорошо

1055
02:09:57.990 --> 02:10:01.500
Михаил Непряхин: Возьму два ну вот как было плавающие полтора-два да

1056
02:10:01.720 --> 02:10:05.120
Михаил Непряхин: кстати как По Связи учишься стала или сама два арпеза

1057
02:10:09.230 --> 02:10:11.780
Михаил Непряхин: но надеюсь что заходит надеюсь что заходит

1058
02:10:12.300 --> 02:10:19.670
Михаил Непряхин: шасбом поселок Кстати я Не Знаю чего это Было похоже там рк он чего-то блокировал опять, Время пришло

1059
02:10:21.210 --> 02:10:27.310
Михаил Непряхин: вот Реально Темы на самом деле бездонные углубляться можно бесконечно

1060
02:10:27.480 --> 02:10:34.460
Михаил Непряхин: э я вам даю чуть глубину чуть больше чем надо чтобы хоть что-то осталось вот

1061
02:10:34.930 --> 02:10:42.690
Михаил Непряхин: и идея в этом то что типа я отдаю э там чуть-чуть побольше чем надо

1062
02:10:42.840 --> 02:10:57.170
Михаил Непряхин: потому что все равно что-то Забудется а чего-то останется и на собесе разговор главное чтобы вы, с собеседующим вот примерно на одной уровне были чтобы он чего-то сказал а вы, такие а мономорфизм ну чего-то слышу Или там а ну

1063
02:10:57.170 --> 02:11:07.150
Михаил Непряхин: и и

1064
02:11:07.170 --> 02:11:23.160
Михаил Непряхин: и и

1065
02:11:23.250 --> 02:11:36.140
Михаил Непряхин: вещи в гоу это как сальсы устроены и вот этот типзированный нил. Что ха-ха-ха чего-то вообще за фигня но на самом деле так Особенно, докопаться до языка больше и негде зато какая какой быстрый ее у баунта

1066
02:11:36.600 --> 02:11:38.660
Михаил Непряхин: вот Поэтому он так

1067
02:11:38.790 --> 02:11:42.650
Михаил Непряхин: ладно все тогда давайте всем. Пока до, четверга.

