WEBVTT

1
00:04:53.650 --> 00:04:54.660
Илиас Эззахид: Буря.

2
00:05:03.010 --> 00:05:07.540
Михаил Непряхин: Так всем. Привет напишите. Пожалуйста, плюсики Слышно Ливидно

3
00:05:30.870 --> 00:05:32.940
Михаил Непряхин: так Ладно хорошо Начинаем

4
00:05:36.840 --> 00:05:40.980
Михаил Непряхин: так Ну, в общем сегодня будем говорить про

5
00:05:41.360 --> 00:05:42.610
Михаил Непряхин: синтаксис

6
00:05:43.820 --> 00:05:44.490
Михаил Непряхин: в и

7
00:05:46.720 --> 00:05:49.460
Михаил Непряхин: да давайте поговорим про

8
00:05:50.270 --> 00:05:51.370
Михаил Непряхин: синдексис

9
00:05:53.320 --> 00:05:54.010
Михаил Непряхин: а и

10
00:05:54.800 --> 00:06:01.830
Михаил Непряхин: так значит про мифы. Проив говорить особо нечего условие без Кобочек пишется

11
00:06:02.940 --> 00:06:07.130
Михаил Непряхин: ну так же здесь Можно и добавить все эти

12
00:06:08.050 --> 00:06:13.000
Михаил Непряхин: Или Или условия Внутри тоже все это без Кобочек

13
00:06:14.190 --> 00:06:15.990
Михаил Непряхин: значит элс есть

14
00:06:16.780 --> 00:06:20.520
Михаил Непряхин: ну вообще в целом если вы можете написать без элза

15
00:06:20.660 --> 00:06:23.730
Михаил Непряхин: то Лучше, писать без газа то есть

16
00:06:24.000 --> 00:06:26.120
Михаил Непряхин: почти Всегда, Можно написать без эзу

17
00:06:28.220 --> 00:06:31.280
Михаил Непряхин: Поэтому айлс вы довольно редко можете Увидеть

18
00:06:31.420 --> 00:06:37.440
Михаил Непряхин: ну что. В целом как бы Рекомендация такая что. Типа чтобы код был проще лишь элвис немножечко усложняет Кот

19
00:06:37.820 --> 00:06:45.040
Михаил Непряхин: и вфлс Еще более редкий Зверь потому что и фэйлс просто заменяется на Свичу

20
00:06:45.950 --> 00:06:49.680
Михаил Непряхин: А с Вич прикольная конструкция часто используется

21
00:06:49.840 --> 00:06:53.730
Михаил Непряхин: можно как вот здесь полная замена

22
00:06:54.300 --> 00:06:57.430
Михаил Непряхин: вот этого уефа с и

23
00:06:58.680 --> 00:07:02.040
Михаил Непряхин: и просто вот Как бы здесь проверяются условия

24
00:07:03.170 --> 00:07:05.200
Михаил Непряхин: и соответственно здесь

25
00:07:05.760 --> 00:07:08.980
Михаил Непряхин: короче Дефолт здесь такой что

26
00:07:09.120 --> 00:07:11.860
Михаил Непряхин: первый кейс который сработает

27
00:07:12.910 --> 00:07:14.310
Михаил Непряхин: а произойдет выход

28
00:07:14.780 --> 00:07:17.770
Михаил Непряхин: То Есть Если У нас зиро

29
00:07:20.410 --> 00:07:22.730
Михаил Непряхин: Если Она зиро будет Два

30
00:07:26.380 --> 00:07:32.230
Михаил Непряхин: Мы вот здесь вот ээ Получим Совпадение, и отсюда Выйдем

31
00:07:33.670 --> 00:07:36.790
Михаил Непряхин: есть возможность переопределить Эту тему,

32
00:07:37.140 --> 00:07:44.010
Михаил Непряхин: супер Мне кажется, самое Редкое слово. Которое есть в гошке ключевое это.

33
00:07:46.210 --> 00:07:53.570
Михаил Непряхин: Тру У Меня как там Фоукс-у вот короче говоря если вы Делаете вот с Этим словом

34
00:07:53.890 --> 00:07:57.390
Михаил Непряхин: то даже если сработает первый кейс

35
00:07:57.610 --> 00:08:06.540
Михаил Непряхин: вы все равно не выйдете и свечаю и этот кейс работает и этот кейс работает то Есть короче вот эта штука переопределяет Поведение по умолчанию

36
00:08:06.800 --> 00:08:16.680
Михаил Непряхин: в каких-то языках, по умолчанию как Раз, Таки вот это поведение в логушке оно гарантировано для удобства что, первый сработавший кейс вы из свеча выходите

37
00:08:17.560 --> 00:08:22.680
Михаил Непряхин: плюс значит можно вот здесь от свече задать условия

38
00:08:23.100 --> 00:08:30.330
Михаил Непряхин: точнее как бы проверить что, Там То есть вот зира пишется ну здесь суда перемены оставляются Или Там функция конец

39
00:08:30.560 --> 00:08:32.450
Михаил Непряхин: с получением значения

40
00:08:32.700 --> 00:08:33.950
Михаил Непряхин: и и

41
00:08:34.789 --> 00:08:37.120
Михаил Непряхин: по-моему функции Можно Всегда толкать

42
00:08:50.740 --> 00:08:53.300
Михаил Непряхин: да да ну вот Функцию, Тоже, Можно представить

43
00:08:55.560 --> 00:09:06.380
Михаил Непряхин: а ты анонимную. Функцию, поставит вот и в общем-то просто проверяется По совпадению с Этим значением Что прикольно и гошники Узнают

44
00:09:06.480 --> 00:09:07.660
Михаил Непряхин: Не сразу

45
00:09:07.820 --> 00:09:20.590
Михаил Непряхин: это То Что можно здесь вот Допустим У вас такая ситуация, Что все три кейса Поведение должно быть одинаковое просто через, запятую можете здесь их поставить так вот и

46
00:09:21.060 --> 00:09:24.850
Михаил Непряхин: задать то есть этот кейс сработает

47
00:09:25.030 --> 00:09:33.010
Михаил Непряхин: или преднерки ли при значение двойки либо притруки хороши запятая здесь получается значение ну как, о

48
00:09:33.210 --> 00:09:37.670
Михаил Непряхин: вот но Только очень коротко компактная Поэтому в целом ветвление

49
00:09:38.140 --> 00:09:40.090
Михаил Непряхин: прикольно сделано то есть Искать

50
00:09:40.420 --> 00:09:45.150
Михаил Непряхин: а довольно удобно этим всем. Пользоваться а ну вот здесь я показал этот пример

51
00:09:45.570 --> 00:09:48.610
Михаил Непряхин: да и Еще кстати вот Еще фишка что можно

52
00:09:48.850 --> 00:09:51.100
Михаил Непряхин: отделить нули

53
00:09:51.640 --> 00:09:53.960
Михаил Непряхин: в виньте Нижним подчеркиванием,

54
00:09:54.120 --> 00:10:02.810
Михаил Непряхин: тоже удобно многие не знают то есть Реально прям вот большие числа когда пишете то Удобно бывает отделить

55
00:10:03.180 --> 00:10:13.270
Михаил Непряхин: то же самое срабатывает переменных окружения. То Есть можете переменное окружение тоже когда передавать в Гошку извини какие-то переменные

56
00:10:13.610 --> 00:10:17.630
Михаил Непряхин: то можно тоже также ниже не подчеркиваю не использовать он Это понимает

57
00:10:17.920 --> 00:10:23.600
Михаил Непряхин: вот ну и дефолтный кейс когда не сработали все остальные кейсы тогда срабатывает дворник кейс

58
00:10:25.210 --> 00:10:28.320
Михаил Непряхин: Еще из приколов дефолтник кейс

59
00:10:29.330 --> 00:10:30.990
Михаил Непряхин: может быть

60
00:10:31.680 --> 00:10:34.370
Михаил Непряхин: в другом, блин месте например, сверху

61
00:10:34.670 --> 00:10:36.180
Михаил Непряхин: и и

62
00:10:36.460 --> 00:10:52.230
Михаил Непряхин: один Раз на Собеседование такую Взяточку Показали Ну Любят на Собянину такое Спрашивать Я Никогда Этого в Жизни Не Видел. И после Этого Тоже, Никогда Не Видел. Но запомнил Что Были наказываться можно дефорники и сверху делать Но практика Дурацкая то есть Так никто Не пишет

63
00:10:52.450 --> 00:10:53.190
Михаил Непряхин: ааа

64
00:10:53.630 --> 00:11:07.700
Михаил Непряхин: потому Что Так Проще читать вы сверху вниз читаете То есть все кейсы они срабатывают сверху вниз если вы понимаете Что У какого-то кейса вероятность Срабатывания выше То просто наверх его помещаете Ну, чтобы как бы оптимизировать

65
00:11:08.660 --> 00:11:10.070
Михаил Непряхин: выполнение кода

66
00:11:12.370 --> 00:11:19.630
Михаил Непряхин: и еще интересная особенность ифа что так как в Голову. Очень часто встречается вот такая тема

67
00:11:19.750 --> 00:11:22.120
Михаил Непряхин: вот такие выражения когда У нас есть

68
00:11:22.350 --> 00:11:27.080
Михаил Непряхин: а функция она что-то возвращает какое-то значение одно, или два

69
00:11:27.750 --> 00:11:30.910
Михаил Непряхин: и мы Вынуждены проверять это значение

70
00:11:33.760 --> 00:11:37.490
Михаил Непряхин: так. Как когда вы переходите с другого языка на Голову.

71
00:11:37.970 --> 00:11:40.760
Михаил Непряхин: У вас есть потребность

72
00:11:40.940 --> 00:11:45.250
Михаил Непряхин: писать в том же стиле в котором. Вы привыкли

73
00:11:45.430 --> 00:11:47.440
Михаил Непряхин: это вообще такая большая проблема что

74
00:11:48.060 --> 00:11:56.790
Михаил Непряхин: ну, это всех касается то есть вы когда со Своего родного языка переходите на Другой вы все равно используете привычки наработанные в предыдущем языке

75
00:11:57.110 --> 00:11:58.100
Михаил Непряхин: и и

76
00:11:59.960 --> 00:12:18.330
Михаил Непряхин: Постепенно конечно как вы чем больше Насмотрено чем больше вы кода читаете тем вы ну жевательны От разных Людей То есть если вы прямо на одном месте долго Работаете У вас только Один коллега и Вывод весь, Год видя как только он пишет то конечно у вас как бы вы автоматически перенимаете его манеру его стиль

77
00:12:18.760 --> 00:12:32.430
Михаил Непряхин: а если вы видите смотрите читаете, разные библиотеки у вас несколько коллег Вы смотрите у всех разный стиль потому что одинаково никто не пишет то у вас появляется насмотренность и Вы постепенно вот понимаете вот как это иематично писать

78
00:12:33.230 --> 00:12:34.130
Михаил Непряхин: вот

79
00:12:34.850 --> 00:12:36.560
Михаил Непряхин: и короче говоря

80
00:12:37.850 --> 00:12:42.230
Михаил Непряхин: всех бесит что вот эти вот ифы когда Добавляются они

81
00:12:43.420 --> 00:12:48.840
Михаил Непряхин: аа Делают, код как бы тяжеловеснее потому Что больше срок Кода

82
00:12:49.480 --> 00:12:51.980
Михаил Непряхин: Ну а философия в Голову.

83
00:12:52.280 --> 00:12:53.230
Михаил Непряхин: И за

84
00:12:53.530 --> 00:12:55.940
Михаил Непряхин: вертикальности написания Кода

85
00:12:56.090 --> 00:12:59.840
Михаил Непряхин: то есть и как бы специально так Сделано

86
00:13:00.230 --> 00:13:06.970
Михаил Непряхин: и в Принципе поощряется чтобы вы не писали сложные инструкции конструкции

87
00:13:07.730 --> 00:13:10.590
Михаил Непряхин: аа, Компактно и вот как бы за один Раз,

88
00:13:10.730 --> 00:13:14.990
Михаил Непряхин: и лучше Всегда разбивать Что то сложное

89
00:13:15.440 --> 00:13:19.180
Михаил Непряхин: а на Мелкие декомпозировать на Мелкие части

90
00:13:19.330 --> 00:13:20.660
Михаил Непряхин: и

91
00:13:20.820 --> 00:13:37.240
Михаил Непряхин: хоть и срок кода будет больше Читаться оно будет быстрее то есть как бы философия гоу в скорости чтения потому что Кот мы чаще читаем чем, пишем во много Раз, он в десять Раз, чаще Мы Кот Читаем о чем Пишем и свой собственный и чужой и Поэтому

92
00:13:38.070 --> 00:13:42.220
Михаил Непряхин: Не стоит напрягаться из-за того что Там, частая Обработка ошибок

93
00:13:42.250 --> 00:13:54.700
Михаил Непряхин: Или Там такие проверки потому что во-первых вы все равно привыкаете к этому. Патрону к этому. Рифу и его начинаете ну, как бы фильтровать и вычленять самую суть

94
00:13:54.700 --> 00:14:03.800
Михаил Непряхин: что, суть здесь вот это а остальное Там можно даже и Не смотреть что, Там это как бы типа когда У нас что-то идет, Не Так А дальше смотрите Там То Что когда идет, Так

95
00:14:03.970 --> 00:14:07.110
Михаил Непряхин: вот То есть Чаще всего вифия после функции

96
00:14:08.450 --> 00:14:10.980
Михаил Непряхин: обрабатывается и

97
00:14:11.330 --> 00:14:14.830
Михаил Непряхин: то Что может идти Не Так это похоже на

98
00:14:15.410 --> 00:14:16.590
Михаил Непряхин: тайк кейдж

99
00:14:16.820 --> 00:14:18.950
Михаил Непряхин: конструкцию но

100
00:14:19.160 --> 00:14:20.220
Михаил Непряхин: здесь

101
00:14:20.630 --> 00:14:22.880
Михаил Непряхин: Ошибка в гоу

102
00:14:23.040 --> 00:14:31.990
Михаил Непряхин: а это официальное обычное значение это Возврат из Функций то есть У нас функции обычно возвышают кортеж из двух значений это само. Значение и Ошибку,

103
00:14:32.360 --> 00:14:38.680
Михаил Непряхин: вот и все ошибки обрабатываются ну в том Числе вот если у нас Булю во значения

104
00:14:38.880 --> 00:14:47.790
Михаил Непряхин: Например, возвращается из функции принято называть функцию начиная с из ну Типа Как вопрос типа из вот что-то там типа да нет

105
00:14:47.790 --> 00:15:03.530
Михаил Непряхин: типа ок, ок, и

106
00:15:03.950 --> 00:15:10.900
Михаил Непряхин: аа типа как каналы мапы еще что-то они возвращают а вот это булево значение

107
00:15:11.110 --> 00:15:13.900
Михаил Непряхин: и его принято писать ок,

108
00:15:14.260 --> 00:15:17.260
Михаил Непряхин: и проверять что если, вдруг не ок,

109
00:15:17.360 --> 00:15:19.480
Михаил Непряхин: То как-то обрабатывать

110
00:15:20.060 --> 00:15:21.850
Михаил Непряхин: вот так вот Ммм

111
00:15:23.050 --> 00:15:27.080
Михаил Непряхин: специально для тех кто кого, бесит, вот этот паттер этой конструкции

112
00:15:27.260 --> 00:15:29.610
Михаил Непряхин: если, возвращается одно, значение

113
00:15:30.000 --> 00:15:36.860
Михаил Непряхин: и дальше результат этой функции не обрабатывается, можно вот сюда вот поместить

114
00:15:37.950 --> 00:15:42.230
Михаил Непряхин: и получится Что У нас Не четыре строчки кода а три

115
00:15:44.730 --> 00:15:54.140
Михаил Непряхин: есть команды которые прямо вот типа ну запрещено это типа а есть команды Наоборот где если вы это не сделали то вам скажут нам так сделать

116
00:15:54.580 --> 00:16:00.560
Михаил Непряхин: я долгое время придерживался того Что вот это вот как ни крути читается проще

117
00:16:01.340 --> 00:16:02.980
Михаил Непряхин: а чем вот это вот

118
00:16:03.490 --> 00:16:10.900
Михаил Непряхин: вот Но уже привык к тому что в Принципе тоже как бы так довольно часто пишут и ну с этим надо просто смириться

119
00:16:11.070 --> 00:16:18.760
Михаил Непряхин: а иногда бывает что, здесь два значение возвращается допустим там Еще ошибка здесь можно прямо. Выражение записать там типа

120
00:16:19.040 --> 00:16:24.290
Михаил Непряхин: ошибка неравна нию и тут внутри еще что-то сделать

121
00:16:24.430 --> 00:16:25.940
Михаил Непряхин: то есть и

122
00:16:26.310 --> 00:16:32.320
Михаил Непряхин: это такой Сахар для того чтобы еще схлопнуть немножечко сделать строк Кода Поменьше

123
00:16:34.670 --> 00:16:37.070
Михаил Непряхин: вот чаще всего с ошибками Используют

124
00:16:38.630 --> 00:16:42.510
Михаил Непряхин: так М-м. Пройфу больше нечего говорить Со Свечами

125
00:16:42.650 --> 00:16:45.560
Михаил Непряхин: Давайте Про циклы посмотрим значит Что у нас с циклами

126
00:16:47.110 --> 00:16:58.470
Михаил Непряхин: аа в гоу всего лишь одно ключевое слово для Циклов а других Ключевых слов Нет то Есть нету лука там еще чего-то фор и фор а У вайла вайма нету лупа Нет то есть это просто фор

127
00:16:58.910 --> 00:17:04.060
Михаил Непряхин: а оно он может быть разный То есть вот если аргументов здесь никаких Нет

128
00:17:04.190 --> 00:17:05.849
Михаил Непряхин: То это бесконечный цикл

129
00:17:06.190 --> 00:17:16.250
Михаил Непряхин: и раз у нас бесконечный цикл То должно быть какое-то условие чтобы из него выйти и ключевое слово. Для Выхода из цикла, Фор это брейк

130
00:17:17.869 --> 00:17:20.750
Михаил Непряхин: а про брать Мы еще попозже поговорим потому что

131
00:17:21.190 --> 00:17:22.720
Михаил Непряхин: также брейк

132
00:17:23.470 --> 00:17:24.140
Михаил Непряхин: эээ

133
00:17:24.440 --> 00:17:27.700
Михаил Непряхин: а является ключевым словом для Выхода,

134
00:17:28.130 --> 00:17:29.250
Михаил Непряхин: допустим

135
00:17:37.730 --> 00:17:38.390
Михаил Непряхин: Ммм

136
00:17:38.550 --> 00:17:39.330
Михаил Непряхин: вот

137
00:17:40.820 --> 00:17:41.870
Михаил Непряхин: так и

138
00:17:42.960 --> 00:17:49.500
Михаил Непряхин: здесь у нас что ну сословие мог и я еще исключу своего континню то есть мы можем инвертировать

139
00:17:50.140 --> 00:17:55.380
Михаил Непряхин: можем условие сделать вот так вот типа по какому, условию мы выходим

140
00:17:55.510 --> 00:18:01.050
Михаил Непряхин: можем сделать инверсию можем сказать Что по Какому условию Мы продолжаем

141
00:18:01.170 --> 00:18:02.960
Михаил Непряхин: а Выходим Мы Допустим в конце

142
00:18:03.110 --> 00:18:09.710
Михаил Непряхин: и ну собственно говоря этим можете пользоваться для того чтобы как-то Облегчить чтение, от этого фора

143
00:18:11.920 --> 00:18:26.130
Михаил Непряхин: так для того чтобы вот так вот допустим если, у вас есть какой-то конкретный аккаунт вы можете соответственно сделать классический и вот этот вот сищный фор здесь у нас точкой запятой разделены условия и

144
00:18:26.300 --> 00:18:38.220
Михаил Непряхин: может не быть первого условия может не быть последние условия ну а если их обоих Нет То, как бы в Принципе этот цикл

145
00:18:38.490 --> 00:18:55.770
Михаил Непряхин: и здесь Можно точки запятой опустить и получается такой цикл типа как ив то есть пока здесь, тру мы крутимся и

146
00:18:56.010 --> 00:18:57.480
Михаил Непряхин: плюс один дело,

147
00:18:58.310 --> 00:18:59.160
Михаил Непряхин: вот

148
00:19:00.370 --> 00:19:01.340
Михаил Непряхин: так

149
00:19:03.200 --> 00:19:08.220
Михаил Непряхин: ну да вот можем ничего здесь, не объявить можем вынести вот это объявление за скобки

150
00:19:09.530 --> 00:19:12.760
Михаил Непряхин: Так здесь Что здесь я элементу правда Показал

151
00:19:14.540 --> 00:19:24.010
Михаил Непряхин: ну а это вот он с опущенными точками запятыми если, ни правого ни левого нет ээ секций то он просто превращается вот в такой вариант

152
00:19:25.720 --> 00:19:29.640
Михаил Непряхин: так можем иерироваться соответственно по

153
00:19:30.000 --> 00:19:32.970
Михаил Непряхин: с вайсом и по массивом

154
00:19:33.180 --> 00:19:34.470
Михаил Непряхин: и по

155
00:19:34.860 --> 00:19:40.020
Михаил Непряхин: значит смотрите вообще почему мы можем интегрироваться в гол, всего четыре варианта

156
00:19:40.910 --> 00:19:44.030
Михаил Непряхин: значит ну Первое это массив

157
00:19:45.560 --> 00:19:49.020
Михаил Непряхин: и свайс потому что послать сам массив

158
00:19:49.750 --> 00:19:57.890
Михаил Непряхин: а ну петь на самом деле еще сталинграда можем оперироваться по мапе по хошмапе можем игрорироваться по каналу

159
00:19:59.490 --> 00:20:03.440
Михаил Непряхин: и по стринге ну по страннке там

160
00:20:03.940 --> 00:20:10.620
Михаил Непряхин: с особенностями а ну кстати Сейчас в тренн городе, починили Сейчас По стринге можно контролироваться нормально По буку

161
00:20:10.780 --> 00:20:13.940
Михаил Непряхин: потому что Раньше по-моему рация строги была по Байтам

162
00:20:14.780 --> 00:20:17.520
Михаил Непряхин: так вот мы можем

163
00:20:17.690 --> 00:20:24.260
Михаил Непряхин: Заранее объявить какой то массив и по нему отвернулся Таким образом через, ключевое слово рэнч

164
00:20:24.610 --> 00:20:27.420
Михаил Непряхин: можем прямо, здесь писать

165
00:20:28.090 --> 00:20:36.860
Михаил Непряхин: свайся или массив По которому Хотим? Интеллигенции Тоже довольно часто Можно видеть допустим это удобно когда мы Хотим?

166
00:20:37.580 --> 00:20:38.720
Михаил Непряхин: Сделать

167
00:20:39.370 --> 00:20:40.740
Михаил Непряхин: а теперьтраи

168
00:20:40.830 --> 00:20:50.360
Михаил Непряхин: и Допустим мы хотим? Как-то чтобы у нас вот Это Количество Попыток Ну сервера все-таки пишем на ретро Я довольно часто приходится. Писать

169
00:20:50.400 --> 00:21:06.310
Михаил Непряхин: Сторонние библиотеки обычно Громоздкие сложные а вот часто надо будет, просто вам какую-то задержку сделать и вот допустим Первый Раз вы делаете задержку там одна секунда второй раз если допустим не прошло там пять секунд третий там пятнадцать секунд и там

170
00:21:06.690 --> 00:21:09.170
Михаил Непряхин: шестьдесят и там не знаю

171
00:21:09.770 --> 00:21:10.540
Михаил Непряхин: а и

172
00:21:11.260 --> 00:21:18.460
Михаил Непряхин: триста секунд как не так вот и Таким образом можно передать Это, и довольно компактно эту территорию сделать

173
00:21:18.650 --> 00:21:26.610
Михаил Непряхин: то есть чаще, всего для этого я вижу что бы это делали если, вам надо просто подряд вот Так, вот проигрырироваться пять Раз,

174
00:21:26.840 --> 00:21:34.950
Михаил Непряхин: то завезли сахаров еще буквально недавно завезли Сахар можно прямо вот здесь указать одно число и оно превратится в литератор

175
00:21:35.990 --> 00:21:40.060
Михаил Непряхин: единственный минус он будет контролироваться с ноля

176
00:21:41.570 --> 00:21:43.350
Михаил Непряхин: аа здесь можно Добавить

177
00:21:43.620 --> 00:21:47.790
Михаил Непряхин: а передачу вот этого вот То, Что Там он

178
00:22:04.330 --> 00:22:05.960
Михаил Непряхин: ну Или как-то по-другому делать

179
00:22:07.320 --> 00:22:10.790
Михаил Непряхин: аа ничего другого никакого. Сахара здесь Нет То, есть вот только так

180
00:22:11.160 --> 00:22:11.870
Михаил Непряхин: да

181
00:22:13.070 --> 00:22:28.710
Михаил Непряхин: так ну да можно черзай и

182
00:22:29.400 --> 00:22:34.710
Михаил Непряхин: если, Мы добавляем еще одну, перемену делаем две, перемены

183
00:22:35.020 --> 00:22:38.150
Михаил Непряхин: то то есть вот в этом случае Первое будет

184
00:22:38.470 --> 00:22:39.600
Михаил Непряхин: Индекс

185
00:22:39.950 --> 00:22:41.880
Михаил Непряхин: если мы посвайся и тренируемся

186
00:22:42.660 --> 00:22:50.220
Михаил Непряхин: если По маме и тренируемся то первым Значением будет Ключ если По Масситам По

187
00:22:50.400 --> 00:23:09.420
Михаил Непряхин: Каналу То просто значение будет но круж Там зависит от того Почему Мы иерируемся зависит что вы здесь получаете чаще всего интеллигенции по свайсу первое значение будет индекс то есть там ноль один два три четыре пять

188
00:23:09.730 --> 00:23:10.570
Михаил Непряхин: вот и

189
00:23:11.580 --> 00:23:13.730
Михаил Непряхин: если не хотим, выводить индекс

190
00:23:14.210 --> 00:23:27.460
Михаил Непряхин: то нужно обязательно то есть если допустим не использоваться У нас э в телецикла надо Делать нижнее Подчеркивание потому Что иначе, Голову. Отругаться прямо не Даст Комбировать Что

191
00:23:27.680 --> 00:23:31.880
Михаил Непряхин: мы объявили переменную, а Не используем ее

192
00:23:32.220 --> 00:23:42.800
Михаил Непряхин: это для тех кто приходит с динамических особенно языков висячая проблема. Когда будет что-нибудь пишете хотите, Быстренько затыбажить и

193
00:23:42.960 --> 00:24:01.030
Михаил Непряхин: как бы вам ни гошка Не даст скомпелировать программу и запустить ее если. Вы объявили какую-то переменную но ее Не используете ну то есть это на самом деле избавляет от целого Класса, ошибок вот этих вот когда вы либо просто какого-то мусора в коде

194
00:24:01.030 --> 00:24:05.170
Михаил Непряхин: а когда вы объявили Перемену и зачем Ты ее Не используете

195
00:24:05.170 --> 00:24:12.930
Михаил Непряхин: вот Но э сперва подвешивают потом быстро привыкайте ну и учитесь как. Бы как-то обходить как. Комментировать правильно

196
00:24:14.460 --> 00:24:15.770
Михаил Непряхин: так

197
00:24:17.740 --> 00:24:19.810
Михаил Непряхин: ну это я уже сказал да

198
00:24:19.910 --> 00:24:22.280
Михаил Непряхин: такой сахар начинается с ноля

199
00:24:23.200 --> 00:24:24.610
Михаил Непряхин: трантаун

200
00:24:27.570 --> 00:24:29.480
Михаил Непряхин: значит вот еще

201
00:24:29.930 --> 00:24:32.830
Михаил Непряхин: бывает такая проблема значит у нас цикл, в Цикле

202
00:24:33.270 --> 00:24:35.410
Михаил Непряхин: в Бесконечном Цикле у нас Еще Один цикл,

203
00:24:35.980 --> 00:24:39.360
Михаил Непряхин: и нам нужно выйти вот из Этого

204
00:24:39.660 --> 00:24:42.020
Михаил Непряхин: с самого верхнего цикла

205
00:24:42.320 --> 00:24:44.690
Михаил Непряхин: если мы просто заюзием брейк

206
00:24:45.580 --> 00:24:57.860
Михаил Непряхин: То Мы выйдем вот и решка показывает Мы выйдем из этого цикла, потому что брейк оон выходит со своего уровня вот на котором Мы Сейчас. Находимся то же самое Там селекти еще

207
00:24:58.070 --> 00:24:59.500
Михаил Непряхин: Ивода в циклифор

208
00:25:00.780 --> 00:25:02.080
Михаил Непряхин: Поэтому

209
00:25:03.110 --> 00:25:12.210
Михаил Непряхин: чтобы как-то Этим, управлять Куда Мы хотим, выйти вот Мы хотим, сюда выйти По брейку или хотим, сюда выйти значит есть метки

210
00:25:12.730 --> 00:25:16.690
Михаил Непряхин: это По Сути хищный оператор Гоу ту

211
00:25:17.200 --> 00:25:28.040
Михаил Непряхин: и как Раньше, программы, работали в Принципе как ассамблея работает что Мы просто ставим метку и

212
00:25:28.080 --> 00:25:41.010
Михаил Непряхин: и и

213
00:25:41.090 --> 00:25:53.710
Михаил Непряхин: то есть после цикла луп Не даст император, поставить то есть, как бы это ограниченное Использование только вот мы ставим метку рядышком То, есть, выше

214
00:25:53.930 --> 00:25:58.890
Михаил Непряхин: а строчки с циклом Куда мы хотим, прыгнуть То, есть как бы из Какого цикла Мы хотим, выйти

215
00:25:59.590 --> 00:26:06.060
Михаил Непряхин: и можно назвать как угодно это Не произвольное название я назвал лу можно назвать фор

216
00:26:06.590 --> 00:26:08.320
Михаил Непряхин: ну просто Одинаково должно быть

217
00:26:09.510 --> 00:26:25.320
Михаил Непряхин: а очень редкий Зверь и кто Не Знает такой Возможности Языка тот как-то Еще по-другому и

218
00:26:25.410 --> 00:26:39.710
Михаил Непряхин: и уже тогда брейк изю когда ты дал ненужную отметку но часто бывает красиво можно написать вот именно только Таким образом чтобы там лишние функции, не делать из допустимого острова кода а у Григорий почитался бы лучше

219
00:26:39.710 --> 00:26:53.640
Михаил Непряхин: то есть вы когда функцию сюда добавите вы заставляете человека прыгать, по Этой функции читая человек Кот потом бах, где Там, эта функция потом раз опять, в этот и как, бы у вас контекст немножко. Размывается а это позволяет контекст Держать Ммм

220
00:26:53.650 --> 00:26:55.900
Михаил Непряхин: Могу вкусировать внимание не распыляться,

221
00:26:57.490 --> 00:27:04.480
Михаил Непряхин: и второй пример Использования вот этот улег добавил. Мы как бы и

222
00:27:04.680 --> 00:27:11.990
Михаил Непряхин: вот это вот гоун разделен на такую на Две части да То есть как бы вот это просто базовое Использование языка

223
00:27:12.130 --> 00:27:26.010
Михаил Непряхин: и все что, связано с многопоточкой со синхронностью вот это все Мы это чуть Позже Будем смотреть но вот Оттуда из этой части Многопоточной вот есть конструкция селект

224
00:27:26.560 --> 00:27:41.460
Михаил Непряхин: и она похожа на свич потому. Что тоже имеет. Кейсы Но Только она работает с каналами Каналы это вообще такая чисто Гошная Абстракция каналов догошки нигде Не было ну что-то подобное было только

225
00:27:43.770 --> 00:27:47.530
Михаил Непряхин: забыл, как язык называться на котором написан кролик робит мкю

226
00:27:48.920 --> 00:27:52.950
Михаил Непряхин: кажется, что там тоже такой язык похожий на голову но вот кроме него

227
00:27:53.310 --> 00:27:54.070
Михаил Непряхин: он и

228
00:27:54.530 --> 00:27:55.310
Михаил Непряхин: час

229
00:28:00.720 --> 00:28:20.560
Михаил Непряхин: я Рванг, и

230
00:28:20.790 --> 00:28:30.140
Михаил Непряхин: вроде бы язык не мертв но он такой не в мейнстриме вот и есть такая же история короче Если Мы Без Метки, сделаем брейк

231
00:28:30.570 --> 00:28:44.970
Михаил Непряхин: То Мы Выйдем из Этой конструкции. А Если Мы Хотим? Выйти из цикла приходится добавлять Метку Причем ту же самую Метку Добавить не получится потому

232
00:28:46.000 --> 00:28:48.420
Михаил Непряхин: Нижней реги сторон тут короче

233
00:28:49.050 --> 00:28:50.760
Михаил Непряхин: считает Что это другое. Слово

234
00:28:54.720 --> 00:28:59.630
Михаил Непряхин: на выход будет после цикла даже если могу поставить до

235
00:29:02.120 --> 00:29:05.590
Михаил Непряхин: да ну если здесь поставить

236
00:29:05.790 --> 00:29:08.490
Михаил Непряхин: час если здесь поставить луп,

237
00:29:09.100 --> 00:29:15.580
Михаил Непряхин: он выйдет вот из этого цикла, ну то есть это поведение точно такое же какое мы до этого и получали и Без глупо

238
00:29:15.950 --> 00:29:18.960
Михаил Непряхин: то есть мы ставим метку

239
00:29:19.090 --> 00:29:22.170
Михаил Непряхин: допустим у нас еще один цикл, еще один цикл,

240
00:29:22.610 --> 00:29:24.810
Михаил Непряхин: и мы хотим, выйти, вот из всех

241
00:29:24.940 --> 00:29:27.160
Михаил Непряхин: тогда мы вот ставим вот прямо. Вот

242
00:29:27.430 --> 00:29:38.850
Михаил Непряхин: перед тем откуда мы хотим, выйти если, мы хотим, только вот из этого выйти а вот в этом продолжить крутиться ну ставим перед ним то, есть вот По сути вот такой простой функционал больше больше ничего Нет

243
00:29:47.770 --> 00:29:52.640
Михаил Непряхин: так часто Читаю Кот на Голову. Где называют Перемену одной буквы и насколько допустимо

244
00:29:53.470 --> 00:29:54.950
Михаил Непряхин: noise

245
00:29:55.450 --> 00:29:56.760
Михаил Непряхин: э

246
00:29:56.940 --> 00:29:58.560
Михаил Непряхин: да интересный вопрос

247
00:29:58.940 --> 00:30:00.670
Михаил Непряхин: э смотрите

248
00:30:01.340 --> 00:30:02.120
Михаил Непряхин: в и

249
00:30:03.810 --> 00:30:05.130
Михаил Непряхин: есть Две школы,

250
00:30:07.220 --> 00:30:09.210
Михаил Непряхин: еще лучше не делатьварные циклы,

251
00:30:09.780 --> 00:30:13.190
Михаил Непряхин: а ну Иногда невозможно или допустим

252
00:30:13.340 --> 00:30:22.090
Михаил Непряхин: воркеры это еще по сути конструкции из буркера вокер он просто у Него постоянно крутится ну и внутри тоже допустим селек нужен

253
00:30:23.210 --> 00:30:26.720
Михаил Непряхин: или ну редко. Но бывает когда это оправданно

254
00:30:27.800 --> 00:30:44.460
Михаил Непряхин: короче проны буквенные перемены это правда значит в голо Коде часто встречаются однобукленные перемены ну про ай я тут, ничего не Говорю как бы а это и индекс Или в циклифор а это общее употребимое если ай Занята то

255
00:30:44.520 --> 00:30:52.430
Михаил Непряхин: джой, если жизнь занята то Окей вот рессивер У Метода набукленной Всегда

256
00:30:53.120 --> 00:30:56.310
Михаил Непряхин: и короче чем ужас Коуп

257
00:30:56.680 --> 00:30:59.680
Михаил Непряхин: Тем и

258
00:30:59.950 --> 00:31:03.060
Михаил Непряхин: допустимы однобуквенные перемены

259
00:31:03.740 --> 00:31:16.380
Михаил Непряхин: то есть если, У нас тут такой коротенький скуп и я тут что-нибудь объявляю какую-нибудь переменную я могу ее назвать пэн и допустим где-нибудь здесь я там заиспользую

260
00:31:17.740 --> 00:31:23.260
Михаил Непряхин: аа но чем больше сколб допустим мы объявили перемену здесь

261
00:31:23.570 --> 00:31:26.680
Михаил Непряхин: а собираемся ее использовать где-нибудь вот здесь

262
00:31:27.070 --> 00:31:43.800
Михаил Непряхин: ну или мы ее здесь использовали здесь использовали понятно что, если. Вы хотите, перемену использовать где-то в конце и

263
00:31:44.330 --> 00:31:58.790
Михаил Непряхин: и если. Вы допустим объявили переменную какую-то и вы ее и здесь здесь использовали и потом здесь еще используете то пока человек дочитает до низа он уже забудет что то за н

264
00:31:58.930 --> 00:32:13.180
Михаил Непряхин: и да конечно в голову есть описать Это, очень хорошо Вы наводите Мышку, Вы видите что-то хоть такое но тем Не менее лучше в этом случае называть уже там намброс какой-нибудь то есть уже длинно называть

265
00:32:15.720 --> 00:32:20.150
Михаил Непряхин: вот чтобы когда вы видели видели пример что это нам, вас

266
00:32:20.650 --> 00:32:31.530
Михаил Непряхин: но опять, же по мере насмотренности есть люди которые прямо, Сейчас запрещают на буквуные перемены даже вот там если маленький узкий сколб

267
00:32:32.020 --> 00:32:43.720
Михаил Непряхин: а если, еды которые вообще запрещают типа вот Не терпят потому что ну опять пришли с какого-то языка где встречались вот с этим вот адом когда у вас много однобукных перемен

268
00:32:44.150 --> 00:32:49.550
Михаил Непряхин: значит первое правило когда чем меньше сколб тем больше допустимы там буквы на перемены

269
00:32:49.840 --> 00:32:51.150
Михаил Непряхин: второе правило

270
00:32:52.100 --> 00:32:56.260
Михаил Непряхин: у вас может быть домен какой-то он допустим домен

271
00:32:57.110 --> 00:33:02.150
Михаил Непряхин: ордер вот У вас там сервис занимается

272
00:33:02.440 --> 00:33:04.690
Михаил Непряхин: называется сервис ордер

273
00:33:06.610 --> 00:33:09.770
Михаил Непряхин: и Ну ордерами какими-то заказами Она занимается

274
00:33:10.240 --> 00:33:13.220
Михаил Непряхин: и У вас есть структура

275
00:33:14.410 --> 00:33:17.490
Михаил Непряхин: и соответственно так же открытием пишу

276
00:33:24.450 --> 00:33:31.450
Михаил Непряхин: а структура ордер она какая-то большая и она вот используется повсеместно

277
00:33:31.990 --> 00:33:39.030
Михаил Непряхин: и для облегчения ну просто делают, вот маленькое о это Всегда, ордер то есть,

278
00:33:39.220 --> 00:33:47.990
Михаил Непряхин: во всем. Сервисе постоянно используется этот ордер и тогда можно вот как бы и так понятно ужесточать букву это ордер

279
00:33:48.280 --> 00:33:59.670
Михаил Непряхин: но если Это не очевидное что Это такое То не называется но вообще вот эта вот Однобуквенная философия она довольно таки

280
00:34:00.140 --> 00:34:05.470
Михаил Непряхин: сложное и сложно рассказать как ее Уместно употреблять Только По насмотренностью

281
00:34:05.950 --> 00:34:22.860
Михаил Непряхин: в своих проектах Я довольно часто использую однобуквенные ну потому что как бы и

282
00:34:23.050 --> 00:34:37.040
Михаил Непряхин: и без Проблем читайте код с однобукольными. Переменами допустим У вас Там парочкой Ну обычно она одна Ну допустим Две У вас Там ездят на функцию набуквленной перемены если читайте без Проблем все нормально значит Окей

283
00:34:37.040 --> 00:34:50.190
Михаил Непряхин: если Вы понимаете что хрень какая-то непонятна надо Бы назвать подлиннее ну в следующий Раз, так не делайте да то есть как Бы вот Примерно такой рецепт но как правило все-таки

284
00:34:50.830 --> 00:34:53.880
Михаил Непряхин: принято в гошке называть

285
00:34:55.239 --> 00:35:02.670
Михаил Непряхин: м-м только ли северным, буквиным, и вот какие-то вот ну от кого-то я сказал какие случаи есть ли интернет это дело

286
00:35:02.860 --> 00:35:07.890
Михаил Непряхин: но он больше вредит на самом деле Чем, помогает

287
00:35:07.940 --> 00:35:17.290
Михаил Непряхин: и по Сути если, этот линтер включен то просто Всегда, длинными, ну однобуленные перемены не используют три Двух буквен

288
00:35:17.290 --> 00:35:29.880
Михаил Непряхин: вот ну и длинные тоже не принято называть То есть Если как бы вы приходите из джавы ну у нас вроде таких Нет ну в джаве например если вы видели квад Там принято очень длинное название перемены писать

289
00:35:30.290 --> 00:35:38.350
Михаил Непряхин: здесь это тоже не приветствуется потому что у нас еще есть Пакеты которые Тоже, участвуют ведь, вот в хм Например, да это пакет

290
00:35:38.720 --> 00:35:41.170
Михаил Непряхин: и Например, если у вас

291
00:35:41.870 --> 00:35:43.660
Михаил Непряхин: вот такая ситуация, была бы

292
00:35:45.550 --> 00:36:00.120
Михаил Непряхин: ну, Тут как бы не в тему и

293
00:36:00.250 --> 00:36:03.600
Михаил Непряхин: укротить название функций и переменных

294
00:36:06.100 --> 00:36:07.100
Михаил Непряхин: так

295
00:36:09.460 --> 00:36:17.430
Михаил Непряхин: а так сережа может блокировать и стараться по его форму какой в ней смысл в таком исполнении и тогда можно прозвучать Канал и ждать от нее всеного

296
00:36:21.970 --> 00:36:23.770
Михаил Непряхин: это для контекста

297
00:36:23.940 --> 00:36:29.020
Михаил Непряхин: то есть ээ вы здесь у вас здесь контекст дан

298
00:36:29.690 --> 00:36:30.400
Михаил Непряхин: ну

299
00:36:30.710 --> 00:36:31.790
Михаил Непряхин: вот так короче

300
00:36:31.900 --> 00:36:42.500
Михаил Непряхин: и вы в цикле крутитесь и в этом случае ну вы не можете просто так выйти вы селигте так и останетесь Поэтому

301
00:36:42.640 --> 00:36:44.500
Михаил Непряхин: это вам может понадобиться

302
00:36:44.630 --> 00:36:48.370
Михаил Непряхин: то есть это узкий кейс все не то Что Хорошие, Правды

303
00:36:48.490 --> 00:36:51.650
Михаил Непряхин: многие вообще не Знают Про ту метку и обходятся без нее

304
00:36:53.510 --> 00:36:54.400
Михаил Непряхин: так вот

305
00:36:54.510 --> 00:36:56.610
Михаил Непряхин: А дальше по структуры

306
00:36:58.500 --> 00:37:01.910
Михаил Непряхин: А ей Про опыт тут же поговорим значит

307
00:37:02.330 --> 00:37:09.520
Михаил Непряхин: структуру если, называется с маленькой буквы. Приватная с большой, публичная вот У меня приватная структура

308
00:37:09.860 --> 00:37:11.500
Михаил Непряхин: а квассов гол. Нет

309
00:37:11.630 --> 00:37:14.070
Михаил Непряхин: соответственно здесь все

310
00:37:14.710 --> 00:37:17.160
Михаил Непряхин: построено на том что

311
00:37:18.680 --> 00:37:22.280
Михаил Непряхин: вот это вот метод так обозначается но это сахар

312
00:37:23.050 --> 00:37:28.210
Михаил Непряхин: по большому счету в Голову. Как бы оп официального нет потому что классов нет

313
00:37:28.440 --> 00:37:32.030
Михаил Непряхин: а есть только структуры и функции.

314
00:37:32.550 --> 00:37:38.660
Михаил Непряхин: Но есть особый синтаксис который позволяет ассоциировать

315
00:37:39.050 --> 00:37:50.000
Михаил Непряхин: конкретную функцию с каким-то типом ну со структурой не обязательно структура можно ассоциировать сделать метод и у обычного, Янта

316
00:37:51.130 --> 00:37:55.280
Михаил Непряхин: вот То есть вы можете сделать Тайп инт

317
00:37:56.600 --> 00:37:57.300
Михаил Непряхин: а и

318
00:37:57.800 --> 00:38:00.630
Михаил Непряхин: а юзер, но сьюзер,

319
00:38:02.750 --> 00:38:08.060
Михаил Непряхин: вот и в Принципе как бы вот это уже получается метод у Инта

320
00:38:09.470 --> 00:38:12.190
Михаил Непряхин: она вот ну чаще всего Конечно все таки у структуры бывает

321
00:38:13.140 --> 00:38:14.330
Михаил Непряхин: он и

322
00:38:15.280 --> 00:38:17.570
Михаил Непряхин: значит вот эта часть называется ресивер

323
00:38:18.770 --> 00:38:24.530
Михаил Непряхин: а это очень похоже на то как в других языках вот здесь вот

324
00:38:24.780 --> 00:38:27.120
Михаил Непряхин: использует например, слово, здесь

325
00:38:27.500 --> 00:38:35.060
Михаил Непряхин: и ну и вот это было бы вот так вот просто, в голод вынесли вот сюда опять же решение, такое других как такого Нет

326
00:38:35.420 --> 00:38:38.100
Михаил Непряхин: но только вот это вот не принято называть

327
00:38:38.780 --> 00:38:39.930
Михаил Непряхин: длинно

328
00:38:40.040 --> 00:38:42.670
Михаил Непряхин: здесь обычно одна Буква

329
00:38:43.020 --> 00:38:53.020
Михаил Непряхин: на ней обычно она начинается по как у вас называться типа с какой буквы Есть ли у вас допустим тип, даже из двух слов называется юозер

330
00:38:54.000 --> 00:39:03.680
Михаил Непряхин: то здесь все равно не принято называть юен вот так вот то есть все равно будет только либо ю либо н

331
00:39:04.390 --> 00:39:06.070
Михаил Непряхин: и это

332
00:39:06.320 --> 00:39:10.640
Михаил Непряхин: это непривычно потому что если у вас было здесь эс то конечно

333
00:39:10.820 --> 00:39:17.870
Михаил Непряхин: у вас Всегда, было здесь а здесь поучаться в голову в зависимости от того какая структура какую букву здесь сделали, вот такую букву здесь используете

334
00:39:18.200 --> 00:39:26.210
Михаил Непряхин: вот и это Всегда одна. Буква то есть здесь длинные Не пишутся это сразу виднокушник Не гожник если здесь начинает какой-то длинный Россию быть

335
00:39:27.010 --> 00:39:29.790
Михаил Непряхин: значит как надо про это думать

336
00:39:30.490 --> 00:39:31.850
Михаил Непряхин: на самом деле

337
00:39:32.070 --> 00:39:34.240
Михаил Непряхин: это первый аргумент функции.

338
00:39:35.150 --> 00:39:37.710
Михаил Непряхин: То есть вот смотрите мы можем принять

339
00:39:38.180 --> 00:39:39.370
Михаил Непряхин: а Функцию

340
00:39:40.140 --> 00:39:43.100
Михаил Непряхин: этот самый. Юзер, первым аргументом

341
00:39:43.500 --> 00:39:47.070
Михаил Непряхин: и ну вот эта переменная да а это тип

342
00:39:47.960 --> 00:39:55.990
Михаил Непряхин: и как видите даже как бы ничего и не поменялось ну кроме того что немножко, сломался этот ну вот в этом случае

343
00:39:56.370 --> 00:39:59.670
Михаил Непряхин: то вот так Было бы тут, мы ее принимаем

344
00:40:00.050 --> 00:40:01.450
Михаил Непряхин: вот и все работает

345
00:40:04.320 --> 00:40:06.150
Михаил Непряхин: То есть просто Запомните

346
00:40:06.360 --> 00:40:08.850
Михаил Непряхин: что когда вы Видите вот это вот

347
00:40:09.370 --> 00:40:14.000
Михаил Непряхин: да это называют методом У типа

348
00:40:14.110 --> 00:40:26.230
Михаил Непряхин: У структуры но это по Сути просто функция ассоциированная Сахар. Сделан для Ассоциации с этим Типом

349
00:40:26.880 --> 00:40:30.520
Михаил Непряхин: но По большому счету это просто первый аргумент от Этой функции.

350
00:40:31.930 --> 00:40:36.540
Михаил Непряхин: Потом начинается еще такая История посмотреть на

351
00:40:37.740 --> 00:40:40.260
Михаил Непряхин: Указатели здесь появляется указатель

352
00:40:41.040 --> 00:40:42.320
Михаил Непряхин: и

353
00:40:43.050 --> 00:40:48.340
Михаил Непряхин: тут. Еще становится все сложнее потому Что Человек Смотрит какая Разница с указателем без указателя

354
00:40:48.610 --> 00:40:49.930
Михаил Непряхин: и и

355
00:40:50.190 --> 00:40:57.660
Михаил Непряхин: а здесь смотрите здесь тем не менее мы так и Продолжаем с этим работать потому Что здесь автоматически тоже сахар идет, для

356
00:40:57.980 --> 00:41:04.860
Михаил Непряхин: то есть и на самом деле если у нас тут указатель то тут Россию, он вот так вот принимается

357
00:41:04.990 --> 00:41:07.440
Михаил Непряхин: все вот это тожевалидный синтаксис на самом деле

358
00:41:08.060 --> 00:41:12.160
Михаил Непряхин: и оно Автоматически работает то есть вот это вот не надо писать гоу

359
00:41:13.210 --> 00:41:16.260
Михаил Непряхин: а то есть оно вот так вот Автоматически разменовывается

360
00:41:16.730 --> 00:41:25.350
Михаил Непряхин: вот но когда вы понимаете что ага на самом деле это первый аргумент вот такие а ну в Принципе так Оно уже и понятно, Что это такое

361
00:41:25.590 --> 00:41:27.100
Михаил Непряхин: значит Поэтому Не Пугайтесь

362
00:41:28.070 --> 00:41:42.360
Михаил Непряхин: просто перемещайте его первым аргументом Ну как Бы первым аргументом на самом деле как Бы У Него Разница в том что Мы тогда У нас Появляется возможность вот Так Вот Как метод использовать вот Но Мы про это еще Тоже. Поговорим

363
00:41:43.610 --> 00:41:51.640
Михаил Непряхин: так ну вот мы объявили значит тут у, нас э шаблон типа как бы здесь мы его инициализируем

364
00:41:51.900 --> 00:42:02.480
Михаил Непряхин: есть Два варианта мы можем сразу заницировать вот через Круглые скобки через литературы можем объявить пустую структуру

365
00:42:05.070 --> 00:42:10.710
Михаил Непряхин: вот Таким вот образом, а дальше уже через, точку вот собственно вот Это, вот все Присвоить

366
00:42:11.810 --> 00:42:28.080
Михаил Непряхин: ну так не принято то есть если вы сразу понимаете что, вы можете объявить здесь то обычно делают, так и еще Есть Это второй вариант да еще Есть третий вариант короче делаете через. Вар двоеточие убираете и У вас структура получается Зеровелью

367
00:42:28.470 --> 00:42:32.370
Михаил Непряхин: но Зеро Валью структуры это

368
00:42:33.470 --> 00:42:36.710
Михаил Непряхин: структура инициатизированная всеми, полями

369
00:42:36.980 --> 00:42:43.110
Михаил Непряхин: просто все поля тоже зероаль уинта это ноль остринги пустая строка

370
00:42:43.290 --> 00:42:44.520
Михаил Непряхин: винтаноль

371
00:42:44.740 --> 00:42:45.610
Михаил Непряхин: вот

372
00:42:46.650 --> 00:42:47.540
Михаил Непряхин: он и

373
00:42:47.770 --> 00:42:53.720
Михаил Непряхин: Опять же тут же по насмотренности потом поймете когда, что, используют ну, как бы вот три способа

374
00:42:54.870 --> 00:42:58.490
Михаил Непряхин: опять, же это типа когда, Говорят, что, вот

375
00:42:59.140 --> 00:43:09.730
Михаил Непряхин: одним способом только можно сделать одну вещь все-таки есть тут Небольшая вариативность Но она скорее сделана как сахар то есть там неудобство потому что в некоторых Ситуациях Так удобнее делать Некоторых Так

376
00:43:10.930 --> 00:43:12.590
Михаил Непряхин: а Так мы вызываем метод

377
00:43:12.810 --> 00:43:15.130
Михаил Непряхин: присвоим в переменную печатаем

378
00:43:17.660 --> 00:43:18.410
Михаил Непряхин: да

379
00:43:18.730 --> 00:43:19.900
Михаил Непряхин: дальше

380
00:43:20.070 --> 00:43:21.660
Михаил Непряхин: такая интересная особенность

381
00:43:21.910 --> 00:43:27.080
Михаил Непряхин: значит э есть такое понятие как Выравнивание

382
00:43:27.380 --> 00:43:29.410
Михаил Непряхин: Выравнивание или паддинг

383
00:43:30.770 --> 00:43:42.530
Михаил Непряхин: что это такое значит когда вы видите структуру в гоу То в памяти когда структура будет инициатива и помещена в память как переменная

384
00:43:43.000 --> 00:43:52.160
Михаил Непряхин: вот эти вот поля они Реально будут находиться в памяти друг За другом то есть как вы видите структуру так оно и в памяти и будет

385
00:43:53.460 --> 00:43:57.710
Михаил Непряхин: и все так же то есть это сделано по поводу Би си

386
00:43:59.020 --> 00:44:01.140
Михаил Непряхин: а но минус в том

387
00:44:01.560 --> 00:44:04.040
Михаил Непряхин: что так как у нас

388
00:44:04.240 --> 00:44:10.400
Михаил Непряхин: шестидесяти четырех безразрядная система ну мы работаем на шестидесяти четырехразрядных системах

389
00:44:10.990 --> 00:44:12.250
Михаил Непряхин: а То

390
00:44:12.360 --> 00:44:14.230
Михаил Непряхин: у нас Возникает

391
00:44:14.350 --> 00:44:29.100
Михаил Непряхин: такая штука как паддинг Выравнивание потому Что инструкция ну То есть как бы процесса рон Читает словами мышиными словами и если Мы поместили например десять четыре байта

392
00:44:30.060 --> 00:44:39.510
Михаил Непряхин: То они все равно будут занимать восемь бай потому что они выравниваются по восемь бай

393
00:44:41.440 --> 00:44:42.690
Михаил Непряхин: Поэтому

394
00:44:42.860 --> 00:45:01.420
Михаил Непряхин: вот эта вот структура она Могла бы, и

395
00:45:02.010 --> 00:45:06.630
Михаил Непряхин: а двадцать четыре байта да но это не так на самом деле она будет тридцать два байтом

396
00:45:07.370 --> 00:45:10.880
Михаил Непряхин: вот можно вот Этой функции посмотреть ансев сайзов

397
00:45:11.120 --> 00:45:11.830
Михаил Непряхин: Ммм

398
00:45:12.330 --> 00:45:15.330
Михаил Непряхин: Она Показывает Сколько

399
00:45:15.700 --> 00:45:20.730
Михаил Непряхин: структура объект занимает на стеке

400
00:45:22.190 --> 00:45:38.860
Михаил Непряхин: Поэтому если мы печемся о памяти ну опять. Же смотрите я вам это рассказываю потому что иногда бывает это важно Понятно, что чаще всего Мы пишем программы. Не под высокий рпц то есть Там Хайлот на голову ну, Мне кажется, Там процентов пять

401
00:45:39.120 --> 00:45:50.010
Михаил Непряхин: Пишется ну понятно, Что если. Вы работаете в больших Компаниях Там маркет Пейзаж Там Побольше Хайево Да Но все равно Тем Не менее Как бы хайву встречаться редко то есть редко приходит думать, о памяти

402
00:45:50.140 --> 00:45:53.130
Михаил Непряхин: но эти Вопросы, могут задать на собеседник

403
00:45:54.130 --> 00:45:57.690
Михаил Непряхин: и это балун все Популяризирует, и Поэтому тоже

404
00:45:58.100 --> 00:46:02.350
Михаил Непряхин: у нас собеседник, появляются эти Вопросы, и в целом просто для себя неплохо знать

405
00:46:02.580 --> 00:46:04.860
Михаил Непряхин: что если, у вас

406
00:46:05.480 --> 00:46:13.270
Михаил Непряхин: важно у вас много Одинаковых структур вы Хотите, чтобы не меньше занимали место азтеки но вы Хотите, чтобы они были на Стыке

407
00:46:13.790 --> 00:46:18.210
Михаил Непряхин: структуры самые большие, нужно помещать наверх

408
00:46:18.910 --> 00:46:31.730
Михаил Непряхин: и тогда получается интересная штука что у вас вот Эти, вот четыре байта они уже не будут потреблять лишние четыребайта каждый потому что, они выровняются

409
00:46:32.240 --> 00:46:35.480
Михаил Непряхин: и структура правды будет двадцать четыре. Байта

410
00:46:37.090 --> 00:46:39.700
Михаил Непряхин: аа то же самое например,

411
00:46:40.090 --> 00:46:43.130
Михаил Непряхин: с булом посмотрите бум это один байт

412
00:46:44.410 --> 00:46:53.590
Михаил Непряхин: но вот в этом случае он займет восемь бай потому, что будет выровня вот по этому поводу потому, что это тридцать восемь байден,

413
00:46:53.810 --> 00:46:56.230
Михаил Непряхин: и структура будет заменять шестнадцать бай

414
00:46:56.670 --> 00:47:01.630
Михаил Непряхин: ну например, если вы здесь поместите четыре байта

415
00:47:01.790 --> 00:47:03.360
Михаил Непряхин: аа тип

416
00:47:03.540 --> 00:47:09.310
Михаил Непряхин: то он же выровняется по четырем Байтам ну вот такая особенность либо короче Мы По восемь в Раннем, Или По четыре

417
00:47:09.730 --> 00:47:15.270
Михаил Непряхин: Но например, еще такая История Есть ли У вас много булов

418
00:47:16.710 --> 00:47:18.410
Михаил Непряхин: Допустим,

419
00:47:20.080 --> 00:47:21.850
Михаил Непряхин: вот здесь Давайте Добавим,

420
00:47:23.030 --> 00:47:31.120
Михаил Непряхин: а вот этого Тоже, будут Занимать восемь байден, потому что, У вас все Они выровняются и

421
00:47:33.210 --> 00:47:37.740
Михаил Непряхин: Давайте Запустим, Так Размер структуры юзер, четыре Я хочу посмотреть

422
00:47:39.710 --> 00:47:41.150
Михаил Непряхин: в ответе восемь, Бай

423
00:47:42.870 --> 00:47:54.720
Михаил Непряхин: То есть Выравнивание работа Таким как бы способом когда вы с Этим немножко работаете то Вы как бы там какую То логику начинаете замечать как оно как лучше сделать И так далее

424
00:47:55.190 --> 00:48:07.970
Михаил Непряхин: так в целом надо просто, об этом знать что есть такое понятие есть такое явление как Выравнивание что структура представлена в памяти в том же порядке Поля находится как вы видите

425
00:48:08.970 --> 00:48:23.480
Михаил Непряхин: например, у власти автоматический паддинг и это тоже как Будто бы вроде плюсы есть что мы экономим на памяти но мы часто Хотим? И Контролировать это чтобы и

426
00:48:23.970 --> 00:48:27.600
Михаил Непряхин: в памяти Мы получаем То же самое что Мы видим

427
00:48:28.360 --> 00:48:29.270
Михаил Непряхин: а вот

428
00:48:29.480 --> 00:48:30.680
Михаил Непряхин: и я

429
00:48:30.810 --> 00:48:33.090
Михаил Непряхин: если вы хотите,

430
00:48:35.290 --> 00:48:36.540
Михаил Непряхин: оптимизацию

431
00:48:37.560 --> 00:48:53.540
Михаил Непряхин: большую самую большую короче сортируйте чем больше занимает Аа тип в памяти тем вы его помещаете выше и чем меньше тем ниже то есть стрилинг Всегда, будет вверху слайся Забо. Отверху Ума повседневзу,

432
00:48:56.120 --> 00:49:03.820
Михаил Непряхин: а если

433
00:49:04.430 --> 00:49:07.170
Михаил Непряхин: вот если здесь будет ну

434
00:49:07.710 --> 00:49:12.390
Михаил Непряхин: так ну вот здесь так Сейчас Давайте подумаем допустим четыре Бата четыре Байта

435
00:49:12.780 --> 00:49:18.710
Михаил Непряхин: ну, он срочно триба это займет потому что он все равно Выровняется по четыре Байта у Меня, такой прогноз давайте провером

436
00:49:20.210 --> 00:49:37.030
Михаил Непряхин: Нет господи еще двенадцать ну, вот здесь он вырвался типа вот Это занимает восемь и в этого и Это выровнялось По восьми, То Есть видя как Бы Я вот Даже, вот Не угадал То Есть потому Что Не Очевидно Что вот эта, ситуация, Она дает двенадцать

437
00:49:37.890 --> 00:49:39.880
Михаил Непряхин: Нет все нормально что За

438
00:49:41.380 --> 00:49:43.240
Михаил Непряхин: чудо У Меня, там Не, То запустилось что ли

439
00:49:43.440 --> 00:49:47.500
Михаил Непряхин: двенадцать да все правильно правильно сказал Саду короче

440
00:49:48.270 --> 00:49:50.380
Михаил Непряхин: выровняется по Четырем байтам

441
00:49:51.220 --> 00:49:57.360
Михаил Непряхин: вот а если Но если стренка будет то Тоже, выравняется по Восьми

442
00:49:58.410 --> 00:50:05.090
Михаил Непряхин: то есть, здесь будет восемь значит будет шестнадцать плюс восемь двадцать четыре год но тебе хорошо

443
00:50:05.230 --> 00:50:12.110
Михаил Непряхин: да двадцать четыре вот короче Это не партия не надо там Это как бы учить просто смысл в том что надо было взять

444
00:50:12.580 --> 00:50:21.160
Михаил Непряхин: если пойнтер спонтан что такое поинтер это восемь байд то есть поинтер в шестидесяти четырех разрядной системе это обычный ин,

445
00:50:21.990 --> 00:50:26.190
Михаил Непряхин: восемь бай Поэтому если она здесь будет, поинтер давайте, добавим

446
00:50:27.260 --> 00:50:28.010
Михаил Непряхин: в и

447
00:50:29.290 --> 00:50:33.970
Михаил Непряхин: допустим ира ира это интерфейсы в него взировали

448
00:50:34.290 --> 00:50:35.020
Михаил Непряхин: я

449
00:50:35.280 --> 00:50:36.110
Михаил Непряхин: нил

450
00:50:36.260 --> 00:50:43.550
Михаил Непряхин: вот он будет соответственно восемь бай и Мы это все Выровняем До шестнадцати но Давайте проверим

451
00:50:46.020 --> 00:50:47.270
Михаил Непряхин: два четыре,

452
00:50:47.430 --> 00:50:52.400
Михаил Непряхин: а интерфейс это Не, это Не, пойнтер Это же шестнадцать пальцев

453
00:50:53.050 --> 00:50:55.180
Михаил Непряхин: Это два поинтера

454
00:50:55.770 --> 00:50:57.020
Михаил Непряхин: Так Сейчас надо

455
00:50:59.020 --> 00:51:00.260
Михаил Непряхин: Давайте заведем,

456
00:51:01.540 --> 00:51:03.350
Михаил Непряхин: тай и

457
00:51:09.700 --> 00:51:19.440
Михаил Непряхин: возьму пустую Возьмем пустую структуру и вот Это поле Будет указатель на Эту пустую структуру Вот Это точно восемь бай

458
00:51:19.920 --> 00:51:21.880
Михаил Непряхин: восемь восемь Шестнадцать Вот

459
00:51:22.650 --> 00:51:23.550
Михаил Непряхин: Вот

460
00:51:30.320 --> 00:51:36.340
Михаил Непряхин: так По идее Можно сдать, структуру с Восьми Булевыми. Полями и подбай да на

461
00:51:36.990 --> 00:51:37.920
Михаил Непряхин: верно

462
00:51:38.060 --> 00:51:41.110
Михаил Непряхин: так если хочется Попробовать то можно сделать Там Мое предложение

463
00:51:41.720 --> 00:51:44.870
Михаил Непряхин: если хочется упороться то

464
00:51:45.990 --> 00:51:47.470
Михаил Непряхин: можете

465
00:51:48.980 --> 00:51:50.840
Михаил Непряхин: вообще сделать

466
00:51:52.710 --> 00:51:54.220
Михаил Непряхин: смотрите

467
00:51:54.680 --> 00:51:58.440
Михаил Непряхин: так а иди битва Можно сделать

468
00:51:58.550 --> 00:52:02.820
Михаил Непряхин: так вот делайте бетмапу делайте инт восемь

469
00:52:03.650 --> 00:52:05.980
Михаил Непряхин: вот это будет один пайт

470
00:52:06.440 --> 00:52:10.850
Михаил Непряхин: аа и Займет место один бэйт ну смотрите займет место один байт

471
00:52:11.200 --> 00:52:21.450
Михаил Непряхин: но каждый вид вы будете использовать как флажок була вас будет занимать один байт а информации будет как Будто. Восемь Булевых замечаний

472
00:52:22.040 --> 00:52:23.420
Михаил Непряхин: Не Слепой Ни о чемме

473
00:52:24.760 --> 00:52:28.730
Михаил Непряхин: Хочу пароваться. Тут Можно прям До битов да

474
00:52:29.830 --> 00:52:31.600
Михаил Непряхин: так в Давайте Сделаем перерыв

475
00:52:32.520 --> 00:52:34.040
Михаил Непряхин: Две Троночки

476
00:52:34.240 --> 00:52:35.230
Михаил Непряхин: дыхнем

477
00:57:14.320 --> 00:57:18.360
Михаил Непряхин: так Проравнивание вопрос еще так по четыре. Бата

478
00:57:19.220 --> 00:57:22.560
Михаил Непряхин: а Будет выравниваться, в тридцати двухбитных системах

479
00:57:22.680 --> 00:57:30.370
Михаил Непряхин: а по восемь, шестьдесят четырех бедных да Нет видите там вот ну, понятно, что в тридцати Двух в битных

480
00:57:30.760 --> 00:57:40.820
Михаил Непряхин: вообще и

481
00:57:40.950 --> 00:57:44.670
Михаил Непряхин: мы Всегда, можем говорить про шестидесяти четырехбитное а

482
00:57:44.940 --> 00:57:46.450
Михаил Непряхин: а вот здесь,

483
00:57:46.800 --> 00:57:56.350
Михаил Непряхин: где То у Меня пример был Вот по четыре, байта выровнялась а уйти с вити тоже четыре, четыре, выровнялась То есть как бы Ммм

484
00:57:56.510 --> 00:58:02.940
Михаил Непряхин: зависит от того что там предыдущее какое значение то есть в этом случае видите по четыре бронировать в этом по восемь уровня воспитанного

485
00:58:04.770 --> 00:58:11.850
Михаил Непряхин: там какие-то есть правила ну их много ну это может их волна посмотреть он там про как, Рассказывал по-моему есть про этот

486
00:58:16.420 --> 00:58:17.720
Михаил Непряхин: да круче

487
00:58:18.300 --> 00:58:19.870
Михаил Непряхин: и по четыре по восемь

488
00:58:20.520 --> 00:58:21.790
Михаил Непряхин: дальше

489
00:58:24.360 --> 00:58:25.980
Михаил Непряхин: Что еще про структуры

490
00:58:26.560 --> 00:58:30.300
Михаил Непряхин: значит есть у нас ээ два варианта

491
00:58:31.360 --> 00:58:33.480
Михаил Непряхин: Встраивание наверняка

492
00:58:33.920 --> 00:58:34.960
Михаил Непряхин: как сказать

493
00:58:36.670 --> 00:58:39.090
Михаил Непряхин: вот ситуация, мы Хотим,

494
00:58:39.380 --> 00:58:40.820
Михаил Непряхин: на две Структуры

495
00:58:41.640 --> 00:58:43.170
Михаил Непряхин: и мы Хотим?

496
00:58:43.610 --> 00:58:47.600
Михаил Непряхин: Эту структуру Использовать вот у нас структура эпл! Есть

497
00:58:48.330 --> 00:58:49.830
Михаил Непряхин: какой там привод

498
00:58:50.280 --> 00:58:53.860
Михаил Непряхин: мы Хотим? Ее использовать внутри Структуры банана

499
00:58:54.670 --> 00:58:56.530
Михаил Непряхин: как, бы Обернуть ее хотим,

500
00:58:57.090 --> 00:59:02.360
Михаил Непряхин: Этот тип может быть Не, Нашим например, каким То чужим но Нам Вот он Нужен

501
00:59:03.240 --> 00:59:05.070
Михаил Непряхин: наследований в Гоу нету

502
00:59:05.180 --> 00:59:10.870
Михаил Непряхин: ну понятно по каким причинам исследований нету потому что Наследование жести приносит больше придачу пользы

503
00:59:11.640 --> 00:59:23.950
Михаил Непряхин: аа ну и просто кручу философия такая что Наследование дискредитировался больше всего Вреда по запутыванию. Козы мне кажется, пронесло именно Наследование Поэтому в гой его просто убрали

504
00:59:24.270 --> 00:59:29.020
Михаил Непряхин: но надо ведь, как-то что-то подобное Иметь,

505
00:59:29.620 --> 00:59:32.350
Михаил Непряхин: и Вот у нас Есть два варианта чтобы Иметь,

506
00:59:32.540 --> 00:59:36.760
Михаил Непряхин: подобное поведение первый, вариант называется композиция

507
00:59:37.650 --> 00:59:48.080
Михаил Непряхин: когда мы называем тип тут ведь мы его называем называем эпл и ну а это Уже название типа теп-пу новосибир

508
00:59:48.300 --> 00:59:49.150
Михаил Непряхин: тайп

509
00:59:51.040 --> 00:59:51.910
Михаил Непряхин: дакот

510
00:59:53.910 --> 00:59:57.190
Михаил Непряхин: вот Мы его сделали Композицию

511
00:59:57.830 --> 01:00:03.780
Михаил Непряхин: и второй вариант Мы можем сделать Мбдинг Встраивание

512
01:00:03.930 --> 01:00:06.000
Михаил Непряхин: салют вот это называется Джеймбединг

513
01:00:07.410 --> 01:00:11.110
Михаил Непряхин: Сейчас То, есть мы прям сам тип Встроили.

514
01:00:11.540 --> 01:00:12.510
Михаил Непряхин: И и

515
01:00:12.640 --> 01:00:14.010
Михаил Непряхин: а в чем Разница

516
01:00:14.160 --> 01:00:17.090
Михаил Непряхин: ну вот здесь вот когда у нас

517
01:00:18.540 --> 01:00:19.420
Михаил Непряхин: мып

518
01:00:19.540 --> 01:00:20.770
Михаил Непряхин: внутри

519
01:00:20.900 --> 01:00:22.590
Михаил Непряхин: просто имеем поле

520
01:00:23.290 --> 01:00:25.460
Михаил Непряхин: а это поле вот эта. Структура

521
01:00:25.650 --> 01:00:30.660
Михаил Непряхин: и оно в памяти будут представлены просто типа подряд идущие байты То есть

522
01:00:31.030 --> 01:00:35.950
Михаил Непряхин: вот а Мы по-моему доведутчи потому что То что Там Внутри и так, далее

523
01:00:37.480 --> 01:00:42.550
Михаил Непряхин: с мейбедингом То же самое на самом деле но просто они себя ведут по разному

524
01:00:43.740 --> 01:00:50.050
Михаил Непряхин: и если вы не хотите, наделять вот эту структуру свойствами эпл,

525
01:00:50.570 --> 01:00:52.870
Михаил Непряхин: то вы делаете Так

526
01:00:53.610 --> 01:01:00.610
Михаил Непряхин: а если вы хотите, получить нечто похожее на Наследование вы делаете Мбединг

527
01:01:01.000 --> 01:01:02.920
Михаил Непряхин: в случае мбддинга

528
01:01:03.070 --> 01:01:04.070
Михаил Непряхин: У вас

529
01:01:04.480 --> 01:01:05.790
Михаил Непряхин: а Методы

530
01:01:07.290 --> 01:01:09.180
Михаил Непряхин: можно переопределить Методы

531
01:01:10.270 --> 01:01:12.030
Михаил Непряхин: то Есть если

532
01:01:12.230 --> 01:01:17.460
Михаил Непряхин: анна вот дальше Поговорим да тут, пока Про структуры значит

533
01:01:18.370 --> 01:01:21.160
Михаил Непряхин: Сейчас Сейчас посмечу я Хотел сказать

534
01:01:25.350 --> 01:01:27.410
Михаил Непряхин: так. Ничего интересного

535
01:01:27.800 --> 01:01:33.530
Михаил Непряхин: так. Вот Мы создаем ээпал с боеводом говорим что

536
01:01:33.750 --> 01:01:37.660
Михаил Непряхин: этот эпо он является полем в Другой структуре банана

537
01:01:38.300 --> 01:01:43.000
Михаил Непряхин: ага, да вот черт его показать значит обращение, к Боль к Полям

538
01:01:43.760 --> 01:01:58.610
Михаил Непряхин: А значит у нас структура банана мы с ней работаем как нам обратиться к структуре эпл и достучаться до привода то есть в этом идее Мы хотим, допо его отойти Мы говорим что вот он Г нашепал

539
01:01:58.720 --> 01:02:07.310
Михаил Непряхин: то есть Мы прям антрепризацию имеем в виду, этого поля ну а дальше уже получаем по его от которой у этого плана вроде очевидно

540
01:02:08.940 --> 01:02:15.960
Михаил Непряхин: но вот так вот оно работать не будет то Есть у нас Мы Не можем сразу Получить доступ к Полеводу

541
01:02:16.630 --> 01:02:18.800
Михаил Непряхин: и соответственно

542
01:02:19.630 --> 01:02:20.810
Михаил Непряхин: иногда

543
01:02:21.490 --> 01:02:23.690
Михаил Непряхин: Мы можем Иметь,

544
01:02:24.190 --> 01:02:25.290
Михаил Непряхин: у себя

545
01:02:25.880 --> 01:02:28.370
Михаил Непряхин: банана тоже по его от

546
01:02:29.390 --> 01:02:34.400
Михаил Непряхин: и ну вот мы обращаемся, Сейчас к Приводу. Бананы да

547
01:02:34.750 --> 01:02:39.820
Михаил Непряхин: а ну Допустим мы хотим, перекрыть его мы хотим, вот этот Наш паевод

548
01:02:40.410 --> 01:02:41.090
Михаил Непряхин: а и

549
01:02:41.590 --> 01:02:43.220
Михаил Непряхин: вернее Нет Мы хотим,

550
01:02:44.190 --> 01:02:47.700
Михаил Непряхин: есть поймут Мы хотим, его Пере определить То есть типа

551
01:02:48.170 --> 01:02:58.900
Михаил Непряхин: нас вот этот повод Не устраивает вот в Этой структуре нас все устраивает там еще есть какие-то поля и все хорошо Мы ее Хотим? Юзать Но вот поле. По его От нас не устраивает мы хотим, его заменить

552
01:02:59.700 --> 01:03:04.140
Михаил Непряхин: и в этом случае, если,

553
01:03:05.810 --> 01:03:07.630
Михаил Непряхин: вот мы его здесь определим

554
01:03:08.040 --> 01:03:09.320
Михаил Непряхин: давайте вызовем

555
01:03:10.370 --> 01:03:13.620
Михаил Непряхин: хочу вот он бананы, то, есть это его вот Мы вызвали Из бананы

556
01:03:15.370 --> 01:03:17.010
Михаил Непряхин: и как бы,

557
01:03:17.870 --> 01:03:19.620
Михаил Непряхин: а если, Мы допустим

558
01:03:20.620 --> 01:03:22.440
Михаил Непряхин: Сделаем мбединг

559
01:03:23.170 --> 01:03:24.270
Михаил Непряхин: Встраивание

560
01:03:25.900 --> 01:03:27.740
Михаил Непряхин: Так шас

561
01:03:28.050 --> 01:03:30.470
Михаил Непряхин: чего вы Так перекладывать-то но уж сам забыл,

562
01:03:31.150 --> 01:03:38.020
Михаил Непряхин: ну да все правильно как я Рассказывал да то есть видите у нас ээ банана важнее

563
01:03:38.280 --> 01:03:52.950
Михаил Непряхин: то есть когда у нас есть Э Повод и в структуре которую Мы устраиваем и наша Собственная Структура то наша Собственная Структура она важнее Если Мы просто обращаемся Так То мы Получаем ее логично как мы перекрываем

564
01:03:53.160 --> 01:04:04.710
Михаил Непряхин: То есть у нас есть встроена когда структура но вот То что, у нас оно Важнее Сейчас Мы Там. Дальше увидим То Же самое с методами происходит То есть Мы методы Тоже. Можем переопределить

565
01:04:04.820 --> 01:04:13.170
Михаил Непряхин: То есть вот Этот здесь метод здесь показывая с помощью бэдинга Можно переопределить вот Эти, вложенные Поля

566
01:04:13.820 --> 01:04:16.010
Михаил Непряхин: а если, бы У, нас бы Не было этого метода

567
01:04:16.270 --> 01:04:21.400
Михаил Непряхин: То Мы бы просто вот здесь бы достучались, сразу допла

568
01:04:22.440 --> 01:04:33.520
Михаил Непряхин: и не надо было бы делать вот эту полную, квалификацию вот это вот полностью прописывать этот Путь то есть витя он тоже работает можно и полностью Путь указать

569
01:04:33.950 --> 01:04:35.180
Михаил Непряхин: а можно

570
01:04:35.720 --> 01:04:38.620
Михаил Непряхин: а достучаться до поля просто,

571
01:04:39.030 --> 01:04:39.950
Михаил Непряхин: сразу

572
01:04:40.550 --> 01:04:44.850
Михаил Непряхин: вот ну допустим бывает ситуация, когда У нас есть все-таки

573
01:04:45.110 --> 01:04:46.950
Михаил Непряхин: вот эта структура по его от

574
01:04:48.330 --> 01:04:51.300
Михаил Непряхин: ээ в банане-то письмо тоже есть что-то

575
01:04:54.670 --> 01:04:58.200
Михаил Непряхин: есть У нас п поймут, и в банане и выпрям

576
01:04:58.630 --> 01:05:13.460
Михаил Непряхин: но мы хотим, Иметь возможность достучаться и туда и туда если мы просто обращаемся то логично мы попадаем банану но мы можем прямо вот полный путь прописать полный пуль д план и мы достучимся и дрепла

577
01:05:14.160 --> 01:05:23.560
Михаил Непряхин: то есть, короче и если У нас есть одинаковое название полей то нужна полная квалификация если, мы хотим, достучаться до какой-то Внутренней структуры,

578
01:05:24.020 --> 01:05:26.850
Михаил Непряхин: если, мы хотим, ее перекрыть

579
01:05:27.030 --> 01:05:31.610
Михаил Непряхин: то ну вот собственно говоря Таким образом. Мы можем вот Это, поле. Переопределить

580
01:05:31.810 --> 01:05:47.450
Михаил Непряхин: и если нам Это, ничего Не нужно То Есть Мы Не хотим, Переопределять и Не, Хотим, и

581
01:05:47.620 --> 01:05:52.300
Михаил Непряхин: и у вас все нормально у вас Нет вот этих ошибок То есть здесь я строго попадаю

582
01:05:52.510 --> 01:05:57.070
Михаил Непряхин: в банану это понятно если я хочу выпал то я должен

583
01:05:58.450 --> 01:06:00.170
Михаил Непряхин: Можно это прописать

584
01:06:01.140 --> 01:06:01.870
Михаил Непряхин: что и

585
01:06:02.780 --> 01:06:04.740
Михаил Непряхин: вот и попадай в Эпл

586
01:06:05.360 --> 01:06:07.690
Михаил Непряхин: а то есть в чем Мораль

587
01:06:08.490 --> 01:06:12.250
Михаил Непряхин: Не используйте Эмбэдинг Без назначения

588
01:06:12.580 --> 01:06:15.240
Михаил Непряхин: вот как бы есть два инструмента,

589
01:06:15.460 --> 01:06:27.710
Михаил Непряхин: что Эмбдинг только Тогда когда вы хотите, переопределить какое то поле, есть поле она нас Не устраивает Мы Хотим? Свое, переопределить тогда им. Бейдинг

590
01:06:28.540 --> 01:06:32.270
Михаил Непряхин: если нам это Не нужно ну просто делайте Композицию

591
01:06:32.470 --> 01:06:35.990
Михаил Непряхин: и все нормально и у вас как бы

592
01:06:36.390 --> 01:06:45.170
Михаил Непряхин: это получается, такой диай да своего рода Что мы в своей структуре имеем доступ к другой структуре

593
01:06:45.570 --> 01:06:47.350
Михаил Непряхин: То есть как бы вот мы ее

594
01:06:48.720 --> 01:06:50.560
Михаил Непряхин: она может быть по указателю

595
01:06:50.720 --> 01:06:57.680
Михаил Непряхин: ну как бы вот зависимость от нее получили она там где нибудь изменилась и У нас она Тоже, изменилась мы к ней доступ имеем

596
01:07:00.020 --> 01:07:03.880
Михаил Непряхин: так методы также появлялись на следующее да да вот Сейчас про метод еще расскажу

597
01:07:04.120 --> 01:07:07.980
Михаил Непряхин: не Предъявивший, отдельно. Про дядей и поговорим Это Так Это

598
01:07:08.400 --> 01:07:10.320
Михаил Непряхин: только Упомянул дядь разве Это

599
01:07:11.170 --> 01:07:15.780
Михаил Непряхин: начнем здесь дальше с методами точно такая же история есть те пол

600
01:07:16.040 --> 01:07:18.130
Михаил Непряхин: у опла, есть Метод принт

601
01:07:19.840 --> 01:07:21.310
Михаил Непряхин: есть бананом

602
01:07:21.680 --> 01:07:26.160
Михаил Непряхин: и в банану займ беженцев эпл

603
01:07:26.860 --> 01:07:29.780
Михаил Непряхин: и если мы Сейчас

604
01:07:30.460 --> 01:07:32.780
Михаил Непряхин: добавим к банане

605
01:07:33.230 --> 01:07:40.270
Михаил Непряхин: точно такой Же Метод то Есть Он должен Быть с той Же сигнатурой. И Вот Эта часть называется Сигнатура. Метода

606
01:07:40.470 --> 01:07:49.150
Михаил Непряхин: аа в сигнатуру входит и возвращаемое значение тоже то есть если он Тут возвращает что-то вот мы Тут тоже должны также Сделать чтобы матч произошел

607
01:07:50.230 --> 01:07:52.620
Михаил Непряхин: аа вот ну как минимум они Не должны называться Одинаково

608
01:07:55.000 --> 01:08:00.710
Михаил Непряхин: Так вот Если, У Нас Есть Мы Добавляем такой Же Метод с Таким Же названием. Он перекрывает

609
01:08:00.870 --> 01:08:02.340
Михаил Непряхин: то Есть короче говоря

610
01:08:02.560 --> 01:08:09.690
Михаил Непряхин: та структура, которая выше в которой мы Работаем она перекрывает ту которая у нас три

611
01:08:09.920 --> 01:08:15.100
Михаил Непряхин: есть ли у нас эмбдинг а вот у нас Есть Эмбдинг то Есть Мы просто прописали его он Внутри

612
01:08:15.650 --> 01:08:23.790
Михаил Непряхин: и Ну, что У нас тут Мы создали. Эпо создали. Банана а Внутри эпл Печатаем

613
01:08:24.080 --> 01:08:25.399
Михаил Непряхин: Делаем принт

614
01:08:26.569 --> 01:08:39.680
Михаил Непряхин: так Ну здесь напечатается бананы потому Что я уже только Что переопределил, вот Хаем банана вот если Мы Не Имеем точно такого же метода у себя ну логично что у нас получается эпо

615
01:08:40.680 --> 01:08:49.189
Михаил Непряхин: ну и вот на этом как бы строится там там есть вот эти вот паттерные Которые ну если вдруг, вы каким-то патроном привыкли То вы можете как бы

616
01:08:49.930 --> 01:08:51.439
Михаил Непряхин: такое поведение

617
01:08:51.880 --> 01:08:58.040
Михаил Непряхин: типа это как бы похоже на Наследование ну Наследование Не является вот

618
01:08:58.240 --> 01:09:00.779
Михаил Непряхин: а но по большому счету

619
01:09:01.000 --> 01:09:18.170
Михаил Непряхин: это очень редко использует это и

620
01:09:18.340 --> 01:09:19.430
Михаил Непряхин: вот а

621
01:09:19.600 --> 01:09:22.630
Михаил Непряхин: а что такое Возможно, как бы есть такой элемент Наследования

622
01:09:23.660 --> 01:09:25.490
Михаил Непряхин: потому что

623
01:09:25.790 --> 01:09:34.370
Михаил Непряхин: оно крайне редко бывает нужно и чаще всего это все-таки для библиотек а не для кода, который вот такой продовый

624
01:09:34.729 --> 01:09:43.370
Михаил Непряхин: вот и опять, же если, вы Не Хотите, вот делать. Вот это вот перекрытие

625
01:09:43.430 --> 01:09:45.710
Михаил Непряхин: но Хотите, иметь взятую структуру

626
01:09:45.760 --> 01:10:04.840
Михаил Непряхин: то ну Не делайте вы им Бэдинг вот делаете Композицию То есть Нет У вас цели вот этот метод переопределить ну как бы ну и все ну обратитесь вы потом вот так вот здесь Вот это от этого всем будет легче потому что вы явно говорите вот этот принт он а Тепла он не от бананы он от Тепла

627
01:10:05.320 --> 01:10:07.590
Михаил Непряхин: а есть ли у вас в этомбдинг

628
01:10:07.870 --> 01:10:09.790
Михаил Непряхин: и вы делаете принт

629
01:10:09.890 --> 01:10:13.490
Михаил Непряхин: что вы заставляете человека вы заставляете человека

630
01:10:13.690 --> 01:10:15.860
Михаил Непряхин: ну кто будет читать этот код естественно

631
01:10:16.580 --> 01:10:25.090
Михаил Непряхин: а вы его заставляете разбираться Вот этот принт Он будет от бананы потому что я читаю Кот банана принт

632
01:10:25.270 --> 01:10:35.600
Михаил Непряхин: Так мне надо разобраться у бананы есть принт ну этот код говорит о том что он есть на самом деле у банана нет принта и этот принт она тепла

633
01:10:35.910 --> 01:10:39.670
Михаил Непряхин: и это вносит путаницу и это заставляет

634
01:10:40.040 --> 01:10:44.340
Михаил Непряхин: ну тут можно ошибиться потому Что это уже Не Очевидно

635
01:10:44.490 --> 01:11:03.540
Михаил Непряхин: эта банана она может Жить вообще где-то Там в Другой структуре и Мы ее Сейчас даже можем Не видеть То есть Там У нас Много-много либо Экранов сверху либо вообще другая функция Но Мы видим Вот этот код и Мы видим Что Мы Делаем принт От бананы но на самом деле это принт а тепла

636
01:11:05.920 --> 01:11:11.080
Михаил Непряхин: Поэтому Вы просто добавляете делайте Не бэдинг делайте композицию

637
01:11:11.780 --> 01:11:28.250
Михаил Непряхин: все композиция вам Не Даст Совершить такую Ошибку композиция, вас заставит указать Конкретно От кого, вы хотите. Сделать принт и вот тогда вас Кот кто Будет читать Он понимает Ага принято тепла, все понятно

638
01:11:28.530 --> 01:11:29.370
Михаил Непряхин: вот

639
01:11:30.320 --> 01:11:32.700
Михаил Непряхин: иногда очень редко

640
01:11:33.040 --> 01:11:37.760
Михаил Непряхин: аа в Продуктом Коде ну Прям можно что-нибудь такое красиво сделать

641
01:11:37.960 --> 01:11:41.080
Михаил Непряхин: но это опять, же должно быть Очевидно для читающего

642
01:11:41.560 --> 01:11:45.810
Михаил Непряхин: если есть сомнения Что читающие запутаются то лучше не надо

643
01:11:48.260 --> 01:12:04.230
Михаил Непряхин: Так множественный банк не закушен Нет не запрещен да множество ботинков то есть этот может быть в Этом и бэдинге да а вы в итоге можете сделать функцию то есть тут как бульдо множественный митинг но вот такого

644
01:12:05.100 --> 01:12:07.690
Михаил Непряхин: Для такого в продуктовом кодексе,

645
01:12:08.020 --> 01:12:19.840
Михаил Непряхин: так и

646
01:12:20.070 --> 01:12:22.520
Михаил Непряхин: Должна, Быть очень Докажем чтобы перекрыть

647
01:12:24.310 --> 01:12:25.710
Михаил Непряхин: так

648
01:12:28.400 --> 01:12:29.110
Михаил Непряхин: да

649
01:12:30.780 --> 01:12:31.690
Михаил Непряхин: Фуф

650
01:12:32.010 --> 01:12:33.760
Михаил Непряхин: так о

651
01:12:33.870 --> 01:12:35.010
Михаил Непряхин: функция

652
01:12:37.320 --> 01:12:43.180
Михаил Непряхин: так ну с маленькой буквы приватная функция с большой буквы публичная функция для пакета

653
01:12:45.280 --> 01:12:56.200
Михаил Непряхин: то Есть с большой буквы функция будет видна в других пакетах ну Тут в мейне она да Поэтому из марины ничего не будет видно Но если бы это был любой другой пакет то с большой буквы Это было Бы видно

654
01:13:01.890 --> 01:13:09.570
Михаил Непряхин: вот У нас появляется вот эта вот классическая гошная история Что функция возвращает Ошибку,

655
01:13:10.780 --> 01:13:13.080
Михаил Непряхин: а мэйбир где она то У меня

656
01:13:14.160 --> 01:13:15.260
Михаил Непряхин: вот она У меня

657
01:13:15.870 --> 01:13:17.430
Михаил Непряхин: вот значит

658
01:13:18.620 --> 01:13:25.450
Михаил Непряхин: смотрим сигнатуру Ну значит мы принимаем три аргумента значит нэймэйдж и из блок

659
01:13:26.180 --> 01:13:32.420
Михаил Непряхин: а более того значения чаще всего называют начиная с из

660
01:13:32.920 --> 01:13:40.300
Михаил Непряхин: как бы типа вопрос типа это заблокировано но еда нет проще как бы читать Код и эта функция возвращает Ошибку.

661
01:13:42.320 --> 01:13:45.040
Михаил Непряхин: Раз эта функция может вернуть Ошибку.

662
01:13:45.330 --> 01:13:51.010
Михаил Непряхин: Мы обязаны эту Ошибку. Проверить если. Мы ее Не Проверим то Медвежка будет подсвечивать

663
01:13:51.390 --> 01:13:53.670
Михаил Непряхин: а на самом деле Кот компелируется

664
01:13:54.780 --> 01:14:00.370
Михаил Непряхин: но вот если здесь будет Происходить ошибка то это будет просто

665
01:14:01.050 --> 01:14:09.020
Михаил Непряхин: ну будет очень странно себя программу, Вести и вы очень долго будете ее дыбажить Поэтому и

666
01:14:09.550 --> 01:14:24.140
Михаил Непряхин: есть, еще вариант Кстати. Вот так вот например, сделать если вы Хотите, проигнорировать ошибку и Чтобы даже еды Не ругалась ну Так и Идея Не Будет ругаться и Пожалуйста, Все Соберется Но Ошибка Как Бы Будет ну в никуда Уходить

667
01:14:25.380 --> 01:14:32.830
Михаил Непряхин: короче так Никогда не делайте потому Что в примерах так часто Делают, и поначалу многие тоже Пишут Код допустим

668
01:14:32.960 --> 01:14:36.420
Михаил Непряхин: тут такая история Что У нас много Функций

669
01:14:37.510 --> 01:14:46.220
Михаил Непряхин: и Мы такие бли ну вот Не хотим, Мы все Эти ошибки проверять хотим, сделать такой красивый код в общем тут четыре строчки

670
01:14:46.280 --> 01:15:02.200
Михаил Непряхин: и Чтобы и денежка Ни Ругалась инкулятор Не Ругался просто вот так вот нижнее Подчеркивание сделаем и все смотрите все красиво и Мы типа и Кот Читаем и как Будто. Сделали Но Если, где-то здесь происходит Ошибка ну тут все как бы

671
01:15:02.260 --> 01:15:08.040
Михаил Непряхин: У вас здесь получается зеравелью возвращается и дальше вы будете Очень. Долго искать где же оно произошло

672
01:15:09.570 --> 01:15:11.860
Михаил Непряхин: а вот Поэтому ошибки Мы Всегда пробатываем

673
01:15:12.440 --> 01:15:15.230
Михаил Непряхин: а даже если там примеры Пишет лися еще что-то

674
01:15:16.070 --> 01:15:21.080
Михаил Непряхин: и ну вот классическая обработка ошибки это ир не равно не

675
01:15:22.210 --> 01:15:25.240
Михаил Непряхин: бывает иногда когда нам удобно

676
01:15:25.420 --> 01:15:27.810
Михаил Непряхин: проверить и равно нил.

677
01:15:28.000 --> 01:15:35.120
Михаил Непряхин: То есть, ошибки Нет и Написать какую-то логику вот здесь а Если, ошибка произошла то как бы здесь дальше Продолжать

678
01:15:35.640 --> 01:15:36.930
Михаил Непряхин: но и

679
01:15:37.190 --> 01:15:43.890
Михаил Непряхин: Вот это Вот э Плохо читается потому Что ну в Этом Случае лучшего десять, помечать

680
01:15:44.080 --> 01:15:45.520
Михаил Непряхин: типа Что

681
01:15:45.980 --> 01:15:48.050
Михаил Непряхин: ну Как То написать Что

682
01:15:49.160 --> 01:15:51.060
Михаил Непряхин: это типа ошибки Нет

683
01:15:51.400 --> 01:16:00.450
Михаил Непряхин: То, есть как бы надо как бы больше вот именно, обращать внимание, на это потому что в целом ну, все привыкли Что вот этот блок он выглядит так если вы, здесь видите

684
01:16:00.550 --> 01:16:13.500
Михаил Непряхин: иф ир то нейросеть в голове она говорит Что следующий значок это не равно и нею значит что внутри это ошибка если мы сюда, внутрь Не, попали то Вот здесь у нас ошибки Нет

685
01:16:14.260 --> 01:16:22.100
Михаил Непряхин: Вот Но Иногда в Алгоритмах! Это бывает удобно сделать и Поэтому здесь приходится, писать комментарий обрати внимание

686
01:16:25.190 --> 01:16:28.420
Михаил Непряхин: Есть ли у нас Функция, Допустим Гетьюзер

687
01:16:28.840 --> 01:16:30.190
Михаил Непряхин: возвращает

688
01:16:30.610 --> 01:16:32.030
Михаил Непряхин: аа Два значения

689
01:16:32.730 --> 01:16:51.980
Михаил Непряхин: ошибка возвращается Сюда второй то есть первым возвращ это кортеж да то есть в скобочках если. У нас одно, значение то скобочки не Делаются ну, конечно это Само Кортеж но без Кобочек если, больше одного, значения то Добавляются Скобочки мы зашаем Кортеж

690
01:16:52.200 --> 01:16:55.850
Михаил Непряхин: и Ошибка Всегда, возвращается Последней

691
01:16:57.680 --> 01:17:08.680
Михаил Непряхин: максимум делают ну, вот здесь может быть четыре значения то есть чаще всего это одно, или два может быть три Например, еще что-то

692
01:17:10.360 --> 01:17:15.500
Михаил Непряхин: и ну очень супер редко. В какой он библиотеке иногда бывает

693
01:17:18.350 --> 01:17:20.180
Михаил Непряхин: Еще четвертая

694
01:17:22.200 --> 01:17:23.470
Михаил Непряхин: и но

695
01:17:23.660 --> 01:17:26.820
Михаил Непряхин: вы так точно как бы никогда не делаете

696
01:17:27.210 --> 01:17:38.810
Михаил Непряхин: э если у вас здесь уже три значения возвращается то наверное стоит вот это все в одну структуру объединить и эту одну структуру возвращать

697
01:17:41.200 --> 01:17:43.060
Михаил Непряхин: как будто, в это на это указывают

698
01:17:44.930 --> 01:17:46.520
Михаил Непряхин: так

699
01:17:47.130 --> 01:17:58.840
Михаил Непряхин: привет из мира, Похп смчко фанкшн ну вот это не понял. Не понял. Что там Что там за собачкой вакшин Так как Вырабатываются ошибки в объективе ира стэктера семнадцать,

700
01:17:59.810 --> 01:18:03.060
Михаил Непряхин: ну манаса-то нет конечно и

701
01:18:03.580 --> 01:18:05.840
Михаил Непряхин: ну покажу покажу Сейчас покажу

702
01:18:06.380 --> 01:18:10.960
Михаил Непряхин: Так эльфрос, Не идет Не-не-не Первая Ошибка Никогда Не делает Ошибка она Всегда последняя

703
01:18:12.470 --> 01:18:13.200
Михаил Непряхин: Так

704
01:18:14.980 --> 01:18:17.780
Михаил Непряхин: Пробормот Тоже, будет интересна вообще история

705
01:18:18.240 --> 01:18:20.900
Михаил Непряхин: так-так Гет юзер

706
01:18:24.830 --> 01:18:27.360
Михаил Непряхин: ага Никогда Не делайте Так

707
01:18:27.830 --> 01:18:30.100
Михаил Непряхин: есть интересный пример

708
01:18:31.130 --> 01:18:34.910
Михаил Непряхин: а синтаксиса который в гоу сделали

709
01:18:35.140 --> 01:18:37.800
Михаил Непряхин: как бы типа прикольно

710
01:18:38.460 --> 01:18:47.780
Михаил Непряхин: что он есть но он Предан анафеме и Так никто Никогда никто Не Делает а если, кто За Делает То

711
01:18:48.450 --> 01:18:54.680
Михаил Непряхин: ну на Него начинают все орать и это говорит о том что Он какой-то новичок

712
01:18:54.960 --> 01:18:59.390
Михаил Непряхин: значит вот смотрите была У нас Функция

713
01:18:59.940 --> 01:19:03.170
Михаил Непряхин: только Что. Показывала да вот У нас возвращается Кортеж

714
01:19:04.280 --> 01:19:09.280
Михаил Непряхин: если Мы посмотрим как Мы здесь работаем в этом эту функцию объявили

715
01:19:10.130 --> 01:19:12.700
Михаил Непряхин: а если произошла Ошибка

716
01:19:12.880 --> 01:19:22.990
Михаил Непряхин: Вот вернули эту Ошибку Вот вернули этого юзера Он пустой просто зеровелю здесь Тоже Вот ей вернули

717
01:19:23.150 --> 01:19:33.620
Михаил Непряхин: если сорок два Вот такого юзера и нил. Что типа Нет ошибки Вот Мы тут, и проверяем Что ирар Не равно нел То значит Ошибки Нет

718
01:19:34.060 --> 01:19:42.350
Михаил Непряхин: и Вот в конце вернули То Есть От нас Секс- кейс а Вот эта нота Фаунд Тоже, вернули ошибку и взировали вот этого значения

719
01:19:42.820 --> 01:19:56.800
Михаил Непряхин: ну, и Всегда проверяйте если, здесь ошибка то вот Там уже не важно что Мы не закладываемся вот то что там ну там должно быть конечно зероэлью вот это значение но если вы здесь нашли ошибку вы даже не смотрите что там

720
01:19:59.330 --> 01:20:06.840
Михаил Непряхин: для удобства то есть, видите вот это ведь надо переменную объявить вот мы юзер объявили

721
01:20:07.010 --> 01:20:08.710
Михаил Непряхин: а это строчка Кода

722
01:20:09.310 --> 01:20:10.660
Михаил Непряхин: и и

723
01:20:10.810 --> 01:20:18.270
Михаил Непряхин: разработчики гошки подумали Можно же вот это вот сократить и

724
01:20:19.090 --> 01:20:23.420
Михаил Непряхин: здесь вот внутри сигнатуры сделать инициативу

725
01:20:24.070 --> 01:20:28.610
Михаил Непряхин: то есть вот здесь вот внутри можно записать вот так вот юзер

726
01:20:29.270 --> 01:20:35.210
Михаил Непряхин: Это похоже на аргументы да вот посмотрели на эти аргументы Которые аа Входящие

727
01:20:35.490 --> 01:20:47.580
Михаил Непряхин: и подумали ноки здесь Кордеж исходящих но выглядит Это уже как Будто как функция и следующий шаг а что. Если, Добавить Сюда название переменных

728
01:20:47.860 --> 01:20:57.790
Михаил Непряхин: и Это сделать сахаром инициализацией то есть вот это вот равно то же самое Что вот это вот и вот это вот

729
01:20:58.410 --> 01:21:00.310
Михаил Непряхин: экономия строчки

730
01:21:00.460 --> 01:21:16.380
Михаил Непряхин: Мы имеем здесь уже инициативу, переменную мы если вдруг делаем ритерн то Видите у нас Она Там уже Инициатива Не надо ничего Не централизовать ну здесь Мы просто Тоже Юзер, возвращаем то же самое с ошибкой Вот Мы Там

731
01:21:16.820 --> 01:21:29.770
Михаил Непряхин: ну здесь с ошибкой в Одну мою Ошибку и Не объявляли Но Иногда бывает что надо и Ошибку Тоже, Так вот объявить так бывает не часто но иногда бывает и так вот а в этом случае мы уже две, Строчки сэкономили

732
01:21:30.530 --> 01:21:31.400
Михаил Непряхин: вот

733
01:21:31.650 --> 01:21:36.650
Михаил Непряхин: и это вот была вторая литература а что. Если, Сделать так

734
01:21:36.790 --> 01:21:38.760
Михаил Непряхин: и следите за руками

735
01:21:39.800 --> 01:21:41.370
Михаил Непряхин: третья, литерация

736
01:21:41.560 --> 01:21:45.670
Михаил Непряхин: но ведь если, у нас уже есть инициатива перемены

737
01:21:47.120 --> 01:21:50.240
Михаил Непряхин: то мы можем сделать голый ретер

738
01:21:50.400 --> 01:21:52.810
Михаил Непряхин: голый Терн без

739
01:21:53.280 --> 01:21:54.750
Михаил Непряхин: без вот этого вот

740
01:21:56.170 --> 01:22:09.280
Михаил Непряхин: то есть просто делаем Реттюн типа выходим то есть вот проверяем адишник на ноль адишник Там У нас ошибка Мы говорим ошибка присваиваем вот в эту переменную Ошибку,

741
01:22:09.590 --> 01:22:11.890
Михаил Непряхин: а дальше Делаем горя терн

742
01:22:12.160 --> 01:22:21.300
Михаил Непряхин: и вот в каких значениях вот на текущий момент вот эти перемены были вот Мы их в этих значениях и вернем

743
01:22:21.480 --> 01:22:25.250
Михаил Непряхин: то есть юзер у нас Был в зеровелью ирар вот Мы Присвоили.

744
01:22:25.570 --> 01:22:29.380
Михаил Непряхин: Допустим Не произошла ошибка да Сексас кейс

745
01:22:29.870 --> 01:22:34.400
Михаил Непряхин: а Мы сделали Инициативу, с помощью Лидера, структуры

746
01:22:34.650 --> 01:22:37.330
Михаил Непряхин: и Возвращаем ирарнил

747
01:22:38.350 --> 01:22:41.760
Михаил Непряхин: то есть как бы здесь без вариантов здесь город терн не прокатит

748
01:22:42.400 --> 01:22:56.430
Михаил Непряхин: ну допустим опять это не случилось тогда. У нас ошибка над фаунд Мы ее уже присваиваем а на Текущей строке юзер, у нас в Серавелью а ирар вот в нота фаунд Дела в голый Рятерн и тоже все работает

749
01:22:56.810 --> 01:22:59.620
Михаил Непряхин: вот Но Эти, Голые ратерны

750
01:23:00.620 --> 01:23:07.500
Михаил Непряхин: смотрите когда У вас длинная функция и вы Не Видите Сигнатуры допустим Там Экран ушел вы не видите Сигнатуры

751
01:23:08.360 --> 01:23:18.000
Михаил Непряхин: а вы пугову мироттерны не понимаете Что вы возвращаете когда много читаете код вы просто видите гоголь терн вам надо поднять

752
01:23:18.230 --> 01:23:28.190
Михаил Непряхин: стек свой в голове э понять а какие у нас общая что у нас возвращает эта функция сколько Хоть возвращаемых значений

753
01:23:28.570 --> 01:23:35.140
Михаил Непряхин: смотрит ага два окей вот у нас следующий шаг вот у нас здесь юзера здесь ир

754
01:23:35.670 --> 01:23:43.760
Михаил Непряхин: чтобы понять в каких значениях был юзер, и ир здесь надо всю предыдущую тему. О функции. Перечитать

755
01:23:43.810 --> 01:24:02.040
Михаил Непряхин: и как бы отмечать у себя в голове вот юзер зеровелью юзерзеравелью га юзер присвоен значит Сейчас Юзер, Он уже со значениями и то же самое там а ошибка Он в каком значении нил нил ага вот присвоили. Ошибку уже не нил

756
01:24:02.050 --> 01:24:15.660
Михаил Непряхин: и вы сделаете возврат то есть как бы это с одной стороны усложняет чтение что вы не видите что вы возвращаете а с другой стороны когда даже вы хотите, ну. Понимаете что, вы возвращаете вас заставляют

757
01:24:15.700 --> 01:24:17.280
Михаил Непряхин: запоминать

758
01:24:18.010 --> 01:24:23.510
Михаил Непряхин: как бы отгадать в каких Значениях были эти перемены

759
01:24:23.790 --> 01:24:28.410
Михаил Непряхин: что, ведет к многочисленным ошибкам и дурацким, Багам

760
01:24:29.320 --> 01:24:31.390
Михаил Непряхин: Поэтому вот этот стиль

761
01:24:32.070 --> 01:24:39.250
Михаил Непряхин: а он абсолютно запрещен и типа ну просто Не дай бог где-то вы Так Напишете нельзя

762
01:24:40.250 --> 01:24:44.510
Михаил Непряхин: а Но Так как этот Стиль под Строгим запретом

763
01:24:45.410 --> 01:24:48.650
Михаил Непряхин: то и вот этот Стиль к сожалению Тоже, пострадал

764
01:24:48.890 --> 01:24:52.120
Михаил Непряхин: смотрите в это уже не так Плохо потому что

765
01:24:52.310 --> 01:24:54.640
Михаил Непряхин: возвращаемый значение вы и видите

766
01:24:55.310 --> 01:25:01.130
Михаил Непряхин: а вы экономите на вот на Этой строчке на инициативе вот она здесь

767
01:25:02.080 --> 01:25:11.790
Михаил Непряхин: и как будто Бы это уже неплохо но так как вот репутация этого стиля и уже как Бы на Подкорке убошников что типа

768
01:25:12.570 --> 01:25:20.060
Михаил Непряхин: и когда они видят вот такую сигнатуру они Таки а Блин так нельзя и когда вы, Тоже так напишете они такие а Блин так нельзя

769
01:25:20.170 --> 01:25:21.760
Михаил Непряхин: хотя на самом деле

770
01:25:22.480 --> 01:25:26.490
Михаил Непряхин: а иногда это удобно когда это удобно

771
01:25:26.830 --> 01:25:30.270
Михаил Непряхин: ну вот в этом случае смотрите мы возвращаем юзера

772
01:25:30.730 --> 01:25:44.240
Михаил Непряхин: и мы и так Видим что, это юзер юзер ну офигеть сколько информации дает эта перемены да ничего не дает но есть ситуация, когда например, вы возвращаете стрингу

773
01:25:46.120 --> 01:25:49.540
Михаил Непряхин: и тогда вот этот юзер

774
01:25:50.220 --> 01:25:52.170
Михаил Непряхин: а Вы можете не видеть

775
01:25:52.790 --> 01:26:04.340
Михаил Непряхин: даже тело функции Вы уже по сигнатуре получаете очень много информации что это не просто какая то стринга то есть вот писатель вы так вот видите

776
01:26:05.100 --> 01:26:10.900
Михаил Непряхин: Что в этом случае мы должны делать мы должны посмотреть на метод ну на функцию

777
01:26:11.360 --> 01:26:13.180
Михаил Непряхин: функция называется гет юзер

778
01:26:13.290 --> 01:26:17.260
Михаил Непряхин: окей значит как Будто бы здесь должен быть юзер

779
01:26:17.780 --> 01:26:29.140
Михаил Непряхин: ну функция может называться блин просто гет Или как нибудь еще не очевидна что, мы в итоге возвращаем и тут, бац у гол, есть такая возможность добавить вот сюда

780
01:26:29.680 --> 01:26:32.580
Михаил Непряхин: а дополнительную информацию

781
01:26:33.140 --> 01:26:36.690
Михаил Непряхин: и это Не Ради экономии вот Этой строчки

782
01:26:36.800 --> 01:26:42.260
Михаил Непряхин: это Ради читаемости то есть действительно удобно вывести гет а мы возражаем юзера

783
01:26:42.530 --> 01:26:44.280
Михаил Непряхин: или допустим

784
01:26:44.480 --> 01:26:53.530
Михаил Непряхин: у нас перемена инт и

785
01:26:53.760 --> 01:26:57.430
Михаил Непряхин: смотрим функция как называется

786
01:26:57.540 --> 01:27:01.710
Михаил Непряхин: как бы хез из Названия функций непонятно чего она Возвращает ну как бы

787
01:27:01.900 --> 01:27:10.710
Михаил Непряхин: Понятно, что, надо называть Функцией так чтобы очевидно было Что они возвращают тогда бы было бы проще, но так бывает не Всегда, возможно

788
01:27:11.830 --> 01:27:22.300
Михаил Непряхин: это иногда правильнее назвать функцию определенно но зато из Этого Названия непонятно что. Оно возвращает тогда. Вы можете здесь Добавить квалификацию дополнительную, неквалификацию перемены

789
01:27:22.880 --> 01:27:28.140
Михаил Непряхин: вот и объяснить что. Это Не просто Инт Это Код вам Статус-код Какой-нибудь

790
01:27:28.500 --> 01:27:37.900
Михаил Непряхин: и в Некоторых Командах Прямо тоже бьют По рукам Потому что Если Вы из Суда вы так перемены добавили

791
01:27:38.800 --> 01:27:49.820
Михаил Непряхин: линтер ругается Но даже весь, селинтер Не настроен Это развязывает руки Случайно сделать вот так и никто Не будет ругаться и как бы можно было тоже сделать Ерн

792
01:27:51.060 --> 01:27:53.790
Михаил Непряхин: а вот так телевизор вернем

793
01:27:54.400 --> 01:28:01.560
Михаил Непряхин: и еще один вариант улучшения читаемости то есть видим очень внутреннюю прочитаемость да потому что

794
01:28:01.930 --> 01:28:03.070
Михаил Непряхин: важно

795
01:28:03.570 --> 01:28:07.980
Михаил Непряхин: думать, над темнатурами то есть если вы в динамическом языке привыкли

796
01:28:08.510 --> 01:28:16.610
Михаил Непряхин: а что у вас Сигнатура. Почти не дает вам никакой информации ну что там ну как бы у вас название метода и все да вы

797
01:28:17.140 --> 01:28:24.040
Михаил Непряхин: ни типов не видеть не то что функция Возвращает и

798
01:28:24.150 --> 01:28:30.450
Михаил Непряхин: То в языках Сострогайте пизацией и ну как бы Например, да за степизацией

799
01:28:31.210 --> 01:28:38.670
Михаил Непряхин: у нас Сигнатура. Несет очень много информации Поэтому мы много времени тратим на то чтобы хорошо назвать функцию

800
01:28:38.930 --> 01:28:43.440
Михаил Непряхин: и если вдруг у нас такая ситуация, что, допустим он здесь возвращается к стригам

801
01:28:44.080 --> 01:28:50.770
Михаил Непряхин: есть Еще один вариант как это улучшит читаемость сигнатуры значит мы добавляем тип

802
01:28:52.650 --> 01:28:54.030
Михаил Непряхин: мьюзик

803
01:28:54.280 --> 01:29:02.060
Михаил Непряхин: Стринг, он допустим на стринга да возмущается весь Родственник то есть мы просто сделали стригу

804
01:29:03.220 --> 01:29:04.550
Михаил Непряхин: типизируемой

805
01:29:04.880 --> 01:29:19.050
Михаил Непряхин: и возвращаем этот юзер и мы уже по сигнатуре видим что и

806
01:29:19.470 --> 01:29:21.190
Михаил Непряхин: так вот он есть у юзер

807
01:29:21.380 --> 01:29:23.100
Михаил Непряхин: вот и так бы он Не ругался

808
01:29:25.060 --> 01:29:27.190
Михаил Непряхин: и плюс к этому.

809
01:29:27.860 --> 01:29:33.030
Михаил Непряхин: Типизированному Стринговому Юзеру вы можете добавить

810
01:29:33.320 --> 01:29:39.990
Михаил Непряхин: функции, ну Не знаю Там какую-нибудь Принта например Или еще что-нибудь Или Стринг, есть еще

811
01:29:41.180 --> 01:29:46.680
Михаил Непряхин: ну старинкой страны. Тут конечно Нет смысла ну короче какие-то Методы вы еще можете Добавить выледаться еще что То

812
01:29:46.820 --> 01:29:49.350
Михаил Непряхин: То Есть в общем смысле

813
01:29:49.740 --> 01:29:52.760
Михаил Непряхин: вот это вот типизация простых типов

814
01:29:53.180 --> 01:29:57.850
Михаил Непряхин: она в гоу доступна Мы и им можем Тоже типизировать на какой-нибудь Там

815
01:29:57.990 --> 01:29:59.900
Михаил Непряхин: статус код сделать

816
01:30:01.390 --> 01:30:03.450
Михаил Непряхин: и э

817
01:30:03.870 --> 01:30:14.560
Михаил Непряхин: таким Образом повысить читаемость, Кода и интерфейсов Именно на Уровне Сигнатуры Еще дополнительно ну плюс вы еще защищаетесь

818
01:30:14.690 --> 01:30:19.800
Михаил Непряхин: оттого Что все-таки Инт Это все под множество ментов

819
01:30:20.120 --> 01:30:25.800
Михаил Непряхин: а вот статус код Это Уже подмножество Которое Гораздо меньше

820
01:30:26.490 --> 01:30:31.730
Михаил Непряхин: а то есть вы еще можете допустим влидацию добавить и что допустим

821
01:30:32.140 --> 01:30:41.340
Михаил Непряхин: Давно может быть Двести либо четыреста либо ну все коды перечислены допустим и сделать вич

822
01:30:41.770 --> 01:30:45.080
Михаил Непряхин: а валидации мне Очень Даже напишем

823
01:30:55.470 --> 01:30:57.020
Михаил Непряхин: валерий террор

824
01:30:59.750 --> 01:31:03.240
Михаил Непряхин: вот и здесь Просто сделать свич

825
01:31:04.050 --> 01:31:05.490
Михаил Непряхин: а То. Что

826
01:31:06.160 --> 01:31:07.180
Михаил Непряхин: статус

827
01:31:09.500 --> 01:31:10.480
Михаил Непряхин: он

828
01:31:12.210 --> 01:31:14.610
Михаил Непряхин: можно Просто перечислить Так сделать

829
01:31:18.140 --> 01:31:19.120
Михаил Непряхин: вот и

830
01:31:19.260 --> 01:31:24.360
Михаил Непряхин: а если, Нет То дефолт но Там какая-то ошибка вот как-то так

831
01:31:26.110 --> 01:31:29.060
Михаил Непряхин: и вот таким образом У вас уже

832
01:31:29.240 --> 01:31:34.320
Михаил Непряхин: еще как бы становится код более безопасным Еще можно

833
01:31:34.570 --> 01:31:36.330
Михаил Непряхин: повысить

834
01:31:36.690 --> 01:31:40.290
Михаил Непряхин: типизацию и Без того Типизированного языка

835
01:31:41.530 --> 01:31:54.440
Михаил Непряхин: и иногда это замусоривает затрудняет и иногда действительно проще там не запариваться и просто вернуть здесь инт или Стринг, то есть тут, как бы надо понимать просто что у вас в распоряжении есть такой инструмент

836
01:31:54.770 --> 01:32:02.560
Михаил Непряхин: понятно что, микроскопом можно гвозди забивать Поэтому здесь опять, же. Только насмотренность и как бы опыт. Как ни странно

837
01:32:02.760 --> 01:32:18.030
Михаил Непряхин: таких, вещах так почему так много остановились на этом потому, что чертовски это все важно то есть как мы останавливаемся на только на важных вещах то что не важно Мы Быстренько просматриваем Идем Дальше

838
01:32:18.700 --> 01:32:25.390
Михаил Непряхин: так Посмотрим на Вопросы, да Давайте Если Какие То Вопросы, Есть То пишите или даже можете голосом задать

839
01:32:26.370 --> 01:32:30.510
Михаил Непряхин: так для чего возвращают ир раноут Фаунд, почему Не Ним

840
01:32:32.230 --> 01:32:45.000
Михаил Непряхин: Ну, здесь такая ситуация, короче что Это секс-кейс а вот если Мы Дошли досюда значит Ошибка ну Это просто Экземпал Это Не какой-то там продакшн Ради, Кот просто Э гдемпо как. Можно

841
01:32:45.340 --> 01:32:47.170
Михаил Непряхин: обычно принято

842
01:32:47.810 --> 01:32:55.960
Михаил Непряхин: Все-таки в конце возвращать ну типа не ошибку а Уже какой-то секс вариант ну такое тоже бывает

843
01:33:08.520 --> 01:33:13.780
Михаил Непряхин: ну если Мы забудем проверить То просто У нас Там в каком-то месте оно

844
01:33:14.060 --> 01:33:31.610
Михаил Непряхин: там поломается и где-нибудь все-таки ошибка это вылезет если вы обрабатываете, ошибки если вы вообще нигде Не обрабатываете, У вас и

845
01:33:31.640 --> 01:33:42.810
Михаил Непряхин: как бы Обработка ошибок это Прям Тоже, такая большая тема Там Есть, о чем поговорить вот Есть просто два типа ошибок вот это У меня ошибка

846
01:33:43.000 --> 01:33:44.980
Михаил Непряхин: Это ошибка Кастомная

847
01:33:45.530 --> 01:33:46.590
Михаил Непряхин: не моя

848
01:33:48.500 --> 01:33:52.660
Михаил Непряхин: из юзер, пространство из моего а вот если, вы читаете файл,

849
01:33:53.120 --> 01:33:55.050
Михаил Непряхин: Допустим давайте

850
01:33:56.850 --> 01:33:59.920
Михаил Непряхин: павел Допустим хотим, читать файл, Ирар

851
01:34:00.400 --> 01:34:02.860
Михаил Непряхин: Так уэс оупен

852
01:34:05.020 --> 01:34:05.850
Михаил Непряхин: а и

853
01:34:06.500 --> 01:34:08.440
Михаил Непряхин: Вот он может Вернуть ошибку

854
01:34:09.580 --> 01:34:14.120
Михаил Непряхин: обычно верху все перемены пишут шап посмотрим где тут они

855
01:34:15.550 --> 01:34:18.970
Михаил Непряхин: а Так ну это у них просто, это не ошибки

856
01:34:20.750 --> 01:34:26.160
Михаил Непряхин: линкольнер ну, вот у них вот это может вернуть вот это у них типичная как бы своя собственная ошибка

857
01:34:26.290 --> 01:34:37.160
Михаил Непряхин: как а остальное вот они могут сделать из этого ошибку Ну, это старый тип, новый тип, это просто, ошибки писать столбиком? Как Переменная короче говоря

858
01:34:38.190 --> 01:34:40.380
Михаил Непряхин: можно проверить

859
01:34:41.100 --> 01:34:42.790
Михаил Непряхин: прямо вот

860
01:34:43.480 --> 01:34:47.660
Михаил Непряхин: а вот Есть, ошибки Ведь, Тоже из пакетов с

861
01:34:48.640 --> 01:34:53.950
Михаил Непряхин: ну? Это даже Не ошибка это проверка на ошибку из нотекзист

862
01:34:54.750 --> 01:35:08.080
Михаил Непряхин: а также также могут вернуться разные ошибки Там. Соединением Проблемы. Еще что-то и Смысл в том что просто если вы обрабатываете Ошибку, хоть, как-нибудь вот если вы просто хотя бы паник, сделаете паник, и ошибка

863
01:35:08.340 --> 01:35:14.440
Михаил Непряхин: У вас вот там вот уже Будет ошибка то есть как бы вы ее уже не пропустите потому что

864
01:35:14.570 --> 01:35:18.290
Михаил Непряхин: вы вот здесь попытались прочитать файл.

865
01:35:18.870 --> 01:35:20.540
Михаил Непряхин: Ошибка вернулась

866
01:35:20.650 --> 01:35:25.670
Михаил Непряхин: вы ее вы на нее не забили вы ее обработали вы попали Сюда

867
01:35:25.820 --> 01:35:30.900
Михаил Непряхин: и здесь вы должны. Сделать так чтобы не идти дальше

868
01:35:31.100 --> 01:35:41.950
Михаил Непряхин: ну. Какие есть варианты Паника можно прямо, сказать я исключу своего паника паникуй разматывайся трейс сделай все типа Мы завершаем работу ну это не продакшн разве это только для отладки

869
01:35:42.280 --> 01:35:50.910
Михаил Непряхин: можем сделать ос сделать просто фмт При нтв напечатать эту ошибку

870
01:35:51.270 --> 01:35:54.500
Михаил Непряхин: а Потом сделать уэс Экситван и Это бот

871
01:35:57.560 --> 01:36:11.340
Михаил Непряхин: Это было То же самое Что и Там по сути для этого я сделал панику только Без Разматывания стейк трейса ну чаще всего это просто делается ретро на наверх то есть мы Выходим из функции в этот момент

872
01:36:11.690 --> 01:36:19.670
Михаил Непряхин: а на самом верхнем уровне мы обрабатываем эту ошибку ну просто магируем ее блокируем и идем дальше

873
01:36:19.720 --> 01:36:39.070
Михаил Непряхин: у нас по обычные сервера они Не заканчиваются здесь и Сейчас то есть, если ошибка произошла в запросе ну ничего страшного Мы ее реагируем идем Дальше Если ошибка произошла на Этапе Инициативы программы То конечно Мы тут Же все закрываем и говорим Что Мы Не Можем Там открыть этот файл

874
01:36:39.070 --> 01:36:46.530
Михаил Непряхин: но мы и Можем добавить логику что если мы не Можем открыть файл и мы понимаем что Это ну не так уж и важно

875
01:36:46.530 --> 01:36:59.550
Михаил Непряхин: Можем Продолжать Дальше работу то Мы ее. Дальше продолжаем допустим тоже реагируем и продолжаем Дальше просто Мы понимаем Что Мы уже Не можем использовать после этого вот эту переменную файл потому, что, там взировали пустое значение

876
01:36:59.840 --> 01:37:02.040
Михаил Непряхин: а то есть здесь

877
01:37:03.760 --> 01:37:09.730
Михаил Непряхин: возможны разные сценарии в зависимости от того Что это за Ошибка

878
01:37:10.020 --> 01:37:30.000
Михаил Непряхин: а также ошибки типизируются и Мы Можем проверить Что за Ошибка если. Это Ошибка Там, Что файлы Не существует ну окей нормально ничего Страшного например да ну как будто. Бы а если, у нас Там сетевая и

879
01:37:30.700 --> 01:37:31.850
Михаил Непряхин: Ошибка

880
01:37:32.050 --> 01:37:43.320
Михаил Непряхин: в гоу это обычная переменная и Мы очень уважаем ошибки и обрабатываем их все То есть Мы

881
01:37:43.550 --> 01:37:51.340
Михаил Непряхин: буквально Там два-три случая когда Мы забиваем на ошибку потому что Там типа вообще Не важно. Ну. Посмотрим какие Это случаи будут

882
01:37:52.840 --> 01:37:53.890
Михаил Непряхин: так

883
01:37:54.800 --> 01:37:55.590
Михаил Непряхин: Ну. И

884
01:37:55.820 --> 01:37:58.750
Михаил Непряхин: Если город Терн Запрещен почему язык Это Позволяет.

885
01:37:59.040 --> 01:38:04.840
Михаил Непряхин: А Ну. Кто-то ведь где-то Это написал уже и гоу

886
01:38:05.280 --> 01:38:10.450
Михаил Непряхин: а в отличие От других языков Не Ломает, Еще ни разу Не Ломал Обратная совместимость

887
01:38:10.750 --> 01:38:27.090
Михаил Непряхин: и Ну-ка где-то там на поэтом показываю пальцем да То есть как бы гоу Сохраняет обратную совместимость с самой первой версией и если уже что-то везде Было сделано как-то коу Сейчас не может это зади прикетить и извлека выкинуть

888
01:38:27.900 --> 01:38:30.600
Михаил Непряхин: даже в стандартной библиотеке это есть Поэтому тут уж

889
01:38:31.240 --> 01:38:35.460
Михаил Непряхин: как принято называть геттором промель гитлер

890
01:38:35.810 --> 01:38:44.600
Михаил Непряхин: если вы будете читать и

891
01:38:45.310 --> 01:38:46.320
Михаил Непряхин: а То

892
01:38:46.610 --> 01:38:49.700
Михаил Непряхин: гетеры принято называть просто вот ордер

893
01:38:50.530 --> 01:38:52.130
Михаил Непряхин: но а

894
01:38:53.220 --> 01:38:57.400
Михаил Непряхин: так редко называют обычно называют гитлер так что Тут как бы

895
01:38:58.800 --> 01:39:03.000
Михаил Непряхин: нету нету на этот счет строгих каких-то правил

896
01:39:03.540 --> 01:39:09.740
Михаил Непряхин: Можно ограничить валидное значение валидных Значений и сразу в сигнатуре функции То есть как ином

897
01:39:11.820 --> 01:39:19.550
Михаил Непряхин: Нет Нет Так Нет То есть это Не Раз да здесь Так нельзя

898
01:39:20.650 --> 01:39:28.380
Михаил Непряхин: как бы можно вернуть ей Нам ну сделать из йоты и Вернуть но это очень редкое явление Поэтому как бы Нет

899
01:39:28.680 --> 01:39:39.880
Михаил Непряхин: ну это и так нормально все в го и без этого то есть понятно, что, там строгости меньше но в Этой руки развязывают и прочие программы. Писать и приятнее это, делать

900
01:39:40.360 --> 01:39:50.120
Михаил Непряхин: как-то здесь затратить ошибок ну будет так трайс ну как бы и сложно сказать что вы имеете в виду не затратить ошибок ну то есть а Я понял

901
01:39:50.380 --> 01:39:54.780
Михаил Непряхин: Мы в угол оборачиваем ошибки и

902
01:39:55.750 --> 01:39:59.830
Михаил Непряхин: Мы в гоу Всегда имеем весь

903
01:40:00.090 --> 01:40:11.740
Михаил Непряхин: стек трейс так сказать Ну как бы короче если Мы в программе падаем с паникой вот как здесь У Меня Тут фигня какая-то Давайте Сейчас запишу Тут И так Сейчас так тряссь будет ну вот видите там

904
01:40:12.630 --> 01:40:23.500
Михаил Непряхин: ну что даже Не из сектора, я просто Не скомпелировалась но если, бы стресс был я бы увидел Список всего чего Там На каком месте Мы Остановились и начали разматывать стек обратно

905
01:40:23.660 --> 01:40:24.920
Михаил Непряхин: вот и

906
01:40:26.150 --> 01:40:31.840
Михаил Непряхин: Но Он почти Никогда Не, нужен потому Что, все ошибки оборачиваются

907
01:40:32.400 --> 01:40:37.460
Михаил Непряхин: Есть Э такая штука как Рапинг, ошибок и Мы

908
01:40:37.580 --> 01:40:40.320
Михаил Непряхин: на каждой функции, Мы Допустим У нас

909
01:40:42.110 --> 01:40:42.990
Михаил Непряхин: Сейчас

910
01:40:50.630 --> 01:40:52.200
Михаил Непряхин: значит

911
01:40:52.390 --> 01:40:54.920
Михаил Непряхин: Мы вызвали какую то

912
01:40:55.120 --> 01:41:05.110
Михаил Непряхин: вызвали какую то Функцию она вызвала другую Функцию а эта функция вызвала третью Функцию здесь произошла ошибка

913
01:41:05.610 --> 01:41:07.230
Михаил Непряхин: произошла ошибка

914
01:41:07.350 --> 01:41:08.960
Михаил Непряхин: и соответственно

915
01:41:09.300 --> 01:41:10.840
Михаил Непряхин: происходит возврат назад

916
01:41:12.040 --> 01:41:22.740
Михаил Непряхин: а здесь это оригинальная ошибка то есть Мы Там создали эту Ошибку. Она просто возвращается как есть функции би Мы добавляем контекст к этой ошибке

917
01:41:23.600 --> 01:41:35.930
Михаил Непряхин: Мы говорим Что это не просто ошибка а это ошибка Произошедшая функции би а в конкретном месте то есть вот Мы Там, добавляем прямо текстом

918
01:41:37.040 --> 01:41:42.520
Михаил Непряхин: контекст чтобы Мы потом ошибку когда Прочитали Мы Могли восстановить

919
01:41:42.980 --> 01:41:56.580
Михаил Непряхин: всю Цепочку Событий и зайти в Функцию Би. И найти То самое Место, где произошла ошибка дальше эта ошибка возвращается функцию эй и функции эй тоже добавляется свой контекст

920
01:41:56.920 --> 01:42:04.130
Михаил Непряхин: и дальше она тоже возвращается попадает на самый верхний уровень а на Верхнем уровне это все просто Лагируется

921
01:42:05.780 --> 01:42:09.720
Михаил Непряхин: и Мы влоги, имеем всю Цепочку

922
01:42:09.940 --> 01:42:19.130
Михаил Непряхин: и нам, не нужен этот большой стейк трейс потому что вот по этому контексту по добавлению ошибок мы э видим

923
01:42:19.260 --> 01:42:28.310
Михаил Непряхин: всю цепочку вот это в Голову. Прям бест-практис так все Делают это пронков То Ну Не То что Прям совсем все но Там нормальные люди Так делают

924
01:42:29.110 --> 01:42:35.720
Михаил Непряхин: Так михаил расскажи Кратко Как обычно повышают версию бог после развода старая. Как обычная Мать

925
01:42:36.600 --> 01:42:44.480
Михаил Непряхин: Старое Воспоминание. Старый Кот вообще никогда Не ломается просто никогда Нет Проблемы с обратной совместимостью ее просто Нет

926
01:42:44.920 --> 01:43:09.470
Михаил Непряхин: Авторы из автора и библиотек какие-нибудь агитхаби ну знаете опен сорт как Бы нормальные люди не пишут опанцева с хорошим не бывает как Бы чем, больше Людей и

927
01:43:09.470 --> 01:43:13.810
Михаил Непряхин: неудивительно аа почему он ну как бы не такой хороший

928
01:43:13.880 --> 01:43:23.170
Михаил Непряхин: и вот там Например? Он четыреста семьдесят компьютеров разве может четыреста за семьдесят контрибьюторов написать что-то хорошее естественно они чего-то обязательного мают

929
01:43:23.290 --> 01:43:37.570
Михаил Непряхин: и Поэтому чем меньше Людей библиотеку пишут тем и

930
01:43:37.660 --> 01:43:49.080
Михаил Непряхин: сам погриц мы возьмем ну приятно дело что Контрибьютер как бы ну популярный но видите все равно меньше да поменьше все-таки ну там еще зависит от того насколько

931
01:43:49.080 --> 01:43:58.310
Михаил Непряхин: если главный человек в библиотеке как он участвует следит ли он за этим вообще в курсе ли он что такое символ да там можно ли его мать обратно совместить себя нельзя

932
01:43:58.350 --> 01:44:01.870
Михаил Непряхин: но в целом проблемы с обратной совместимостью ее нет

933
01:44:02.610 --> 01:44:18.620
Михаил Непряхин: а можно смело апать до Последней версии ничего Не ломается Но в целом Рекомендация такая Что обычно сидят на Предпоследней версии Ну, просто? Так на всякий случай потому Что как. Только появляется новая версия ну там все равно

934
01:44:18.860 --> 01:44:24.860
Михаил Непряхин: редко Но что нибудь бывает ломается Поэтому лучше подождать хотя бы там пару версий

935
01:44:25.380 --> 01:44:27.130
Михаил Непряхин: этого и

936
01:44:29.000 --> 01:44:44.540
Михаил Непряхин: у меня тут Нет Гомода ну короче Сейчас Вот Сейчас версия Языка я Вот обновил компилятор и

937
01:44:44.750 --> 01:45:01.920
Михаил Непряхин: а и

938
01:45:02.300 --> 01:45:04.560
Михаил Непряхин: бывает очень, Редко что ломается

939
01:45:04.710 --> 01:45:18.870
Михаил Непряхин: почти Никогда Поэтому в голове исключение Программа, продолжает работать про ошибках ни. От программы Не Будет, при ошибках работать У вас там где-нибудь обязательно вы на нил. Пойнттер ресепшен рано Или поздно летите

940
01:45:19.010 --> 01:45:26.870
Михаил Непряхин: я Имею, в виду Что вот Если вы Не обрабатываете ошибки То вы можете попасть в Ситуацию, когда У вас Программа, молча

941
01:45:27.250 --> 01:45:38.810
Михаил Непряхин: продолжает работать. Но она ведет. Себя странно и вы не понимаете Что происходит потому Что вы где То нижнее Подчеркивание заявили для обработки ошибок или где То просто забили на обработку ошибок Поэтому

942
01:45:39.630 --> 01:45:46.060
Михаил Непряхин: особенно, те кто с динамических Языков, кто привык забивать на Ошибки кто вообще в Принципе как вот Эта Концепция Не знакома

943
01:45:47.680 --> 01:45:57.060
Михаил Непряхин: потому что ну? Чего тратить Кеч да Можно и Не Делать Легко Или там сделать его вообще на все здесь так не прокатит здесь вот функция возвращает ошибку все вы должны ее обработать

944
01:45:57.770 --> 01:45:59.260
Михаил Непряхин: просто привыкайте к Этому

945
01:46:00.020 --> 01:46:14.260
Михаил Непряхин: так в сравнении с Однопоточными языками Если мы не смогли открыть файлы и Хотим, потому Что выполнение, Нам нужно обернуть трейкович а вгу как бы наоборот а в гол, Мы должны проверить Не вернулась ли ошибка из функции, и Если, вернулась Мы

946
01:46:14.530 --> 01:46:17.790
Михаил Непряхин: как бы вот и дальше Принимаем решение что с этим делать

947
01:46:17.920 --> 01:46:22.800
Михаил Непряхин: то есть как бы подход. С одной стороны более гибче с Другой стороны

948
01:46:23.710 --> 01:46:31.460
Михаил Непряхин: появляются дополнительные три строчки кода но и ежка, спасибо схлопывает их в

949
01:46:32.110 --> 01:46:44.910
Михаил Непряхин: вот в две все видя как Бы вот редешка тут берет вот это и схлопывает вот эти три превращают в две ну как бы можно там на стройках Настроить хотя мне не очень такое нравится Я обычно все раскрываю

950
01:46:46.680 --> 01:46:54.850
Михаил Непряхин: потому что это читается как бы для меня ну для гошника это читается легко типа гожник он отсмотрит ага много кода но что здесь по делу

951
01:46:55.000 --> 01:47:02.440
Михаил Непряхин: вот по делу вот по делу вот по делу вот по делу остальной обработка ошибки это просто не партийцы даже взглядом

952
01:47:05.010 --> 01:47:19.530
Михаил Непряхин: Так можете потом показать пример рапинга ошибок естественно мы Про это будем подробно разговаривать и

953
01:47:21.330 --> 01:47:24.540
Михаил Непряхин: так все если ошибок вопросов больше нет

954
01:47:26.820 --> 01:47:29.960
Михаил Непряхин: все никто голосом ничего больше не хочет сдать

955
01:47:30.370 --> 01:47:33.240
Михаил Непряхин: с остальным все понятно с мбдингами

956
01:47:34.180 --> 01:47:35.460
Михаил Непряхин: функциями

957
01:47:37.300 --> 01:47:38.220
Михаил Непряхин: ладно

958
01:47:39.350 --> 01:47:45.920
Михаил Непряхин: все ну. Еще Давайте тогда кто написал физбас в следующий Раз глянем

959
01:47:46.200 --> 01:47:47.100
Михаил Непряхин: вот

960
01:47:57.520 --> 01:48:02.310
Михаил Непряхин: Шибки постепенно когда будем сталкиваться Еще ошибки будем разбирать

961
01:48:03.280 --> 01:48:05.360
Михаил Непряхин: все тогда давайте всем. Пока.

