WEBVTT

1
00:05:09.150 --> 00:05:13.590
Михаил Непряхин: Так всем, привет как видно срочно плюс ко пожалуйста, Поставьте

2
00:05:22.720 --> 00:05:36.330
Михаил Непряхин: Ммм так звук Немножечко изменил. Говорить буду потише шум голос поберечь новые наушники для самоконтроля ну, ты Безношников, начинаю

3
00:05:36.880 --> 00:05:45.060
Михаил Непряхин: перми через какое Время начинаю Громко говорить Звук немного погромче микрофон Трек

4
00:05:47.760 --> 00:05:52.350
Михаил Непряхин: ну, давайте давайте Еще попробую выкрутить звук

5
00:06:02.750 --> 00:06:04.890
Михаил Непряхин: Так вот давайте, вот такой фрагмент

6
00:06:05.750 --> 00:06:10.290
Михаил Непряхин: где от проце Делать через компрессор Так получше звук

7
00:06:16.480 --> 00:06:25.780
Михаил Непряхин: накну кей прямо как ты Болезненно Дарим По связкам Еще до конца Не Остановились

8
00:06:42.800 --> 00:06:50.220
Михаил Непряхин: Так ну Давайте значит сегодня говорим про

9
00:06:50.980 --> 00:06:58.269
Михаил Непряхин: Есть несколько тем которые нужно добить вот Начнем Мы

10
00:06:58.750 --> 00:07:03.750
Михаил Непряхин: с ошибок да Начнем Мы с Обработки ошибок

11
00:07:04.600 --> 00:07:10.490
Михаил Непряхин: Значит так Как в Гоу Есть обработка ошибок то эта тема

12
00:07:10.650 --> 00:07:19.219
Михаил Непряхин: Ну Несколько специфическая отличается от других языков. И про это надо ну просто понимать как это устроено

13
00:07:19.990 --> 00:07:29.059
Михаил Непряхин: не уметь этим пользоваться значит вот здесь пример это ну вот представим что у нас просто есть

14
00:07:29.510 --> 00:07:33.110
Михаил Непряхин: какая-то слабость. Архитектура ну вот такая Же как, у нас

15
00:07:33.390 --> 00:07:37.000
Михаил Непряхин: значит есть Серверы это Ипшный Например

16
00:07:37.480 --> 00:07:43.650
Михаил Непряхин: называемые ну приходит на этот Сервис запрос а

17
00:07:44.090 --> 00:07:49.789
Михаил Непряхин: значит Это Контроля То есть постоянно Же с Контролером Не вызывает си кейс

18
00:07:49.980 --> 00:07:55.770
Михаил Непряхин: ньюс кейс У нас вызывает Два адаптации отпозгли и Отредисон

19
00:07:56.600 --> 00:08:02.520
Михаил Непряхин: ну вот У нас они здесь и один из Адаптеров возвращает Ошибку

20
00:08:05.120 --> 00:08:13.410
Михаил Непряхин: значит сразу обратите внимание что У нас здесь Две? Ошибки для каждого доктора,

21
00:08:19.530 --> 00:08:26.280
Михаил Непряхин: для Ради Родилсянабтерната ну вот Мы Сейчас проверяем скажем пример как Будто Ошибка произошла? В погре

22
00:08:27.140 --> 00:08:29.789
Михаил Непряхин: значит Ошибка Тоже произошло а позади

23
00:08:30.100 --> 00:08:33.770
Михаил Непряхин: соответственно мы Дойдем вот до этого места

24
00:08:35.059 --> 00:08:41.170
Михаил Непряхин: здесь у нас вернется ошибка и Мы ее Начнем возвращать дальше то Есть, эта функция вернет Ошибку?

25
00:08:41.640 --> 00:08:45.290
Михаил Непряхин: Реквием Тоже. Здесь отвернет Ошибку?

26
00:08:45.720 --> 00:08:47.999
Михаил Непряхин: Здесь Мы Получим Ошибку?

27
00:08:48.740 --> 00:08:52.390
Михаил Непряхин: И Мы ее просто распечатаем Давайте посмотрим Что Напечатается

28
00:08:55.140 --> 00:08:58.090
Михаил Непряхин: морекрест стирер возраст редактор над фонд

29
00:08:58.300 --> 00:09:04.300
Михаил Непряхин: так чок как он По звуку вообще как быть вообще мне нетерпимо что-то подстроить слушабельным лошаблиным

30
00:09:07.650 --> 00:09:18.069
Михаил Непряхин: не много Ли этого дыхания Так как я выиграл. У Компресса То Дыхание больше появилось ну Окей спасибо

31
00:09:19.010 --> 00:09:26.420
Михаил Непряхин: Так вот значит как у нас выглядит ошибка оркестр ира

32
00:09:26.580 --> 00:09:35.799
Михаил Непряхин: ну рекестр это вот мы мы сами написали интервен то есть как бы эту часть нам, не очень интересно и мы Видим что

33
00:09:36.430 --> 00:09:39.629
Михаил Непряхин: вот Наша ошибка поздравил. Садаптер нотфунд

34
00:09:45.090 --> 00:09:51.770
Михаил Непряхин: вообще зачем нужны ошибки да как будто философия зачем как бы

35
00:09:51.870 --> 00:09:59.290
Михаил Непряхин: мы тут чего то как бы заморачиваемся думаем как, их назвать и так далее для того чтобы когда эта Ошибка произошла

36
00:09:59.520 --> 00:10:03.549
Михаил Непряхин: и мы записали события в волг через блогер

37
00:10:04.120 --> 00:10:08.819
Михаил Непряхин: мы ну это соответственно этот лок он Попал в систему хранения Логов

38
00:10:09.360 --> 00:10:14.860
Михаил Непряхин: и дальше Мы когда эту ошибку Найдем увидим

39
00:10:15.360 --> 00:10:19.629
Михаил Непряхин: Мы хотели бы понять по Коду где Она произошла

40
00:10:20.710 --> 00:10:25.009
Михаил Непряхин: потому, Что если Мы Не можем понять погоду вот Место, где это Место,

41
00:10:25.350 --> 00:10:35.560
Михаил Непряхин: если Мы и назвали ошибку конкретно Мы просто вот когда будем читать лок все вот Мы Там систему блогера планирует наша ошибка земли контраце

42
00:10:35.840 --> 00:10:40.659
Михаил Непряхин: ищем по проекту ищем по проекту Находим вот та самая Строчка

43
00:10:41.820 --> 00:10:51.009
Михаил Непряхин: и Мы Понимаем Что вот эта ошибка вылетела она Находится всего лишь в одном месте и понятно, где ошибка произошла можем

44
00:10:51.310 --> 00:10:56.750
Михаил Непряхин: небажить на чем минус этого Подхода

45
00:10:57.570 --> 00:10:59.630
Михаил Непряхин: в том что у нас нет контекстов

46
00:10:59.810 --> 00:11:11.780
Михаил Непряхин: то есть мы вот поняли вот до этого места ну как бы нам повезло что ошибка Использовалась. Только в одном месте но если бы ошибка Использовалась. В двух местах в трех местах

47
00:11:12.530 --> 00:11:15.420
Михаил Непряхин: мы ну. Были бы вынуждены гадать,

48
00:11:15.990 --> 00:11:18.299
Михаил Непряхин: а откуда на самом деле эта ошибка вылетела

49
00:11:19.880 --> 00:11:27.850
Михаил Непряхин: ну показательные примеры с чтением исфаева. Например Там читаете файл Там происходит ошибка

50
00:11:27.870 --> 00:11:41.099
Михаил Непряхин: и если вы в нескольких местах этот файл, читаете или допустим Два файла читаете подряд вылетела у вас ошибка что невозможно прочитать файл, а какой именно дифай его невозможно прочитать Там Не, будет, написано

51
00:11:41.550 --> 00:11:50.049
Михаил Непряхин: и хотелось бы добавить контекст чтобы анбажить понять в каком месте произошла ошибка Тем не, Менее вот

52
00:11:50.640 --> 00:11:55.930
Михаил Непряхин: мы Сейчас будем смотреть Примеры как правильно делать. Но вот Это, к вам в жизни тоже будут встречаться

53
00:11:56.840 --> 00:12:03.480
Михаил Непряхин: Это, Возврат головой ошибки То есть вот наша Функция она вызвала какую То другую функцию

54
00:12:03.820 --> 00:12:09.790
Михаил Непряхин: получи, Мы такие Ошибку, Мы проверили да Там ошибкам не берем и возвращаем ее наверх как есть

55
00:12:10.050 --> 00:12:16.640
Михаил Непряхин: этот подход неправильный то есть здесь У нас Нет контекста и это

56
00:12:17.290 --> 00:12:23.330
Михаил Непряхин: ну очень сильно затрудняет де-факто в этих случаях как люди поступают ну они

57
00:12:23.610 --> 00:12:28.160
Михаил Непряхин: просто стек трейс тоже записывает боги и ну

58
00:12:28.800 --> 00:12:36.329
Михаил Непряхин: этот трейс это Не самая как бы Дупочитаемая на самом деле Штука Но для того чтобы все-таки понять стек вызовов

59
00:12:36.570 --> 00:12:50.520
Михаил Непряхин: Мы Вынуждены ранить Наш весь трейс во-первых он Занимает много места где Выжирает Объем большой в системе хранения Логов и вообще как бы компании где я работал обычно

60
00:12:50.860 --> 00:13:00.210
Михаил Непряхин: делятся на Две части Те кто Запарируется О хранении и Те кому пофигу и обычно вот здесь системы хранения сервера на Которой хранятся логики, они

61
00:13:00.410 --> 00:13:06.459
Михаил Непряхин: по вот этот Размер инфраструктуры количество северов оно превышает количество Серверов

62
00:13:07.300 --> 00:13:16.629
Михаил Непряхин: Но только реально обычных Продуктовых Серверов то есть на Хранение, Логов тратится очень много местов для ресурсов

63
00:13:16.990 --> 00:13:27.840
Михаил Непряхин: и есть второй Тип. Компании который об этом беспокоится, и например, просто вам скажут ну столь Трез, По любому событию выкидать не можете а давайте думаете, как-то оптимизировать свои боги

64
00:13:28.550 --> 00:13:33.119
Михаил Непряхин: Так вот значит как правильно Не, работает с Ошибками в Голову.

65
00:13:33.330 --> 00:13:34.910
Михаил Непряхин: Значит вот второй вариант

66
00:13:35.890 --> 00:13:45.079
Михаил Непряхин: Здесь Сейчас все пять примеров Мы Будем Рассматривать пять десять кейсов работы с ошибками и они все будут тут в одной структуре да с небольшими изменениями

67
00:13:45.930 --> 00:13:47.860
Михаил Непряхин: на верхнем уровне все То же самое

68
00:13:49.170 --> 00:13:57.190
Михаил Непряхин: вызываем Марквест и смотрите Мы не просто Возвращаем голую ошибку Мы Возвращаем ее с контекстом.

69
00:13:58.040 --> 00:14:07.710
Михаил Непряхин: Выглядит оно вот Так вот фмт точка и рф дальше в Кавычках

70
00:14:07.910 --> 00:14:14.339
Михаил Непряхин: у нас контекст в нашем случае Мы говорим что Мы вызывали юс кейс

71
00:14:14.550 --> 00:14:19.760
Михаил Непряхин: говорит Очарова значит что когда Мы вызывали весь кейс он Вернул ошибку

72
00:14:20.890 --> 00:14:29.139
Михаил Непряхин: вот это ошибка и мы ее сюда дозаписываем с Помощью специального синтаксиса дабл. Ю оцендобою

73
00:14:31.280 --> 00:14:44.409
Михаил Непряхин: значит здесь надо поговорить обща а что такое ошибка ошибка это интерфейс один трофейс э ира возвращающий стрингу

74
00:14:45.330 --> 00:14:49.299
Михаил Непряхин: то Есть это Два указателя один новеллью

75
00:14:49.490 --> 00:14:52.830
Михаил Непряхин: а второй на тип эйти Помбовать ошибка

76
00:14:54.190 --> 00:15:05.820
Михаил Непряхин: а Мы Можем спокойно взять и Записать вот Так вот здесь даже решка ничего Не подчеркнет значит этот синтаксис означает Что Мы вот это вот записываем как строку

77
00:15:06.810 --> 00:15:20.230
Михаил Непряхин: и посмотрим на эти функции потом как-нибудь там их очень много но самое популярное это с Хотим, записать строку дей. Хотим, записать диджитал типа цифровом число

78
00:15:20.900 --> 00:15:28.750
Михаил Непряхин: а вы Хотим, Этого просто вэлью вообще запиши что угодно и сюда пришел запиши как Есть и

79
00:15:28.870 --> 00:15:38.570
Михаил Непряхин: значит Специальный габл. Ю это враг это Именно синтез Только для ошибок а и Рапинг, ошибки Оборачивание ошибки

80
00:15:40.100 --> 00:15:43.810
Михаил Непряхин: и это позволяет Дальше

81
00:15:44.140 --> 00:15:56.929
Михаил Непряхин: увидеть во-первых весь стек трейс потому что мы можем в любой момент взять и прочитать ошибку вот таким образом и как видите здесь вернет Настроение, стринга

82
00:15:57.670 --> 00:16:03.519
Михаил Непряхин: то есть, Мы когда Мы Так Читаем то Мы Возвращаем Вот полностью ошибку как есть,

83
00:16:03.750 --> 00:16:10.770
Михаил Непряхин: и Вот принтерме Вот здесь Он Так и делает то есть он получает ее и просто распечатывает ну! То же самое делает что

84
00:16:13.090 --> 00:16:17.950
Михаил Непряхин: вот тут, Тоже, самое делает вот а

85
00:16:18.310 --> 00:16:26.270
Михаил Непряхин: и когда мы вот Так вот таким образом записываем Ошибку, мы создаем Новую Ошибку,

86
00:16:26.370 --> 00:16:31.529
Михаил Непряхин: которую возвращаем то есть ведь эта функция она создает Новую Ошибку, из аргументов

87
00:16:32.160 --> 00:16:39.839
Михаил Непряхин: и эта ошибка будет обвернутой над оригинальной Ошибкой а оригинальная ошибка прошла здесь

88
00:16:40.240 --> 00:16:46.429
Михаил Непряхин: и вот до оригинальной ошибки мы Всегда можем достучаться и это

89
00:16:46.580 --> 00:16:49.319
Михаил Непряхин: м Иногда это важно это нужно эта комната

90
00:16:49.650 --> 00:16:53.909
Михаил Непряхин: Поэтому в целом ну. Выглядит это может быть не очень презентабельно

91
00:16:54.680 --> 00:17:02.710
Михаил Непряхин: но это вот стандарт то есть, это, предложение было Сделано в версии гоу Один, тринадцать

92
00:17:03.040 --> 00:17:05.740
Михаил Непряхин: третий сезон Частная версия гу Один, двадцать четыре

93
00:17:06.230 --> 00:17:15.199
Михаил Непряхин: По версии гоу Один, тринадцать был введен, вот этот синтаксис с фарапингом и в общем-то

94
00:17:15.670 --> 00:17:18.619
Михаил Непряхин: то-то значит Так я остался

95
00:17:19.329 --> 00:17:25.770
Михаил Непряхин: как привыкли работать в версии Один тринадцать было очень много библиотек Которые позволяли Делать То же самое

96
00:17:26.480 --> 00:17:37.309
Михаил Непряхин: и вот они Так и остались на том старом синтезе ну вы когда будете работать с реальными Проектами просто увидите что Работают здесь По-другому чаще всего Через ирас

97
00:17:38.920 --> 00:17:47.200
Михаил Непряхин: значит альтернативный ситоксис точка лав тк

98
00:17:53.750 --> 00:18:04.240
Михаил Непряхин: пакет это минуты я вот тут исключил из Этого короче Есть пакет вот

99
00:18:04.960 --> 00:18:09.850
Михаил Непряхин: который был популярен очень до версий Один тринадцать он назывался эррос

100
00:18:10.070 --> 00:18:18.150
Михаил Непряхин: и Ну когда на Это все посмотрели создатели, языка подумали Что ну да надо его как бы

101
00:18:18.290 --> 00:18:20.580
Михаил Непряхин: то Что Там было удачно повторить

102
00:18:20.790 --> 00:18:24.170
Михаил Непряхин: но вот вместо вот Этой функции с мраком

103
00:18:24.500 --> 00:18:31.990
Михаил Непряхин: они сделали вот такой синтез, а в остальном функционал оттуда скопировали к себе,

104
00:18:32.700 --> 00:18:38.500
Михаил Непряхин: и ну там в Этом случае и

105
00:18:40.200 --> 00:18:41.770
Михаил Непряхин: то есть вы вот это вот

106
00:18:41.900 --> 00:18:43.580
Михаил Непряхин: то же самое что и вот это

107
00:18:44.240 --> 00:18:48.580
Михаил Непряхин: но это Не, тематично потому что Мы Тянем

108
00:18:48.710 --> 00:18:52.050
Михаил Непряхин: пакет который нам Не, Нужен ни для чего

109
00:18:52.210 --> 00:18:57.590
Михаил Непряхин: кроме как, чтобы сделать рапинг, ошибок вот так вот они вот так вот

110
00:18:58.140 --> 00:19:03.120
Михаил Непряхин: Поэтому как, бы ну да немножко, страшнее чем вот это вот

111
00:19:03.490 --> 00:19:09.600
Михаил Непряхин: а Ну привыкайте короче вот к такому индексу Оборачивание ошибок

112
00:19:10.820 --> 00:19:20.750
Михаил Непряхин: так вот и смотрите значит в противовес тому как до этого мы обрабатывали видите везде возвращаем ошибку ошибку ну как бы типа коротко

113
00:19:21.180 --> 00:19:29.260
Михаил Непряхин: получается вот такой такой синтекс то есть мы возвращаем обернутую ошибку аа

114
00:19:29.630 --> 00:19:37.390
Михаил Непряхин: Так и здесь так как Появляется контекст уже нет нужды Делать

115
00:19:38.820 --> 00:19:43.160
Михаил Непряхин: более конкретную Ошибку. А Можно работать с более в общем на ошибкой

116
00:19:43.520 --> 00:19:47.519
Михаил Непряхин: смотрите До этого У нас была ошибка каждая на свой доктор

117
00:19:48.170 --> 00:19:55.750
Михаил Непряхин: что-то Мы Не смогли найти, возглася что-то Мы Не смогли найти, в Ряде и Это самое популярное

118
00:19:55.870 --> 00:20:00.530
Михаил Непряхин: ошибка которую все делают, То на каждую

119
00:20:01.670 --> 00:20:06.840
Михаил Непряхин: а на каждый случай на каждый автор, Создается своя уникальная ошибка Нотариус,

120
00:20:07.230 --> 00:20:19.070
Михаил Непряхин: хотя дальше почти Никогда Не имеет смысла и

121
00:20:19.350 --> 00:20:24.919
Михаил Непряхин: Поэтому Мы просто создаем Одну Нотфаунд, но универсальную на все Адаптации

122
00:20:25.490 --> 00:20:45.079
Михаил Непряхин: с ней удобнее работать и дальше когда Мы хотим, на нее проверить ну когда Мы будем на нее проверять нам. Надо будет проверять только на нее одну а Не на все вот эти вот адаптеров может быть пятнадцать штук у вас пятнадцать минутка основных ошибок короче неудобно когда она у вас одна ну это удобно

123
00:20:46.280 --> 00:20:49.220
Михаил Непряхин: и как будут выразить ошибки в Этом случае

124
00:20:58.090 --> 00:21:04.220
Михаил Непряхин: николас кейдж вызвал поиск, адаптер а поинтересендапте Вернул ноут фаунд

125
00:21:05.490 --> 00:21:09.940
Михаил Непряхин: получается Информативная Цепочка того что произошло

126
00:21:10.050 --> 00:21:14.369
Михаил Непряхин: и это аналог стек трейса то есть угу

127
00:21:14.640 --> 00:21:18.150
Михаил Непряхин: когда Мы видим стэк трайс ну то есть что-то идет, Не так

128
00:21:18.630 --> 00:21:28.829
Михаил Непряхин: стейк начинает разматываться и У нас Там много строк и типа кто какую Функцию вызывал и Мы Там можем его читать читать и все-таки понять где произошла Ошибка

129
00:21:29.430 --> 00:21:32.610
Михаил Непряхин: это способ. Компактно записать то же самое.

130
00:21:33.270 --> 00:21:43.310
Михаил Непряхин: И он очень помогает когда вы ищете Хотите, найти проблему где ошибка произошла но

131
00:21:43.410 --> 00:21:47.959
Михаил Непряхин: из-за этого приходится, руками добавлять вот Эти, штуки

132
00:21:49.900 --> 00:21:56.600
Михаил Непряхин: есть м автоматизированные инструменты как это Делать например,

133
00:21:57.220 --> 00:22:00.950
Михаил Непряхин: Мэри есть Сейчас посмотрим этого Или нет

134
00:22:10.730 --> 00:22:14.340
Михаил Непряхин: Ммм члены когда вообще Не популярна

135
00:22:15.350 --> 00:22:18.680
Михаил Непряхин: ну по-моему ты этот пакет Подвидел я такой пакетик

136
00:22:19.240 --> 00:22:23.410
Михаил Непряхин: Непопулярная но я работал с чуваком из

137
00:22:23.870 --> 00:22:29.290
Михаил Непряхин: бегета, т хостин-провайдер вот они там использовали и ее

138
00:22:29.580 --> 00:22:34.939
Михаил Непряхин: значит в этом случае вот она вот так вот оборачивает Не, ерун получается покорочен

139
00:22:40.440 --> 00:22:43.180
Михаил Непряхин: пример будет нет как она Ошибку возвращает

140
00:22:46.860 --> 00:22:51.899
Михаил Непряхин: ну вот Не вижу ну короче суть в том что, вот она Позволяет,

141
00:22:52.390 --> 00:22:57.759
Михаил Непряхин: То же самое добиться, но без дополнительно этого контекста

142
00:22:58.250 --> 00:23:10.440
Михаил Непряхин: То есть Там она по-моему с помощью вызова вот Там Есть, брон Тайная Функция которая позволяет. Узнать на Какой строчке кода Мы Сейчас находимся Когда выполняем

143
00:23:10.780 --> 00:23:21.559
Михаил Непряхин: ну когда ошибка происходит эта трагедия Там Тоже, указана на Какой строчке с номером строки произошла ошибка ну, вот эта вот библиотека Она использует функцию

144
00:23:22.130 --> 00:23:29.109
Михаил Непряхин: и Таким образом строят вот эту вот ту же цепочку но как видели там двести майков то Есть она непопулярна абсолютно

145
00:23:29.540 --> 00:23:44.219
Михаил Непряхин: Поэтому единственный Дипломатичный, способ это вот Делать вот так вот и даже я призываю вас Не писать Никакие Там свои европеры потому что. Ну Там все библиотеки, и весь, упансорс они используют, этот вот диаматичный, синдексис

146
00:23:45.480 --> 00:23:53.599
Михаил Непряхин: да и значит вот Давайте еще Раз, посмотрим что. Чего мы пришли значит вот У нас был такой такая ошибка

147
00:23:53.770 --> 00:23:59.850
Михаил Непряхин: а то есть ээ ну да Можно Догадаться что вызывал союз кейс

148
00:24:00.470 --> 00:24:07.140
Михаил Непряхин: Но Информация о том. Что был вызван виски здесь нет на самом деле Мы просто видим что ошибка произошла в подлинных редакторах

149
00:24:07.810 --> 00:24:16.949
Михаил Непряхин: и когда Мы Так скажем. Инструментируем Можно сказать код она уже вот Получаться цепочкой

150
00:24:17.770 --> 00:24:21.149
Михаил Непряхин: тут возникает вопрос как это грамотно

151
00:24:21.640 --> 00:24:26.680
Михаил Непряхин: описать вот эти вот контекстные вещи ну во Первых

152
00:24:27.140 --> 00:24:32.420
Михаил Непряхин: если у вас подряд два раза вы вызываете одно, и То же Такое бывает

153
00:24:33.240 --> 00:24:43.550
Михаил Непряхин: и вы получаете один и тот же контекст приходится добавлять какие То отличительные знаки ну Там Не знаю это первый, Вызов это Второй

154
00:24:43.860 --> 00:24:53.590
Михаил Непряхин: для того чтобы потом когда вы получили ошибку вы поняли где Она произошла Она произошла вот здесь были строчки

155
00:24:54.110 --> 00:25:03.110
Михаил Непряхин: то Есть, Основная задача до вот этого вот контекстного Описания найти ту самую заветную Строчку где произошла ошибка

156
00:25:03.580 --> 00:25:14.439
Михаил Непряхин: Казалось. Бы странно Но очень. Часто в чужом козе будете что-нибудь дыбажить видеть ошибку

157
00:25:14.720 --> 00:25:35.430
Михаил Непряхин: и только гадать где черт побери она вылетела отсюда, она и Но вам приходится а вот Это вот добавлять

158
00:25:36.380 --> 00:25:47.150
Михаил Непряхин: у меня Есть макросы для этого ну понятно, что если, Есть купаем То купай вот Это отличное дело То Есть Он Не дурак Он в Принципе Очень Быстро понимает как. Вы Эти. Вещи Пишете

159
00:25:47.680 --> 00:26:04.480
Михаил Непряхин: Вот Но Также Есть макросы Которые он скинул а значит Лайф тим плейтс есть они меня здесь Нет шашлык

160
00:26:12.430 --> 00:26:15.039
Михаил Непряхин: Ну Возможно они здесь Не добавлены

161
00:26:16.070 --> 00:26:19.190
Михаил Непряхин: страйк Таксон да Возможно если. Не добавлено мне

162
00:26:20.340 --> 00:26:25.630
Михаил Непряхин: Сейчас Проверим прочь вот если, вот ир вот так вот на Время набираете в

163
00:26:25.930 --> 00:26:36.789
Михаил Непряхин: идишки Нажимать центр У вас вот генерица ну как бы Шабочек такой вот у меня значит есть два макроса любимых это я делаю

164
00:26:38.640 --> 00:26:43.089
Михаил Непряхин: ну вот вместо вот этого у меня генерится сразу сриттерном

165
00:26:43.420 --> 00:26:50.019
Михаил Непряхин: и вот с этим вот всем только вот в этом месте я оставляю курсор и мне здесь надо будет написать

166
00:26:50.170 --> 00:26:52.369
Михаил Непряхин: то есть все там Делают, вв

167
00:26:53.000 --> 00:27:04.849
Михаил Непряхин: ну вот здесь не кручаю в Этой решке у меня не подключены эти макросы и получаю уже готовый такой кусок кода где надо вот в этом месте только написать что какой контекст

168
00:27:06.470 --> 00:27:19.650
Михаил Непряхин: значит про само написание, контекста тоже тут, есть Два Подхода, значит первый и вы пишете на английском типа вот как здесь ну Или еще более Понятно,

169
00:27:19.960 --> 00:27:23.790
Михаил Непряхин: типа Там был вызван какой то автор

170
00:27:24.140 --> 00:27:29.190
Михаил Непряхин: здесь у, Меня шутка сокращенная версия да тут, можно прямо, вот писать предложение

171
00:27:29.920 --> 00:27:35.289
Михаил Непряхин: мне больше нравится, Стиль, либо вот максимально

172
00:27:35.760 --> 00:27:45.169
Михаил Непряхин: коротко но чтобы это было контекстом понятно, либо я копирую название вызываемой функции, просто я его сразу добавляю

173
00:27:45.560 --> 00:27:49.449
Михаил Непряхин: в этом случае тоже получается хорошо что, если мы здесь сделаем

174
00:27:50.270 --> 00:27:55.590
Михаил Непряхин: вот мы вызывали эскиз Если тут Есть название пакета Соответственно вместе с названием. Пакета

175
00:27:57.170 --> 00:27:59.320
Михаил Непряхин: как в таком. Случае получается ошибка

176
00:28:07.850 --> 00:28:12.580
Михаил Непряхин: Единственное что. Есть соглашение что. Ошибка должна начинаться с маленькой. Буквы

177
00:28:12.800 --> 00:28:18.359
Михаил Непряхин: но для Оборачивания, ошибок это правила не действует но в целом как бы

178
00:28:19.100 --> 00:28:22.969
Михаил Непряхин: вот это тот способ, мне ты не время нравиться больше

179
00:28:23.180 --> 00:28:25.589
Михаил Непряхин: что она все с маленькой буквы и

180
00:28:26.090 --> 00:28:33.320
Михаил Непряхин: единственное что тут приходится больше думать, не просто скопировать строчку а еще как бы над ней порассуждать

181
00:28:35.330 --> 00:28:44.530
Михаил Непряхин: так ну вот все как бы основная базовая часть здесь я рассказал так будет ли Разница в Рф

182
00:28:45.140 --> 00:28:47.869
Михаил Непряхин: а цена будет Через процентов, суда будет

183
00:28:48.190 --> 00:28:54.870
Михаил Непряхин: дело в Том, что если вы Сделаете Процент тэс то не будет аврапинга

184
00:28:55.260 --> 00:29:00.480
Михаил Непряхин: то есть вот Это вот дабл ю оно дилет

185
00:29:00.870 --> 00:29:06.109
Михаил Непряхин: эмбдинг да получается Давайте посмотрим как Там ира ту сторону шин.

186
00:29:07.150 --> 00:29:10.999
Михаил Непряхин: Так Нужен Пакет ера

187
00:29:15.410 --> 00:29:22.469
Михаил Непряхин: вообще ошибки Создаются через, ераста ну вот у меня здесь есть пример вот я Создвинул ошибку

188
00:29:34.120 --> 00:29:37.150
Михаил Непряхин: Так шаг с белением

189
00:29:40.280 --> 00:29:42.200
Михаил Непряхин: эра Стринг,

190
00:29:46.420 --> 00:29:50.970
Михаил Непряхин: влад Такнот

191
00:30:01.940 --> 00:30:08.620
Михаил Непряхин: тут чего даже не очевидным как Оно подкопано настроено Так

192
00:30:12.620 --> 00:30:21.160
Михаил Непряхин: очень не знаю в каком месте в этом стандартной библиотеке это Искать но суть в том что эммм значит работает это Так

193
00:30:21.470 --> 00:30:26.550
Михаил Непряхин: Что дабл. Ю он создает новую структуру ошибки

194
00:30:27.500 --> 00:30:30.650
Михаил Непряхин: а вот Эту ошибку записывают ее полем

195
00:30:31.560 --> 00:30:44.450
Михаил Непряхин: и как У вас. Получается матрешка каждый Раз когда вы делаете вот первый Раз ошибка возникла здесь и это настоящая ошибка дальше здесь мы ее взяли создали Новую, ошибку

196
00:30:44.660 --> 00:30:48.020
Михаил Непряхин: и Эту ошибку оригинальную поместили ее полем

197
00:30:48.540 --> 00:30:58.150
Михаил Непряхин: дальше Мы опять вернули и то же самое то есть у нас получилась уже ошибка в ошибке матрешка и

198
00:30:58.930 --> 00:31:05.990
Михаил Непряхин: если вы возьмете сделать с то ну результат был тот же на самом деле этот Год тот же

199
00:31:06.720 --> 00:31:13.279
Михаил Непряхин: но вы не сможете сделать распечатку распаковку а это У нас следующая тема

200
00:31:13.420 --> 00:31:28.719
Михаил Непряхин: как Распечатывать ошибки Доставать их Оттуда Поэтому да надо делать обязательно как Цену добрую рок Что Ей не подсвечивают потому Что ну Очевидно как бы эстетический анализ должен был показать Что я Имею в виду совсем другое, я хочу сделать враг

201
00:31:30.830 --> 00:31:36.759
Михаил Непряхин: Так на каком Уровне Должна блокироваться Ошибка на Уровне Контроля Российские Переименования

202
00:31:36.990 --> 00:31:42.440
Михаил Непряхин: отличный вопрос значит Смотреть когда Мы Думаем где залогировать

203
00:31:42.870 --> 00:31:46.840
Михаил Непряхин: Мы Всегда Манируем на самом верхнем уровне кто

204
00:31:47.280 --> 00:31:52.490
Михаил Непряхин: Всегда, же ведь какая-то гарутина вызывает правильно восемнадцать сервер

205
00:31:52.810 --> 00:31:57.190
Михаил Непряхин: он представил что У нас здесь сервер и запрос пришел

206
00:31:57.340 --> 00:32:06.540
Михаил Непряхин: создалась Новая грутина ну Помните Там как сервер устроен он принимает запрос и поднимает Новую Горучину. Вот проставившую гурутина Поднимая вот этот запрос

207
00:32:06.930 --> 00:32:14.619
Михаил Непряхин: и вот Мы Сейчас вот здесь находимся в самом, начале к работы этого запроса в самом, начале работы бутины

208
00:32:15.340 --> 00:32:17.039
Михаил Непряхин: этот уровень называется, верхний

209
00:32:17.680 --> 00:32:27.809
Михаил Непряхин: так вот ошибки Реагируются Всегда, на Верхнем Уровне на самом, Верхнем Уровне вот где гурутина Начала работать над чем-то Он в этом месте Мы Егогируем

210
00:32:28.200 --> 00:32:34.800
Михаил Непряхин: То есть мы Могли бы просто вызвать здесь ньюс кейс

211
00:32:35.370 --> 00:32:38.080
Михаил Непряхин: отвис кейт бы когда здесь получил. Ошибку

212
00:32:38.400 --> 00:32:41.400
Михаил Непряхин: вот Он был здесь и замагировал да

213
00:32:42.180 --> 00:32:58.040
Михаил Непряхин: ну Так неправильно делать правильно возвращать ошибку на самый Верх кто-то же Вызвал в Конечном итоге в самом верху кто-то есть вызывающий Этот менеджер до этого он сказал вызовись вся, Цепочка Вот кто это сделал

214
00:32:58.230 --> 00:33:03.450
Михаил Непряхин: Вот и его и ответственность это все дело залогировать запротоколировать

215
00:33:04.270 --> 00:33:13.409
Михаил Непряхин: иногда бывают ситуации когда нужно что-то залогировать где-то Там внутри этой Цепочки Вызова допустим Там какой-то цикл

216
00:33:13.610 --> 00:33:21.190
Михаил Непряхин: и десять элементов цикле обрабатываться если Один не обработался нам например, не страшно гладко

217
00:33:21.490 --> 00:33:28.390
Михаил Непряхин: ну тогда пусть он его здесь заблокирует а вернет наверх то Что Получилось

218
00:33:29.110 --> 00:33:47.300
Михаил Непряхин: или бывают ситуации короче говоря когда хочется залогировать Внутри и тогда, Мы лагируем вот Там, где это удобно но это исключение а правило тот кто вызвал на самом верху и вот получил результат если Это ошибка когда он его заблокировал.

219
00:33:49.020 --> 00:34:01.940
Михаил Непряхин: Так дальше Раз мы Таким Хитрым образом запаковываем наши Ошибки матрешку, значит мы можем и Распаковать

220
00:34:02.610 --> 00:34:04.640
Михаил Непряхин: и За это отвечает.

221
00:34:04.860 --> 00:34:12.400
Михаил Непряхин: Функция ирас Анвра значит Что Она делает Принимает Ошибку Ммм

222
00:34:16.050 --> 00:34:22.540
Михаил Непряхин: короче здесь к сожалению, Не Увидеть ее Логики Но опять же как, бы суть в чем Мы и

223
00:34:23.260 --> 00:34:31.499
Михаил Непряхин: получили ошибку какую То Там ничего Не менялось вот я только этот Год написал Мы получили Ошибку и хотим,

224
00:34:32.280 --> 00:34:34.780
Михаил Непряхин: а канал на сегодняшний день Давайте я еще Раз посмотрю

225
00:34:39.350 --> 00:34:43.650
Михаил Непряхин: вот она мы хотим, посмотреть.

226
00:34:44.130 --> 00:34:45.850
Михаил Непряхин: Как, бы на

227
00:34:46.750 --> 00:34:53.979
Михаил Непряхин: вот У нас ошибка реквистерра атом и здесь печатана в принтере вот это уже пошла ошибка то Есть, вот у нас здесь три Ошибки

228
00:34:54.370 --> 00:34:59.939
Михаил Непряхин: а От вискитиса от посгрей и от нотфунда но от фронта есть сама оригинальная ошибка вот она

229
00:35:00.190 --> 00:35:04.680
Михаил Непряхин: как до нее достучаться ну во-первых если, мы сделаем анврап один Раз

230
00:35:06.060 --> 00:35:15.850
Михаил Непряхин: смотрите мой Манкроп один Раз и записываем в эту же самую ошибку в оригинальном а то мы видим то

231
00:35:16.640 --> 00:35:17.670
Михаил Непряхин: вот мы

232
00:35:18.150 --> 00:35:25.440
Михаил Непряхин: У нас была ошибка из кейса Мы ее потеряли то есть вот у нас ошибка пошла с пользой редактора, и там надфонд

233
00:35:25.600 --> 00:35:36.540
Михаил Непряхин: то есть здесь условно была цепочка Из трех ошибок и она просто распечатана виде строки да но она в памяти хранится как структура в структуре

234
00:35:37.080 --> 00:35:42.640
Михаил Непряхин: и вот Мы просто взяли и вышли ну посмотрели более

235
00:35:42.780 --> 00:35:52.669
Михаил Непряхин: ошибки у этой ошибки а Там вот эти то есть, вот следующая ошибка и его танврат делает Так Что, он может почитать посмотреть, вот Эту следующую Ошибку

236
00:35:53.090 --> 00:35:56.770
Михаил Непряхин: хорошо а дальше Смотрим Давайте еще Раз, распечатаем

237
00:36:02.130 --> 00:36:12.340
Михаил Непряхин: мы говорим а вот У Этой ошибки есть ошибка да есть нотаунд и вот мы до нее здесь достучались, и получили Сейчас здесь вот перемены ира

238
00:36:12.460 --> 00:36:17.539
Михаил Непряхин: ту самую изначальную Ошибку изначальная ошибка в отношении Арнольда

239
00:36:17.900 --> 00:36:21.129
Михаил Непряхин: Мы можем проверить Она это Или Не Она

240
00:36:40.480 --> 00:36:46.259
Михаил Непряхин: то есть Мы просто можем взять и проверить Ошибку тупо на равенство тана Это Или няня

241
00:36:46.420 --> 00:36:50.479
Михаил Непряхин: да Ошибка Это Не трофейс и чтобы равенство было равно

242
00:36:50.640 --> 00:36:55.900
Михаил Непряхин: и значение ошибки назначение ошибки Вот оно стригану фаунд

243
00:36:56.110 --> 00:37:08.060
Михаил Непряхин: и ее Тип Тип ошибки Иерар должны быть Заполнены равны вот Поэтому Мы Можем взять и просто сравнить на равенство то Есть сохранить ли Мы вот Эту Ошибку Сравним равенство

244
00:37:10.400 --> 00:37:12.550
Михаил Непряхин: то Она Не Будет ровно к тру

245
00:37:12.990 --> 00:37:15.519
Михаил Непряхин: Светю Вот Она еще Она Не равна тру

246
00:37:16.230 --> 00:37:23.250
Михаил Непряхин: потому, Что сравнивается, на равенство Не та Ошибка которая там в Конечном итоге Внутри

247
00:37:24.140 --> 00:37:31.259
Михаил Непряхин: а сравнивается, Нравится Вот Именно Вот та Ошибка которая Сейчас У нас здесь а У нас здесь Сейчас Ошибка пользуется доктора,

248
00:37:31.700 --> 00:37:38.330
Михаил Непряхин: и У нее Внутри уже Та изначально оригинальная Ошибка Поэтому сравнение, на равенство дает фолс

249
00:37:39.250 --> 00:37:46.160
Михаил Непряхин: а ну Все-таки хотелось бы ну как-то узнать

250
00:37:46.340 --> 00:37:48.880
Михаил Непряхин: вот нас интересует ошибка и ранод, фаунд,

251
00:37:48.990 --> 00:37:55.459
Михаил Непряхин: она ведь там есть цепочки я бы хотел бы узнать все-таки вот это ошибка ноуткаунд или нет фаунд

252
00:37:55.710 --> 00:38:08.160
Михаил Непряхин: то мне вот Так удобно чем заниматься нет есть способ попробовать что-то следующий это из иррарс есть до Него Сейчас Мы Дойдем посмотрим Но Еще бы хотелось узнать а Что, если она враг будет дальше

253
00:38:08.830 --> 00:38:14.280
Михаил Непряхин: Что, Там будет в Конечном итоге тамбот нил

254
00:38:15.210 --> 00:38:22.640
Михаил Непряхин: и Мы понимаем Что то поле Которое врагнутые. Ошибки это указатель

255
00:38:22.820 --> 00:38:25.530
Михаил Непряхин: потому Что взирова Или указатель равно Нет

256
00:38:25.800 --> 00:38:33.500
Михаил Непряхин: если Мы попробуем еще Раз Обрапнуть Я кстати это Никогда Не Делал но Скорее, всего Мы Получим Не упоинный ресепшн Потому Что будем анврапать нил,

257
00:38:39.980 --> 00:38:51.510
Михаил Непряхин: вот Поэтому Вы Всегда, можете с помощью функционалов дой дойти до самой той изначально Оригинальные Ошибки

258
00:38:51.810 --> 00:39:00.940
Михаил Непряхин: но это не Очень Удобно Так делать Поэтому есть способ по удобнее значит Он называется ерас из

259
00:39:01.410 --> 00:39:04.379
Михаил Непряхин: значит Мы уже посмотрели на создание

260
00:39:04.650 --> 00:39:09.860
Михаил Непряхин: ошибок это ира с Точкой нью кризис неуда

261
00:39:12.500 --> 00:39:23.290
Михаил Непряхин: и Раз Точка Него Так Ошибки создаются Так Тоже. Как Бы Везде Тоже. Валидно Так Тоже. Можно создать Новую Ошибку Но просто правильнее Делать через. Зеркало с ним диоматично

262
00:39:24.600 --> 00:39:26.800
Михаил Непряхин: вот этот откопай вот помогал

263
00:39:28.910 --> 00:39:37.300
Михаил Непряхин: короче говоря если Мы будем сравнивать Эту ошибку на Ерунду То оно естественно Даст фолс потому, Что а Там

264
00:39:37.420 --> 00:39:44.310
Михаил Непряхин: не Она Она только в Глубине Готовит но если Мы будем Делать То Же самое с Помощью ирс Из

265
00:39:44.850 --> 00:40:00.549
Михаил Непряхин: Мы Передаем туда ошибку которую Мы хотим, сравнить на какую-то ошибку день собственно говоря в саму ошибку и Он говорит тру То есть таким способом Мы можем понять что Та ошибка которую Мы получили

266
00:40:00.890 --> 00:40:06.180
Михаил Непряхин: а Она может быть какой угодно длинный матрешкой ну в конце цепочки

267
00:40:06.320 --> 00:40:13.519
Михаил Непряхин: Или на каком-то из Уровней Этой цепочки будет находиться Именно та самая. Ошибка которая нас интересует

268
00:40:13.820 --> 00:40:29.120
Михаил Непряхин: потому Что Мы можем работать с катанными ошибками и Там Тоже Их врабать и Не обязательно в самом конце Должна быть оригинальная Ошибка Если бы У нас Тут вот это Тоже была бы наша кастная Ошибка Мы бы Могли на Нее сравнить и Тоже Там сказать вот она в цепочке где-то Там есть

269
00:40:29.420 --> 00:40:35.120
Михаил Непряхин: или нет это очень Удобно как будто это, постоянно используется

270
00:40:35.930 --> 00:40:38.419
Михаил Непряхин: когда мы хотим, выяснить произошла ошибка

271
00:40:39.310 --> 00:40:42.490
Михаил Непряхин: это, интересующая нас ошибка или какая то другая

272
00:40:42.820 --> 00:40:48.040
Михаил Непряхин: Мы таким образом вещью проверяем а она Или Не она и

273
00:40:48.160 --> 00:40:59.649
Михаил Непряхин: последнее с чем Мы должны. Уметь работать Хм Это и рас значит где он может пригодиться.

274
00:40:59.930 --> 00:41:02.239
Михаил Непряхин: Там где У нас Есть атомные ошибки

275
00:41:03.390 --> 00:41:13.780
Михаил Непряхин: Ведь Раз ошибка это интерфейс значит Мы можем создать любой тип. Абсолютным и хоть стрингу хоть структуру

276
00:41:14.290 --> 00:41:18.900
Михаил Непряхин: добавить ему метод ира который Возвращается сталингу

277
00:41:19.010 --> 00:41:26.870
Михаил Непряхин: но Главное что он должен быть Не указательный потому Что. Если он будет указательный то это работать Не будет

278
00:41:27.620 --> 00:41:38.279
Михаил Непряхин: обязательно Не указатель м-м Почему потому что Мы будем изначально наш тип использовать как вы илью

279
00:41:39.790 --> 00:41:46.889
Михаил Непряхин: А Раз, Он Год как вэлью то у Него Не могут Быть указательными Красивыми

280
00:41:46.990 --> 00:42:00.719
Михаил Непряхин: потому Что Будут Получаться Так Что вы интерфейс будете Складывать вэлью а уэлью Будут вызываться указательные Методы а это Голову. Запрещено Помните Мы когда разбирались с интерфейсами Мы об этом говорили,

281
00:42:01.160 --> 00:42:04.449
Михаил Непряхин: Что винтрофест Мы не Можем сложить

282
00:42:05.790 --> 00:42:08.519
Михаил Непряхин: ну как бы значение по значению

283
00:42:08.860 --> 00:42:17.170
Михаил Непряхин: и есть ли у Него бот указательный север ни указать он Не может но он нам, только Не Нужен указательный на север

284
00:42:17.300 --> 00:42:23.520
Михаил Непряхин: Поэтому как бы возвращается мы же ничего Не меняем мы Не мутируем этот стол саму оригинальную

285
00:42:24.330 --> 00:42:31.970
Михаил Непряхин: значит когда может быть полезна основная ошибка когда вы имеете, какую то

286
00:42:32.530 --> 00:42:46.809
Михаил Непряхин: сложную систему Размеров Дтп это использует редко но встречается Допустим Мы хотим, Код Записать хотим, Записать какая ошибка была

287
00:42:47.560 --> 00:43:04.810
Михаил Непряхин: и хотим, одну ошибку записать для нас и

288
00:43:05.270 --> 00:43:20.340
Михаил Непряхин: чтобы он понял на каком языке ему например у нас сервер написан если мы торчим куда-то наружу и нам надо или на русском языке нам надо ошибку обязательно дать тогда вот как будут тоже юзы такие ка остальные ошибки ну и так далее, то есть как бы полей. Здесь может быть очень много

289
00:43:20.430 --> 00:43:28.929
Михаил Непряхин: и главное что, из этих полей. Вы потом просто составляете в текстовом виде какой-то осмысленной ну как Бы была

290
00:43:29.250 --> 00:43:31.050
Михаил Непряхин: удовлетворена

291
00:43:35.450 --> 00:43:46.860
Михаил Непряхин: ольга. С Ошибкой У нас называется Только первый Шотаж как Возраст У нее Кот и Это Они то есть у нас тут, инт вот Мы говорим что Кот Преврати вот сюда вставь

292
00:43:47.430 --> 00:43:59.469
Михаил Непряхин: и и Поэтому Так странно

293
00:44:01.250 --> 00:44:10.820
Михаил Непряхин: вот но для тех кто отработал то типа вот этого у них дешевный переход получается на Гошку, кто сине работал приходится немножко в интернет вроде главное смотреть

294
00:44:11.300 --> 00:44:15.960
Михаил Непряхин: а тут какой-то контекст и по-моему записали и вот его тоже сюда добавляем

295
00:44:16.190 --> 00:44:20.199
Михаил Непряхин: в целом стиль ошибок подразумевает вот это двоеточие ну? Обычно

296
00:44:20.560 --> 00:44:25.769
Михаил Непряхин: он чего-то описывал какой-то контекст где Она произошла а даже двоеточие и там какая-то суть

297
00:44:26.730 --> 00:44:33.129
Михаил Непряхин: вот Или Допустим рэдис Ошибка Она вообще другая там Не какой-то месседж но она тоже удовлетворяет этому. Интерфейзу

298
00:44:34.000 --> 00:44:44.550
Михаил Непряхин: и Мы хотели бы Не, просто проверять на ис это ошибка или Не, это Мы хотели бы именно, тип

299
00:44:45.790 --> 00:44:49.370
Михаил Непряхин: узнать то Есть вот Ведь это же Тип и вот

300
00:44:49.560 --> 00:44:53.010
Михаил Непряхин: эээ типа это она Или Не она

301
00:44:55.500 --> 00:44:59.980
Михаил Непряхин: Есть функция эс пакетик и Раз

302
00:45:00.450 --> 00:45:10.970
Михаил Непряхин: и Мы в нее должны передать создать Сперва Эту Ошибку основную и передать туда а указатель соответственно

303
00:45:12.060 --> 00:45:16.099
Михаил Непряхин: и ээ когда Мы получаем тру

304
00:45:16.230 --> 00:45:23.609
Михаил Непряхин: То это значит Что типск оставался это значит Что вот это ошибка превратилась в эту ошибку

305
00:45:24.270 --> 00:45:33.709
Михаил Непряхин: и Мы теперь можем от Этой дискостованной ошибки использовать ее методы или Поля вот мы Допустим Хотим?

306
00:45:34.190 --> 00:45:41.069
Михаил Непряхин: Достучаться до Поля Кот Если, мы просто посмотрим Что тут, возвращает ошибка

307
00:45:41.760 --> 00:45:46.870
Михаил Непряхин: возле сандаптер поздравил. Сира Кот сорок Два коннекшн рефьюст

308
00:45:47.270 --> 00:45:55.680
Михаил Непряхин: значит как где она произошла Вот Мы создали Тонушку, атомную ошибку и вернули ее записали контекст написали код

309
00:45:56.800 --> 00:46:09.009
Михаил Непряхин: если Мы просто Смотрим на делаем Манврапинг, то наша Ошибка она будет Так Выглядеть! А мы Допустим Хотим? Достучаться для Внутреннего. Поля сорок Два

310
00:46:09.180 --> 00:46:12.760
Михаил Непряхин: во Внутреннего. Поля, Кот значение сорок Два

311
00:46:13.140 --> 00:46:19.739
Михаил Непряхин: вот Мы костром его и вот здесь соответственно Мы получаем значение этого Поля,

312
00:46:20.590 --> 00:46:34.679
Михаил Непряхин: это используется Не Так Часто но просто об этих возможностях надо знать то есть в целом эс используется очень редко обычная библиотека какие-нибудь и у вас есть примеры от Создателей библиотеки как надо Использовать вот

313
00:46:35.320 --> 00:46:45.730
Михаил Непряхин: этот апе или в целом довольно-таки

314
00:46:46.220 --> 00:46:53.020
Михаил Непряхин: и не сразу не теряться потому что, это бывает используется действительно вот

315
00:46:53.360 --> 00:46:59.419
Михаил Непряхин: про ошибки Про ошибки все Давайте есть какие то Вопросы есть здесь сразу можете голосом сдать

316
00:47:03.210 --> 00:47:06.510
Михаил Непряхин: все ли понятно на текущем Этапе.

317
00:47:08.690 --> 00:47:20.110
Егор Ширяев: Ну здесь более-менее понятно, а вот в браке ну наподобие в прошлом я смотрел, поправо ошибки ну и там тут уже на эта тема думал буквально сегодня

318
00:47:20.140 --> 00:47:35.909
Егор Ширяев: то есть где логировать и как обрабатывать и много не понял для чего вот там необходим в рапинг там получается Функции Есть Две два хелперов Функции Одна, из них Эр другая Джейсон Том Джейсон По моему.

319
00:47:36.090 --> 00:47:39.570
Михаил Непряхин: И То Что означает. Мы как раз сегодня про Это говорим.

320
00:47:39.900 --> 00:47:40.260
Егор Ширяев: Да.

321
00:47:40.260 --> 00:47:49.039
Михаил Непряхин: Добрый день Окей надо же Давайте дальше просто про ошибки да Есть Еще У кого-то вопрос кризис.

322
00:47:51.060 --> 00:48:03.240
dmitriy: Да У меня такой быстрый вопрос а получается в рс Он берет в себя Ошибку которая пришла сверху.

323
00:48:03.240 --> 00:48:03.820
Михаил Непряхин: Да.

324
00:48:03.820 --> 00:48:09.199
dmitriy: А сравнивают ее с пгр. Он с типом, Что это поздно Сэр.

325
00:48:09.590 --> 00:48:11.170
Михаил Непряхин: Да Шути Я ознакомил.

326
00:48:11.440 --> 00:48:13.570
dmitriy: Аа и дальше он привод.

327
00:48:13.570 --> 00:48:15.079
Михаил Непряхин: Для нее кошмар.

328
00:48:15.080 --> 00:48:15.649
dmitriy: Да и.

329
00:48:15.650 --> 00:48:16.690
Михаил Непряхин: Да.

330
00:48:17.090 --> 00:48:18.850
dmitriy: Все я понял спасибо.

331
00:48:18.850 --> 00:48:41.620
Михаил Непряхин: Два в одном и полем потому Что У этого ничего нету и типа Покажи такой Рэпер удобный.

332
00:48:42.120 --> 00:48:44.400
dmitriy: Ну и.

333
00:48:48.330 --> 00:48:54.799
Михаил Непряхин: Рефлекшн вы как Бы когда видите пакет рефлект лайт но они Там вы уже облегчили как мыли

334
00:49:01.040 --> 00:49:04.489
Михаил Непряхин: Ошибка отлавливается Только в ронтайме Поэтому

335
00:49:05.220 --> 00:49:14.510
Михаил Непряхин: если ну как Бы с рефлексией очень редко кто работает ну вот если вам придется работать То конечно там Говорят что русские все придется

336
00:49:15.080 --> 00:49:17.509
Михаил Непряхин: антрефси ну и медленно отвечал.

337
00:49:18.920 --> 00:49:20.210
Михаил Непряхин: Так

338
00:49:26.110 --> 00:49:34.970
Михаил Непряхин: как без блогеров значит стандартный блогер который был изначально в языке

339
00:49:35.350 --> 00:49:44.589
Михаил Непряхин: он очень малозабельный то есть тут если, посмотреть еще значит что у него есть

340
00:49:48.560 --> 00:49:53.030
Михаил Непряхин: вот мы пишем время выводится

341
00:49:54.280 --> 00:50:03.849
Михаил Непряхин: и тут настолько есть Функция Принт как бы Не было возможности делать во-первых структурированный круг

342
00:50:04.280 --> 00:50:09.009
Михаил Непряхин: а ну то что как бы в рисовании он писал две проблемы да как быстро нахнула ира

343
00:50:09.490 --> 00:50:23.010
Михаил Непряхин: Грисон не писал и нету Этой возможности написать и вот

344
00:50:23.660 --> 00:50:36.770
Михаил Непряхин: ну паник он кидается так трезвешен ну если, Мы делаем панику лилль ии и фатал

345
00:50:36.900 --> 00:50:41.920
Михаил Непряхин: просто закрывают закрывают во что Внутри хватало у Него здесь вот войсекситн

346
00:50:49.150 --> 00:50:52.230
Михаил Непряхин: Хорошая Штука слизерина нигде не используется

347
00:50:52.360 --> 00:50:57.769
Михаил Непряхин: и вот буквально недавно Там наверное версии один двадцать один появился

348
00:50:57.890 --> 00:51:03.690
Михаил Непряхин: эс ло Крути По структурированный мок ну типа Уже чуть лучше

349
00:51:04.450 --> 00:51:16.740
Михаил Непряхин: вот Мы создали ошибку можем задать с каким от какого уровня ошибки будут писаться в стыд и

350
00:51:18.670 --> 00:51:25.590
Михаил Непряхин: здесь мы говорим что дебаг то есть вот можно сказать что все

351
00:51:38.410 --> 00:51:50.589
Михаил Непряхин: можно указать в урнинке и ир будет писаться и можно просто ира кумира ничего не будет писаться вот это все будет откидываться а это будет писаться ну то есть это для всех блогеров такая тема что

352
00:51:51.180 --> 00:51:59.690
Михаил Непряхин: а вы указываете начиная от какого уровня вы Хотите, писать Налоги и как бы эту функцию добавили уран

353
00:51:59.990 --> 00:52:06.929
Михаил Непряхин: и можно каждую отдельную ну как бы не заморачиваться не говорить какой вы хотите

354
00:52:07.190 --> 00:52:13.590
Михаил Непряхин: тут удобно удобным образом как это принято на Других языках, блин писать логием

355
00:52:14.120 --> 00:52:23.219
Михаил Непряхин: вот так оно выглядит то Есть видимо Ничего не указывали оно ему пишется добавляется и там даже настраиваться Можно и

356
00:52:24.360 --> 00:52:27.860
Михаил Непряхин: короче Ээ Так как мир. Захватил

357
00:52:28.860 --> 00:52:35.900
Михаил Непряхин: аа другой Блогер эд Зап сам популярный Блогер в Мире то. Этот Блогер он ну

358
00:52:36.360 --> 00:52:41.730
Михаил Непряхин: сама по французски очень сильно проигрывает и вроде есть Но никто его не использует

359
00:52:42.480 --> 00:52:46.449
Михаил Непряхин: значит что за запад назад кэро блогера

360
00:52:46.710 --> 00:52:51.090
Михаил Непряхин: вообще вот Убер подарил несколько библиотек популярных

361
00:52:51.560 --> 00:52:57.149
Михаил Непряхин: ну две надо сказать вот Заблогер и которые автоматический гомок спрог ставит

362
00:52:57.330 --> 00:53:03.419
Михаил Непряхин: ну Там еще популярная идея но ее не надо использовать

363
00:53:03.960 --> 00:53:06.569
Михаил Непряхин: и вот этот блогер он был

364
00:53:06.860 --> 00:53:16.189
Михаил Непряхин: было для Него еще Там штук пятнадцать блогеров но они все медленные и конкуренции с западом не выдержат то есть запад по скорости похнется все равно

365
00:53:16.830 --> 00:53:24.200
Михаил Непряхин: победила так сказать значит Мы ты Что здесь можем сделать

366
00:53:24.630 --> 00:53:28.280
Михаил Непряхин: вот Мы создаем дефолтгер но Там фунты Сейчас Взглянем

367
00:53:30.320 --> 00:53:35.120
Михаил Непряхин: так как для оптимизации Если Мы хотим, что-то сделать Быстро

368
00:53:35.930 --> 00:53:43.020
Михаил Непряхин: войтишки Мы должны делать Бочами соответственно за тоже пишут многие бочами

369
00:53:43.300 --> 00:53:54.089
Михаил Непряхин: и для того чтобы сделать шат даун грамотно и не забыть записать кетологию у него, есть синхронизация, внутренняя по Сути просто забросить блоги, Из памяти

370
00:53:54.240 --> 00:53:56.939
Михаил Непряхин: Поэтому Это ну она вокруг взяла.

371
00:53:58.260 --> 00:54:07.970
Михаил Непряхин: Так значит давайте Посмотрим как я его создаю ну вот я делаю диф Блогер и

372
00:54:08.400 --> 00:54:19.979
Михаил Непряхин: Какие есть, Настройки настолько очень много есть, все прошу Вы можете даже подумать представить ничего не можете вот тоже говорю что начиная Дебага все Пишем де баген фу Уорнен кира

373
00:54:20.230 --> 00:54:24.550
Михаил Непряхин: паник ди паник Не значит что Не

374
00:54:27.090 --> 00:54:31.319
Михаил Непряхин: Никогда Не использовал вот и фатал ну соответственно

375
00:54:43.240 --> 00:54:49.220
Михаил Непряхин: отличие паники От Хватало что, фатали мы сразу все закрываем прекращаем на работу

376
00:54:49.990 --> 00:54:52.930
Михаил Непряхин: если делом деба то значит пишем вообще все влог

377
00:54:53.750 --> 00:54:57.750
Михаил Непряхин: можно указать что, у нас ледовый момент Блогер

378
00:54:57.970 --> 00:55:02.410
Михаил Непряхин: и банкет настройки Применяется для Удобного вывода в консоль

379
00:55:04.060 --> 00:55:17.620
Михаил Непряхин: отключите этот трейс Мне стыдно Так как вы видели я вам рассказывал как правильно оборачивать ошибки если вы оборачиваете ошибки вам стыд трейс вообще Не Нужен Потому что то чего Он вам даст

380
00:55:21.310 --> 00:55:23.400
Михаил Непряхин: вот Поэтому я его Всегда отключаю

381
00:55:24.700 --> 00:55:46.250
Михаил Непряхин: значит здесь онкодинг выбран Консоль чтобы в Консоль красивого Писать и и

382
00:55:47.590 --> 00:56:03.450
Михаил Непряхин: и это чтобы цветной воды был вот дальше оно Применяется и Мы Видим ошибки цветными

383
00:56:03.840 --> 00:56:13.299
Михаил Непряхин: и есть функция такая посмотреть в каком месяце, Мы Сейчас находимся По коду вот Можно тут вывести циферку

384
00:56:13.800 --> 00:56:17.369
Михаил Непряхин: и файл и строка где это произошло

385
00:56:18.510 --> 00:56:27.759
Михаил Непряхин: ну вот мессадж какой то мы пишем значит ошибка у меня здесь она вот ты меня тестира

386
00:56:27.910 --> 00:56:44.990
Михаил Непряхин: здесь я просто мессенджер вывожу на ошибки я добавляю конечно с помощью вот таких, вот запах ира верточек более которые Он выводит как Глисон. И ведь Здесь добавляется ира и вот ошибка то есть удобно добавлять контекст

387
00:56:45.410 --> 00:56:52.150
Михаил Непряхин: Так чего-то еще делаем вот можно с помощью буду добавить Разные поля

388
00:56:52.710 --> 00:56:56.980
Михаил Непряхин: они типизированы для того Чтобы ты быстро работала

389
00:56:57.740 --> 00:57:01.530
Михаил Непряхин: то есть есть у Него Еще Вариант

390
00:57:01.830 --> 00:57:09.209
Михаил Непряхин: типа шуга типа с сахаром но по мне так Неполно и этот вариант очень даже о себе, Отличный

391
00:57:09.980 --> 00:57:16.629
Михаил Непряхин: и вот Мы добавляем контекст значит что У нас такой-то уровень был количество попыток три

392
00:57:16.770 --> 00:57:23.429
Михаил Непряхин: Там быков, через Сколько Мы снова давайте Поспим, Секунду и снова Попытаемся сделать это ошибка

393
00:57:23.700 --> 00:57:33.370
Михаил Непряхин: вместе Мы Здорово какого То пытаемся достучаться Не Получилось и Мы пишем Сколько у нас какая какой Номер попытки

394
00:57:34.140 --> 00:57:41.750
Михаил Непряхин: вводится Тоже, все Это, ведь индийское на Таким образом

395
00:57:44.110 --> 00:57:53.620
Михаил Непряхин: так и фототолкнув а Там Мы просто Останавливаемся и Сейчас Не хватало этого э Секситван Мы просто Завершаем программу и все

396
00:57:55.630 --> 00:58:07.840
Михаил Непряхин: Если, Мы Переключаем вот в продакшн Лагерь, какие отличия что Мы делаем Вывод Две сония кнотод киносвой ок

397
00:58:08.900 --> 00:58:36.490
Михаил Непряхин: короче Мы просто все Выводим Джисони То Же самое Есть люди пять уголовников ну? И

398
00:58:37.540 --> 00:58:51.420
Михаил Непряхин: Пытаются понять ошибку, Ну все равно Же Мы Же постоянно читаем его Вида и Они вот страдают вот Так вот Читают Поэтому я вас призываю Всегда делать настройку для дева отдельно длядев среды

399
00:58:51.780 --> 00:58:53.240
Михаил Непряхин: и для

400
00:58:58.210 --> 00:58:59.399
Михаил Непряхин: и для прода

401
00:58:59.830 --> 00:59:09.410
Михаил Непряхин: и чтобы вы не страдали и Удобно читали и вот время тоже Можно поправить то что-то я не сделал потому Что мне больше Нравится Другой вопрос Мы про него поговорим

402
00:59:09.620 --> 00:59:18.830
Михаил Непряхин: и Гораздо Приятнее добавить в таком, режиме чем читать там за Джейсон лондон бывает очень длинный со Стык-рейсами в общем

403
00:59:19.150 --> 00:59:29.100
Михаил Непряхин: Важно Иметь две, настройки для разработки и для прода и чтобы в конфиге. Была какая-то Просторопция их переключить

404
00:59:29.240 --> 00:59:32.600
Михаил Непряхин: а я это делаю я Не Перемен это

405
00:59:33.900 --> 00:59:37.409
Михаил Непряхин: ну вот у Меня есть перемена пройти консоль

406
00:59:37.510 --> 00:59:45.120
Михаил Непряхин: если ставлю в тру то соответственно она По дефолту фолз и педефолтон отключена дляпрода, для

407
00:59:45.310 --> 00:59:52.019
Михаил Непряхин: а вокальные разводки я ее Включаю Ну и понятно, что надо же как-то уровень указать у меня дай бог стоит под дефолт

408
00:59:54.400 --> 01:00:02.650
Михаил Непряхин: так и мне нравится больше зеркало то есть он менее популярный в мире ну. Как бы он тоже популярный ну. Просто, как Будто

409
01:00:02.950 --> 01:00:10.460
Михаил Непряхин: утоп Два наверное он Посидел просто, мне больше нравится и в целом как-то прикольнее с Ним работать мне

410
01:00:11.760 --> 01:00:13.930
Михаил Непряхин: кино на проекте чаще всего встречается запах

411
01:00:14.060 --> 01:00:23.739
Михаил Непряхин: ну, в последнее время вот зеркало набирает популярность но как бы Тяжело если вы уже привыкли с каким-то образом работать Тяжело Перейти на Другой,

412
01:00:24.060 --> 01:00:36.680
Михаил Непряхин: значит здесь я написал то. Же самое все По функционалу вывод еще Другой и

413
01:00:37.070 --> 01:00:43.580
Михаил Непряхин: ну вы вот у него, кстати вот это Тоже, немножечко тем более Человек читаемый

414
01:00:43.630 --> 01:01:02.289
Михаил Непряхин: и в какой ошибке произошло действие я обычно убираю просто. Он показал и

415
01:01:02.590 --> 01:01:06.839
Михаил Непряхин: в одно, может быть вам это будет важно. Поэтому это казалось все сколером

416
01:01:07.380 --> 01:01:13.810
Михаил Непряхин: значит пусть они Так сису ноту немножечко другое синтаксис и и

417
01:01:16.550 --> 01:01:26.089
Михаил Непряхин: вот ошибка отдельно указывается, здесь то же самое ведь, уже поля это Инт это дюрешон секунды это мессадж какой будет

418
01:01:26.620 --> 01:01:29.859
Михаил Непряхин: кну фаттау естественно Тоже как без этого

419
01:01:30.700 --> 01:01:33.039
Михаил Непряхин: который Тоже видел на тревое сексу

420
01:01:35.140 --> 01:01:40.320
Михаил Непряхин: а Настройка его здесь ну. В общем это я вас призываю просто хочу посмотреть

421
01:01:40.610 --> 01:01:49.290
Михаил Непряхин: и Так как Попадается и тот и другой вариант то ну Примерно надо видеть Из другой роли так

422
01:01:49.810 --> 01:01:59.420
Михаил Непряхин: вопрос есть принципиальная Разница между сторонними воерами или просто посвящены Ну просто вкусовщина ростоцкого возвращения потому что Ну

423
01:02:00.120 --> 01:02:37.820
Михаил Непряхин: а и и и проблема решено то же самое с политиками чем не библиотека как правило там, используются

424
01:02:38.680 --> 01:02:48.500
Михаил Непряхин: опыт предыдущих библиотек и исправленные на ошибки вот азербайджан просто прикольный так и

425
01:02:49.290 --> 01:02:56.709
Михаил Непряхин: так с контекстом надо в первый контекст посмотреть также изгнанный пессик

426
01:03:03.380 --> 01:03:05.410
Михаил Непряхин: да давайте. Теперь сделаем дляминки

427
01:06:49.250 --> 01:07:04.039
Михаил Непряхин: так продолжаем так значит есть такое явление как положить блогера в контекст

428
01:07:04.550 --> 01:07:16.169
Михаил Непряхин: у нас в гоу есть контекст который принято пробрасывать вообще Везде там идет, запрос какой-то контекст из вызова функции

429
01:07:16.320 --> 01:07:24.480
Михаил Непряхин: везде передаем и контекст в первую очередь он про дедлайн про тайм-аут

430
01:07:24.780 --> 01:07:31.320
Михаил Непряхин: но вот Есть у него возможность положить туда, что то и потом это что То достать

431
01:07:31.580 --> 01:07:35.389
Михаил Непряхин: так вот как я вам сказал так как блогер

432
01:07:35.860 --> 01:07:39.349
Михаил Непряхин: ну блогировать принято верху на Вернем уровне

433
01:07:40.080 --> 01:07:44.240
Михаил Непряхин: То в Принципе как боевые в контексте власть Нет смысла

434
01:07:44.500 --> 01:08:06.870
Михаил Непряхин: но Тем Не менее Раз, Контекст может быть что-то Положено То и естественно кто-то пользуется

435
01:08:07.420 --> 01:08:09.820
Михаил Непряхин: То есть мне больше нравится все-таки

436
01:08:11.090 --> 01:08:18.760
Михаил Непряхин: либо глобальный блогер как турок либо через дьяволь его Куда то прикидывать

437
01:08:18.910 --> 01:08:32.859
Михаил Непряхин: и вот есть третий способ, значит прокинуть его через контекст Ну практика и

438
01:08:33.319 --> 01:08:36.149
Михаил Непряхин: Будто из этого Только Путаница и

439
01:08:36.490 --> 01:08:50.079
Михаил Непряхин: пользы прямо скажем мало то есть больше Вреда Поэтому Не рекомендую и

440
01:08:51.170 --> 01:09:01.750
Михаил Непряхин: создаем мой значит контекст просто бэкграунд дефолтный и Обычный контекст и создали мой лагерь даже все версии его создали

441
01:09:02.359 --> 01:09:08.890
Михаил Непряхин: А нет Не связи А это Мы короче говоря этому экземпляру блогерам

442
01:09:10.760 --> 01:09:21.439
Михаил Непряхин: нью экземп получаем Мы получаем указательный блогер и вот к этому Блогеру Мы можем добавить Некие Поля Например верша

443
01:09:22.529 --> 01:09:32.389
Михаил Непряхин: в самом начале приложения мы создали и эту версию добавили богеру и теперь каждый Раз когда этот блогер мы Будем использовать

444
01:09:33.149 --> 01:09:37.959
Михаил Непряхин: этот контекст будет Всегда с нами типа Удобно и То же самое Там

445
01:09:38.720 --> 01:09:41.189
Михаил Непряхин: Обманул дальше у Меня в примере Это Есть Да

446
01:09:41.600 --> 01:09:44.939
Михаил Непряхин: Так дальше ну метро Ты мулятся типа Я

447
01:09:45.080 --> 01:09:56.589
Михаил Непряхин: как Будто бы Мы их дпс сервер Я вот получаю Пять запросов и берется Контекст изначальный Блогер Мы берем

448
01:09:56.760 --> 01:09:59.709
Михаил Непряхин: и Воттойди типа От наряды четырех он год

449
01:10:00.900 --> 01:10:09.959
Михаил Непряхин: Спим секундам чтобы Эти, пять город Не успели поработать вызвали Мы контроля Контроль ли Мы

450
01:10:11.150 --> 01:10:15.039
Михаил Непряхин: Мы в контроле значит опять сделали блогер выезд

451
01:10:16.190 --> 01:10:23.680
Михаил Непряхин: и добавили к нему еще контекст то есть типа это уже реквиста едим

452
01:10:24.230 --> 01:10:30.720
Михаил Непряхин: и полчаса у нас здесь Какой то контекст. Добавили дальше этот контекст. Добавили

453
01:10:30.930 --> 01:10:35.209
Михаил Непряхин: и дальше когда Мы блогер этот Будем использовать этот контекст. Уже Будет с нами

454
01:10:35.960 --> 01:10:39.620
Михаил Непряхин: значит и Мы кладем теперь этот блогер в контекст

455
01:10:40.030 --> 01:10:43.269
Михаил Непряхин: по ключу ну как как-то принято

456
01:10:43.390 --> 01:10:46.280
Михаил Непряхин: и Вот здесь Мы уже получаем контекст

457
01:10:46.520 --> 01:11:10.799
Михаил Непряхин: в котором Внутри этот блогер упакован и и Мы достаем из контекста

458
01:11:11.870 --> 01:11:21.210
Михаил Непряхин: вот здесь как бы Мы достаем из контекста нечто по ключу контекст кей но вот Мы положили по Нему значит достем Тоже по Нему

459
01:11:21.560 --> 01:11:32.620
Михаил Непряхин: То Что Мы Достали оно имеет Интерфейское Ниль, То есть оно не Определено Поэтому Мы кастуем тип к заблогеру

460
01:11:32.870 --> 01:11:35.850
Михаил Непряхин: и есть ли у нас Окей

461
01:11:36.220 --> 01:11:40.499
Михаил Непряхин: то значит блогер у нас заблогер по указателям Причем

462
01:11:41.060 --> 01:11:47.550
Михаил Непряхин: и значит теперь Мы можем сделать инфо и напечатать Адапта кол

463
01:11:48.070 --> 01:11:55.310
Михаил Непряхин: и мы ждем Что все наши пять запросов они будут все вершин

464
01:11:55.910 --> 01:12:03.899
Михаил Непряхин: вот Этой Ноль один Ноль Но У них У всех будет свой реквизиты Давайте проверим другое. Значение

465
01:12:05.810 --> 01:12:13.590
Михаил Непряхин: да нужно работать здесь У них Есть Вершин мой который был Изначально Но У всех свой крест

466
01:12:17.850 --> 01:12:26.129
Михаил Непряхин: ну как бы вроде бы работает но когда будете с этим существовать на практике Будет создаваться очень много Проблем

467
01:12:27.050 --> 01:12:33.990
Михаил Непряхин: потому. Что так как, у вас может быть три Варианта могирования ну как, Я сказал из контекста

468
01:12:34.550 --> 01:12:44.520
Михаил Непряхин: из диая когда вы ну просто мисс питти блогер ну как познакомили Например, и глобальный мир.

469
01:12:44.640 --> 01:12:51.190
Михаил Непряхин: То у вас когда вы будете видеть перед Собой могирование у вас будет как бы ну возникать вопрос

470
01:12:51.910 --> 01:13:00.930
Михаил Непряхин: как вам надо будет включать Голову. А откуда он там пошел смотреть откуда он там пошел в общем замудрено получается, но мне нравится

471
01:13:01.170 --> 01:13:07.789
Михаил Непряхин: Проще лучше, вот Поэтому Я добровольно Не использую с контекстом блогер

472
01:13:09.960 --> 01:13:16.039
Михаил Непряхин: так вот все Значит Про блогер Мы блогер Тоже. Мы закончили Теперь Давайте посмотрим

473
01:13:16.890 --> 01:13:21.590
Михаил Непряхин: как, это это все дело использовать значит

474
01:13:21.820 --> 01:13:25.779
Михаил Непряхин: ну понятно, Что Раз, У нас Х Дтп сервер

475
01:13:26.720 --> 01:13:30.110
Михаил Непряхин: гуртины запускаются на верхний уровень У нас Контроля

476
01:13:30.250 --> 01:13:36.740
Михаил Непряхин: Там вызывают все Поэтому Мы и лагировать Тоже, Хотим, в контролере,

477
01:13:37.460 --> 01:13:48.050
Михаил Непряхин: До этого значит идет, немножко. Изменение, сделан То сухо так было я добавил, пентик но так бы

478
01:13:48.650 --> 01:13:52.980
Михаил Непряхин: здравствуйте расскажу свою Идею значит

479
01:13:53.180 --> 01:14:04.830
Михаил Непряхин: во-первых в этом проекте используется Блогер зеремок то есть Вот этот Блогер инициативу именно эти зерог ну Почему Мне нравится больше кусочек

480
01:14:06.240 --> 01:14:12.939
Михаил Непряхин: можно его иницировать Сразу живут какими то полями Там с версий

481
01:14:14.350 --> 01:14:26.850
Михаил Непряхин: сверхъестественное с именем это все можно делать я здесь просто как бы Не, отключаю просто показываю что, если, Нужен какой-то контекст который глобальный будет распространяться то вот он здесь легко, задается

482
01:14:31.250 --> 01:14:33.290
Михаил Непряхин: дальше я воспользуюсь. Глобальным

483
01:14:33.620 --> 01:14:41.700
Михаил Непряхин: вообще везде глобально использую я его нигде не нигде в контексте не пробрасываю он не везде глобально Там и

484
01:14:41.870 --> 01:14:45.869
Михаил Непряхин: значит ты для того чтобы вот здесь его Не

485
01:14:46.010 --> 01:14:50.649
Михаил Непряхин: писать То есть это если бы мне надо про ошибку здесь заблокировать

486
01:14:50.810 --> 01:14:54.850
Михаил Непряхин: мне бы надо было делать вот так вот ну как-то вот так вот

487
01:14:55.280 --> 01:15:08.650
Михаил Непряхин: ну и здесь тоже пришлось бы делать вот так вот ну есть способ Не дублировать его а

488
01:15:08.990 --> 01:15:16.409
Михаил Непряхин: Добавить его вот туда внутрь потому что когда Мы Радуем ошибку

489
01:15:17.140 --> 01:15:21.010
Михаил Непряхин: о во-первых понятно что Мы Сейчас находимся в ошибке,

490
01:15:21.700 --> 01:15:29.809
Михаил Непряхин: и собственно Там Мы эту ошибку, и можем заблокировать почему бы этим не воспользоваться

491
01:15:30.400 --> 01:15:35.520
Михаил Непряхин: и можно было бы поместить ошибку, в блокирование ошибки вот сюда

492
01:15:35.830 --> 01:15:43.529
Михаил Непряхин: но дело, в том что в этом месте нам не хватает контекста где мы Сейчас находимся

493
01:15:44.690 --> 01:15:54.749
Михаил Непряхин: решается это обычно тем что вот сюда вот добавляется дополнительная информация ну типа во-первых что это дтп

494
01:15:55.680 --> 01:16:02.059
Михаил Непряхин: там еще есть версия, идет на версию один надо Добавить плюс хотелось бы понимать и

495
01:16:02.580 --> 01:16:05.900
Михаил Непряхин: какая ручка вот у нас ручка креет профайл,

496
01:16:08.020 --> 01:16:15.559
Михаил Непряхин: итого смотрите мы уже ну дофига всего блогера а плюс это будет дублироваться

497
01:16:15.840 --> 01:16:19.709
Михаил Непряхин: то есть я вообще на самом деле Показываю способ как будто. Он часто часто это Делает

498
01:16:19.820 --> 01:16:23.749
Михаил Непряхин: но вот это дублирование Мне не нравится,

499
01:16:24.050 --> 01:16:37.430
Михаил Непряхин: ну хочется тогда это как-то вынести в какие-то константы да сразу же а типа потом это упирается и

500
01:16:37.540 --> 01:16:46.590
Михаил Непряхин: ну тогда здесь будет Конкретинация конкретинация в этом месте выглядит неуклюже то есть в целом как бы вот это вот

501
01:16:46.980 --> 01:16:51.800
Михаил Непряхин: оно и какое-то какое-то такое Не очень

502
01:16:52.510 --> 01:16:54.380
Михаил Непряхин: мне очень мне нравится, как он выглядит

503
01:16:54.820 --> 01:16:58.470
Михаил Непряхин: просто двоеточие надо было и добавить да Двоеточек пробел.

504
01:16:58.710 --> 01:17:04.709
Михаил Непряхин: А на Ууу в общем какой вариант мне Не, нравится, тем кто встречается

505
01:17:10.130 --> 01:17:18.800
Михаил Непряхин: вот Поэтому есть другой способ более хитрый как и ошибку взять и контекст не потерять

506
01:17:19.410 --> 01:17:21.759
Михаил Непряхин: вот для этого пригождается мимо вара

507
01:17:21.910 --> 01:17:26.170
Михаил Непряхин: значит давайте посмотрим как я изменил. Мимо вару

508
01:17:27.530 --> 01:17:35.150
Михаил Непряхин: миговоры у нас находятся в блоге здесь что поменялось она

509
01:17:38.310 --> 01:17:46.929
Михаил Непряхин: так значит метовара на основе еды это уже смотрели я немножечко тут, добавил начну вот этого Не было

510
01:17:47.810 --> 01:17:55.809
Михаил Непряхин: и вот здесь был вопрос грубо говоря вот этого Не было значит то что мы до этого смотрели

511
01:17:56.030 --> 01:18:00.350
Михаил Непряхин: Мы просто создавали здесь Ва Рапер

512
01:18:00.750 --> 01:18:07.900
Михаил Непряхин: чтобы Ошибку Застать где У нас вотнекдот У нас вызывается, и дальше Мы просто магируем

513
01:18:08.180 --> 01:18:11.280
Михаил Непряхин: вот но хотелось бы Не просто реагировать

514
01:18:11.510 --> 01:18:15.080
Михаил Непряхин: хотелось бы в зависимости От результата

515
01:18:15.230 --> 01:18:25.430
Михаил Непряхин: блокировать либо, инфо либо, ошибкой и хотелось бы эту ошибку увидеть добавить плюшевите в чем дело

516
01:18:25.610 --> 01:18:34.370
Михаил Непряхин: мы не Всегда хотим, нашу ошибку со всем. Стать. Трейсом как говорится ну по искусственным спектаклям даже как-то не напишем

517
01:18:34.810 --> 01:18:41.989
Михаил Непряхин: показывать пользователю иногда пользователю хотелось бы дать какую-то короткую ошибку или просто, суть что, произошло а

518
01:18:42.350 --> 01:18:48.219
Михаил Непряхин: нам, для себя залогировать нормально по-настоящему вот этот способ Это, позволяет, сделать

519
01:18:48.550 --> 01:18:54.920
Михаил Непряхин: значит смотрите в чем, Хитрость. Мы Кладем в контекст заранее ошибку

520
01:18:55.690 --> 01:19:04.579
Михаил Непряхин: Мы про контекст еще поговорим ну как бы пока контекст работы таким образом значит если, вы хотите, в контекст потом что-то добавить

521
01:19:04.840 --> 01:19:15.330
Михаил Непряхин: ну Допустим вот Мы Сейчас контролировали добавить надо выше атом Генетически Да вы Не можете

522
01:19:15.480 --> 01:19:18.850
Михаил Непряхин: Там это сделать вы заранее должны в Контексте туда положить

523
01:19:19.180 --> 01:19:29.419
Михаил Непряхин: а Что бы Там кто-то Потом мог исправить ну. Там особенность как контекст Устроен Под капотом Посмотрим Пока Примите короче как Есть Мы заранее Кладем в контекст

524
01:19:29.540 --> 01:19:37.490
Михаил Непряхин: указательно ошибку а Там Сейчас нил ошибки Нет То Есть Но Мы на Эту чайку памяти

525
01:19:37.850 --> 01:19:45.239
Михаил Непряхин: пойдем в указатель в Контекст ну По ключу По какому-то если Б этот синтез говорит положи в контекст

526
01:19:45.560 --> 01:19:53.990
Михаил Непряхин: по такому ключу вот, эту вот, указатель вот, на этого места дон положил, дальше

527
01:19:54.630 --> 01:20:06.909
Михаил Непряхин: а Мы проверяем простите здесь как бы Мы Не Видим чтобы здесь что-то возвращало Ошибку. Мы просто Ошибку. Туда. Указатель положили если Там где-то ошибка происходит

528
01:20:07.290 --> 01:20:14.290
Михаил Непряхин: То она здесь Появляется и мы ее проверяем на него если. Она не ни то мы

529
01:20:14.540 --> 01:20:20.309
Михаил Непряхин: говорим что ну блогер создаем что это блогер ошибки

530
01:20:20.660 --> 01:20:26.240
Михаил Непряхин: добавляем эту ошибку. И уже дальше ну еще по интересам

531
01:20:26.370 --> 01:20:30.740
Михаил Непряхин: вот от ответа доля мне этот какой был и отправляем

532
01:20:31.070 --> 01:20:40.290
Михаил Непряхин: Если, это не Случилось Если, там не ошибка все Окей то лок остается инфошным и медизованным

533
01:20:41.760 --> 01:20:43.969
Михаил Непряхин: уровень Реагирования как инфон

534
01:20:44.400 --> 01:20:58.960
Михаил Непряхин: соответственно в Записи немножечко по-другому с Этим работать. И во всех. Блогерах по-своему То есть. Все блогеры имеют разные и

535
01:20:59.450 --> 01:21:08.919
Михаил Непряхин: и Еще Это Не Позволяет. Легко перейти с одного лагеря на другой потому что. Люди в целом к чему-то привыкают это все они не Хотят ничего менять

536
01:21:09.190 --> 01:21:17.870
Михаил Непряхин: Поэтому и такая Сильная традиция Ну. Вот по запапу, именно, потому что?

537
01:21:18.430 --> 01:21:46.680
Михаил Непряхин: И и это плохой лагерь им пользоваться не будет Поэтому разработчики блогеров выжимают все что можно ценой

538
01:21:46.930 --> 01:21:53.910
Михаил Непряхин: синтаксиса то есть как бы из этого приходится делать индекс из такой который бы перформанс не Ну

539
01:21:54.100 --> 01:22:03.490
Михаил Непряхин: мы не теряли на перформансе и Поэтому зравок он каждый человек который увидел он немножко странный а если ойер удобный и для робота Он обычно Он медленнее

540
01:22:05.190 --> 01:22:10.229
Михаил Непряхин: а вот в каком месте мы Ошибку туда, помещаем

541
01:22:10.520 --> 01:22:24.389
Михаил Непряхин: а для этого суперудобное Место, Которое мы только Что смотрели так как вот мы здесь в контроле ррендаем Ошибку Я просто добавил. Сюда контекст то есть вот Мы его получили я его сюда пробрасываю

542
01:22:24.540 --> 01:22:30.810
Михаил Непряхин: и Там Внутри я из контекста Достаю

543
01:22:31.510 --> 01:22:40.250
Михаил Непряхин: что То что Там Лежит По этому ключу это тот же самый. Ключ Вот он десять который Мы и здесь изначально ошибку положили

544
01:22:40.490 --> 01:22:45.060
Михаил Непряхин: я Говорю есть ли что-то в Контексте по этому. Ключу

545
01:22:45.720 --> 01:22:53.840
Михаил Непряхин: Ммм если Это есть. То Я его хочу привести. К указательную Ошибку дальше Проверяю Получилось Или Нет

546
01:22:54.620 --> 01:22:59.149
Михаил Непряхин: если Получилось Бы Окей То Я разименовываю

547
01:22:59.310 --> 01:23:04.099
Михаил Непряхин: то Место, где эта ошибка Лежит а она Лежит

548
01:23:04.750 --> 01:23:09.959
Михаил Непряхин: Это Место, Этого дано Я его Я получаю доступ к этому месту в памяти

549
01:23:10.890 --> 01:23:16.200
Михаил Непряхин: и говорю перепиши его но на мою ошибку вот на Эту ошибку

550
01:23:16.500 --> 01:23:31.430
Михаил Непряхин: а это та ошибка которая произошла в контроле я ее здесь Получаю еще и мессадж добавляю и соответственно вот в Этом месте я с помощью контекста делаю такую штуку что у меня кусок памяти в Другом месте

551
01:23:32.910 --> 01:23:40.880
Михаил Непряхин: и это просто один из способов да то есть как бы для того чтобы здесь меньше реагировать потому что это

552
01:23:41.580 --> 01:23:51.749
Михаил Непряхин: здесь это удобно сделать опять, же скорее для демонстрации того что, так можно потому что, вы увидите все увидите все возможные способы как люди только

553
01:23:51.950 --> 01:23:58.829
Михаил Непряхин: не придумывают вот это вот как это залогировать удобно вот мне нравится, такой способ

554
01:23:59.870 --> 01:24:06.920
Михаил Непряхин: и плюс еще смотреть я здесь использую анпек и пользователю я эти все кишочки Не выбрасываю

555
01:24:07.320 --> 01:24:10.709
Михаил Непряхин: я здесь в цикле Делаю ира с Анврап

556
01:24:10.870 --> 01:24:15.860
Михаил Непряхин: Мы до этого Помните смотрели анураб То есть, За Один проход он просто

557
01:24:16.150 --> 01:24:28.249
Михаил Непряхин: Одну матрешечку открывает смотрит Что там внутри вот я значит это делаю столько Раз сколько нужно для того чтобы достучаться до Самой последней ошибки

558
01:24:28.830 --> 01:24:38.239
Михаил Непряхин: и и пользователю в Джисон я уже отдаю вот эту самую, последнюю вашу суть

559
01:24:38.600 --> 01:24:48.139
Михаил Непряхин: а себе, влог я запишу ошибку ту какой она была изначально самую длинную так шаг запущен Запусти,

560
01:24:49.410 --> 01:25:03.530
Михаил Непряхин: компост уже поднял. Здесь так и

561
01:25:04.740 --> 01:25:09.590
Михаил Непряхин: а где оно коллер вот она познер Тоже включи

562
01:25:14.580 --> 01:25:28.550
Михаил Непряхин: вот так волк чище и видите У меня ничего лишнего Нет пробуем. Делать запрос Константинович кан такша давайте

563
01:25:28.840 --> 01:25:34.420
Михаил Непряхин: спиральный крейсер заводи надо создать профиля

564
01:25:45.260 --> 01:25:54.449
Михаил Непряхин: так больше создали Видим Инфолог да что у нас Код Двести Пост

565
01:25:55.070 --> 01:26:01.400
Михаил Непряхин: выведи мне Метод три ручку То Есть отличный Контекст у нас Есть Ммм

566
01:26:02.250 --> 01:26:04.139
Михаил Непряхин: То есть Он в этом месте Видел, варя

567
01:26:05.070 --> 01:26:08.260
Михаил Непряхин: Мы Проверили на ошибку ошибки Не было

568
01:26:15.600 --> 01:26:23.900
Михаил Непряхин: Что все окей Так дальше Давайте Мы Него Получим

569
01:26:28.630 --> 01:26:29.470
Михаил Непряхин: рос

570
01:26:33.490 --> 01:26:37.650
Михаил Непряхин: Так дальше Мы его получим Но Тоже, Получилось ответил сергей

571
01:26:38.100 --> 01:26:44.350
Михаил Непряхин: здесь у меня еще сделана такая штука чтобы вот адишники здесь написали здесь Тоже, как бы важно

572
01:26:44.570 --> 01:26:48.710
Михаил Непряхин: чтобы влок не попадали айтишники в пути

573
01:26:49.110 --> 01:26:56.720
Михаил Непряхин: а чтобы вот эту Строчку потом нужно было фильтровать отдельно. И по ней посмотреть все что было по Этой ручке

574
01:26:58.090 --> 01:27:07.619
Михаил Непряхин: и сделаем ошибку, поищи несуществующий, адишник ульем четырнадцать четыре во франции

575
01:27:07.920 --> 01:27:14.030
Михаил Непряхин: Видите пользователь видит регрессфель летом фонд он не видит вся кишок

576
01:27:14.240 --> 01:27:18.239
Михаил Непряхин: но мне важно их посмотреть сереж и для себя я их запишу

577
01:27:19.370 --> 01:27:23.169
Михаил Непряхин: а вот они кишки оркест фейлет

578
01:27:23.910 --> 01:27:33.139
Михаил Непряхин: и я вижу всю Матрешку чтобы вызван познер гет профайл, и Там Мы получили нотаунд

579
01:27:34.260 --> 01:27:39.240
Михаил Непряхин: и все это произошло в Этой ручке лилия

580
01:27:39.740 --> 01:27:42.590
Михаил Непряхин: давайте инвалид не сделаем ее оди

581
01:27:45.270 --> 01:27:52.359
Михаил Непряхин: Так ну Вот если Не валить ее иди Тоже Видим и Ошибку в боге. Ну и бог стал. Теперь ошибкой потому Что Там вернулась Ошибка

582
01:27:52.760 --> 01:27:58.480
Михаил Непряхин: и Кот ответом на съ Извините и в Какой Ручке это произошло Тоже Понимание. Есть

583
01:27:59.660 --> 01:28:05.990
Михаил Непряхин: Пользователь У Меня Так и от фейлет ну Мы То же самое увидим потому что ничего и Нет хм

584
01:28:06.830 --> 01:28:10.780
Михаил Непряхин: в общем суть как

585
01:28:11.120 --> 01:28:19.190
Михаил Непряхин: выводить какие выводить волги просто такие чтобы потом по логу вы поняли где произошла ошибка ну это все

586
01:28:19.350 --> 01:28:22.089
Михаил Непряхин: то есть в этом случае вот Допустим

587
01:28:22.300 --> 01:28:30.920
Михаил Непряхин: хотим, мы понять где произошла Ошибка ну для Начала Мы Понимаем какая ручка

588
01:28:31.120 --> 01:28:38.310
Михаил Непряхин: и можем в Коде поискать Это место Не Соответственно

589
01:28:38.610 --> 01:28:47.179
Михаил Непряхин: Делаем поиск Находим Две ручки и нас интересует гетто гет соответственно выбираем гет

590
01:28:48.850 --> 01:28:55.440
Михаил Непряхин: все попали в Ручку, То есть вот ошибка произошла в Этой ручке дальше что реквест фейет

591
01:28:55.840 --> 01:29:14.779
Михаил Непряхин: где Он израиль своей вот в двух местах на двух местах ну может быть и

592
01:29:17.230 --> 01:29:21.250
Михаил Непряхин: но Допустим дальше почему там видимо познер раздет профайл,

593
01:29:23.970 --> 01:29:26.309
Михаил Непряхин: Мы понимаем Что ошибка все равно была здесь

594
01:29:29.320 --> 01:29:46.770
Михаил Непряхин: Так здесь Мы Поймем Так можем и

595
01:29:46.960 --> 01:29:56.400
Михаил Непряхин: Дальше ошибка прошла Отсюда Мы Хотим, понять Внутри функции откуда Она пришла что у нас здесь у нас здесь ног фаунд

596
01:29:57.100 --> 01:30:04.900
Михаил Непряхин: ой мне трудно воспользоваться гетто профайл так ищем возрасте взгляд профайл

597
01:30:05.400 --> 01:30:23.579
Михаил Непряхин: у меня здесь Совпадает с названием, функции, Опять, же для Удобства для простоты и написания то Есть я использую так и так Иногда я прямо просто контекст Добавляю как Функцию Иногда расписываю в типа на Английском Языке

598
01:30:24.240 --> 01:30:25.930
Михаил Непряхин: значит Ошибка прошу Отсюда.

599
01:30:26.090 --> 01:30:30.160
Михаил Непряхин: Переходим По Помните У Меня есть Смоки

600
01:30:30.710 --> 01:30:39.369
Михаил Непряхин: фильм трофейс Всегда, ведь затрудняет навигацию. Поэтому правда смотреть в моках Мы и не мог их нас не Интересуют муки и вот Реально нужен реальная Ручка реальная ручка здесь

601
01:30:39.510 --> 01:30:47.730
Михаил Непряхин: дальше Нотаунд ну. Ищем но Фаунд и Что

602
01:30:48.130 --> 01:30:51.800
Михаил Непряхин: Не Находим ну. Почему потому. Что Это уже Кастовная ошибка

603
01:30:52.580 --> 01:30:57.510
Михаил Непряхин: а здесь уже ну. Давайте просто поищем нот фаунт

604
01:30:57.630 --> 01:31:02.989
Михаил Непряхин: вот нутфонд, нашел здесь то есть это уже ошибка моя доменная

605
01:31:06.380 --> 01:31:08.959
Михаил Непряхин: и она тут, в одном месте только

606
01:31:09.080 --> 01:31:16.999
Михаил Непряхин: если не было ничего в ответе и была ошибка вот этот Погаикс и

607
01:31:17.630 --> 01:31:22.640
Михаил Непряхин: можно было использовать ее но это нарушение принципа

608
01:31:23.020 --> 01:31:27.160
Михаил Непряхин: и инерции независимости то Есть я Не могу

609
01:31:27.600 --> 01:31:32.669
Михаил Непряхин: Нигде он Умеет адаптеров использовать эту Ошибку

610
01:31:33.550 --> 01:31:37.509
Михаил Непряхин: я подразумеваю Что он плит Не в контроле это использую

611
01:31:37.830 --> 01:31:54.200
Михаил Непряхин: и Поэтому я хочу конкретно эту я не использовать да Нигде ну вот я допустим захочу где-нибудь ее использовать в ликейсе захочу использовать либо в контролерах она одна у меня нет у меня Еще что есть и

612
01:31:55.600 --> 01:32:03.700
Михаил Непряхин: и если используется она если

613
01:32:04.090 --> 01:32:13.550
Михаил Непряхин: зависимость от пакета по икс а ее не должно быть то Есть, по чистой архитектуре и Поэтому я сделка атомную Ошибку,

614
01:32:14.290 --> 01:32:20.309
Михаил Непряхин: а Она У меня Находится в пакете Намен и Поэтому Не соблюдается принцип инверсии зависимости

615
01:32:21.390 --> 01:32:48.099
Михаил Непряхин: и таким образом имея и и вот поначалу такое упражнение вы должны делать то есть вы видите ошибку

616
01:32:48.780 --> 01:32:57.409
Михаил Непряхин: и представьте что вы не знаете ваш код и попробуете пройти по этой Ошибке то есть вот начало Сначала Размотать

617
01:32:57.840 --> 01:33:06.970
Михаил Непряхин: а попробуйте найти то Место, где она произошла сможете ли вы Это сделать Или нет если вы Это делать сделать не можете Тогда вы должны Посидеть. И Подумать

618
01:33:07.410 --> 01:33:13.869
Михаил Непряхин: как Добавить, контекста к Ошибке и Что еще Можно придумать чтобы во-первых понять

619
01:33:13.980 --> 01:33:21.040
Михаил Непряхин: Что Конкретно это было ну здесь и так видно Что Хтп да То есть как бы Я тут Не Добавляю в начале хтп

620
01:33:21.170 --> 01:33:25.470
Михаил Непряхин: как бы и

621
01:33:25.990 --> 01:33:32.939
Михаил Непряхин: По кодам По названию То есть там У Джерси си бы По-другому Выглядел Поэтому как, бы понятно, что, Это про сервер

622
01:33:33.610 --> 01:33:37.320
Михаил Непряхин: понятно, что, Это ручка гет понятно, какая Это ручка

623
01:33:38.040 --> 01:33:51.030
Михаил Непряхин: понятно, Какой Код был и этот уровень магирования соответственно тоже выбирается если у нас код двести то он Год инф если он больше четырехсот Или равен ему то будет и

624
01:33:51.780 --> 01:33:55.510
Михаил Непряхин: и вот это вот может быть очень длинным

625
01:33:56.150 --> 01:34:04.250
Михаил Непряхин: если это необходимо для того чтобы Проследить всю цепочку и самого длинная Или если вы сами Хотите. Накинуть контекста

626
01:34:04.380 --> 01:34:06.590
Михаил Непряхин: но в целом я стремлюсь и

627
01:34:07.610 --> 01:34:11.390
Михаил Непряхин: к лаконичности к простоте то есть грубо говоря Если, я понимаю что

628
01:34:11.600 --> 01:34:14.700
Михаил Непряхин: ну, мне вот достаточно. Вот этого для того чтобы Понять контекст

629
01:34:14.800 --> 01:34:22.320
Михаил Непряхин: я Не пишу Там что была вызвана Ручка из поиска гет профайл

630
01:34:23.200 --> 01:34:25.839
Михаил Непряхин: с Меня вот так чаще бывает но

631
01:34:27.790 --> 01:34:34.760
Михаил Непряхин: так этот пример продакшн Радио да конечно да можете правда продакшн использовать здесь все хорошо.

632
01:34:35.540 --> 01:34:38.670
Михаил Непряхин: Десять. Каких-то Косяков, Нет

633
01:34:39.710 --> 01:34:52.520
Михаил Непряхин: То вы чаще видеть Будьте в продакшене какие то варианты когда вера в билете не Хватает то есть логий это один из компонентов из элементов обервоерити

634
01:34:53.370 --> 01:35:16.540
Михаил Непряхин: А и так вы на Текущем Этапе Вопросов нет

635
01:35:28.610 --> 01:35:38.150
Михаил Непряхин: и так Как Мы уже давайте. Тогда дальше значит и давайте. Еще про контекст Поговорим контекст Очень Важная Штука для Понимания

636
01:35:38.950 --> 01:35:53.080
Михаил Непряхин: чтобы закрыть Эту тему, так Вот У нас контекст расскажи мне Подробно про контекст тема Сложная Но

637
01:35:54.160 --> 01:36:07.260
Михаил Непряхин: По-разному я уже пробовал ее объяснять она Плохо заходит когда ее объясняешь низкого уровня Поэтому вот тот случай когда

638
01:36:07.620 --> 01:36:11.410
Михаил Непряхин: понимание низкого уровня абсолютно не облегчает. Жизнь

639
01:36:11.910 --> 01:36:18.670
Михаил Непряхин: Поэтому мы больше будем, Об этом говорить и думать о как Об апе

640
01:36:19.360 --> 01:36:26.240
Михаил Непряхин: Ну. И собственно когда мы Хотим? Посмотреть а Что такое контекст то Мы Видим Что Так.

641
01:36:33.850 --> 01:36:44.630
Михаил Непряхин: Мы Видим Что Контекст это Не торфейс Наш контекст интерфейс с методами дедлайн Которые ничего не получают

642
01:36:44.850 --> 01:37:00.109
Михаил Непряхин: возвращают Время дедлайна то Есть Мы в контексте Всегда можем проверить Есть ли Там Есть ли этот контекст Дедлайновый

643
01:37:00.210 --> 01:37:05.219
Михаил Непряхин: то Есть он с Тайм-ауттом то Мы Получим точное время когда он кончится

644
01:37:05.950 --> 01:37:12.670
Михаил Непряхин: ну и тут как бы поймем это дедлайновый контекст Или не за двойным Есть метод дан

645
01:37:13.960 --> 01:37:23.639
Михаил Непряхин: это аналог каналов игнальных которые Мы до этого рассматривали так как Мы уже до этого Говорили о сигнальных каналах

646
01:37:24.160 --> 01:37:35.869
Михаил Непряхин: индийские то примеры есть вот вместо Вот Мы до этого смотрели сигнальный канал типа Там Стоп

647
01:37:36.010 --> 01:37:47.690
Михаил Непряхин: Или что-то было Закончено ну У нас два сигнальных Добычного канала либо Мы говорим, сделай что то остановись стоп

648
01:37:48.730 --> 01:37:53.689
Михаил Непряхин: либо мы Хотим? Получить, сигнал о том что что то было остановлено

649
01:37:53.860 --> 01:38:02.440
Михаил Непряхин: Вот и Вот этот контекст дан он используется как сигнал типа Стоп

650
01:38:02.590 --> 01:38:07.860
Михаил Непряхин: типа когда мы Хотим? Сказать кому то остановись типа Хватит

651
01:38:09.450 --> 01:38:14.350
Михаил Непряхин: а он срабатывает тогда когда дедлайн был достигнут

652
01:38:14.800 --> 01:38:20.809
Михаил Непряхин: то есть у нас тут есть метод когда мы Можем получить время этого самого девайна

653
01:38:21.100 --> 01:38:31.790
Михаил Непряхин: но когда едва не случился то здесь в этом канале просто Приходят сообщения Ну типа пустая структура то есть ничего не значит просто сам факт

654
01:38:32.010 --> 01:38:39.610
Михаил Непряхин: что считайте Что канал закрыт то есть канал закрыт и каждый Раз когда вы будете

655
01:38:41.300 --> 01:38:44.799
Михаил Непряхин: достучаться по контексту да но вот по этому методу.

656
01:38:44.960 --> 01:38:51.630
Михаил Непряхин: Вы Всегда будете получать сообщения и

657
01:38:51.900 --> 01:38:59.670
Михаил Непряхин: а еще да ошибка Победить Они Совершают Ошибку. Значит есть Еще метод ир Возвращает Ошибку.

658
01:39:00.420 --> 01:39:04.670
Михаил Непряхин: Если был достигнут дедлайн то ошибка был дед Лайнок сидит

659
01:39:05.130 --> 01:39:27.410
Михаил Непряхин: если контекст был отменен то Будет ошибка кэнфилд и и

660
01:39:27.850 --> 01:39:30.980
Михаил Непряхин: а-ля стоп то есть типа Мы

661
01:39:31.360 --> 01:39:33.780
Михаил Непряхин: Сейчас остановились ну как Бы Муку

662
01:39:34.250 --> 01:39:39.250
Михаил Непряхин: грубо говоря когда вы По этому? Каналу получили сообщение

663
01:39:39.400 --> 01:39:56.309
Михаил Непряхин: То Это, значит Что тот кто вас Вызывал а У нас Постоянно кто-то кого-то вызывает да Так вот значит Тот кто вас Вызывал Он вам говорит друг Можешь, закрываться уже не Интересует результат твоей работы просто выйдя из себя

664
01:39:56.680 --> 01:40:12.239
Михаил Непряхин: потому что мы обычно где-то в таких местах застреваем То есть Тут у нас канал Где происходит основная Работа утверждает как есть есть есть канал Где происходит основная Работа то есть Мы Там Запустили егорутину

665
01:40:13.750 --> 01:40:21.719
Михаил Непряхин: будет это канал и это канал с результатами Там будет Результат работы нашей городтины

666
01:40:22.530 --> 01:40:33.209
Михаил Непряхин: и все что Мы делаем Мы ждем вот Мы блокируемся в Этом месте и Мы ждем пока Там что-то появится. Когда Там что-то появится. Значит удалось сделать свою работу

667
01:40:33.450 --> 01:40:35.939
Михаил Непряхин: Мы Получим здесь результат и можем идти дальше

668
01:40:36.310 --> 01:40:42.309
Михаил Непряхин: но пока, гортина не завершила вот эта работа Там, внутри, она запустилась она Там, работает мы ждем.

669
01:40:42.920 --> 01:40:46.059
Михаил Непряхин: Ну а что если. Тот кто нас Запускал

670
01:40:46.520 --> 01:40:52.760
Михаил Непряхин: он же может нам сказать что уже не важно можешь даже и не завершать свою работу

671
01:40:53.510 --> 01:40:55.450
Михаил Непряхин: вот для этого Добавляется этот кейс

672
01:40:55.900 --> 01:40:59.760
Михаил Непряхин: и Мы находимся в ожидании обоих кейсов

673
01:41:00.190 --> 01:41:05.370
Михаил Непряхин: Если, наступит Раньше. Этот значит работа была завершена Можем идти дальше

674
01:41:05.500 --> 01:41:08.419
Михаил Непряхин: Ну если к нам приходит контекст дан

675
01:41:08.600 --> 01:41:13.989
Михаил Непряхин: это значит что тот кто, нас Вызывал он нам сигнализирует о том чтобы Мы остановились

676
01:41:14.830 --> 01:41:26.119
Михаил Непряхин: какие вы можете не закладывать никакую другую логику кроме как бросай все и приходи то есть как Бы ну чаще всего в этот кейс да вы можете там чего-нибудь

677
01:41:26.500 --> 01:41:36.700
Михаил Непряхин: можете просигнализировать вот этому. Дружку! Что в этом Можешь, остановиться ну, если У меня там Есть возможность такая туда придется еще один Канал чтобы Он тут возвращал два команд канала

678
01:41:36.900 --> 01:41:46.070
Михаил Непряхин: а и и есть у Него

679
01:41:46.380 --> 01:41:52.680
Михаил Непряхин: последний четвертый метод вэлью короче говоря вы передаете сюда ключ

680
01:41:53.120 --> 01:41:58.460
Михаил Непряхин: а по нему Получаете пустой интерфейс ну и вот Таким образом мы

681
01:41:58.780 --> 01:42:13.170
Михаил Непряхин: вы уже видели эту строчку То есть нам надо обязательно привести тип к Конкретному. Типу Раз это пустой интерфейс Мы должны попытаться Изставать типы и потом проверить Удачный кастинг, произошел. Удачный каст Или Нет

682
01:42:13.960 --> 01:42:18.059
Михаил Непряхин: вот ну и здесь же пример как Добавить контекст

683
01:42:18.700 --> 01:42:26.410
Михаил Непряхин: что-то какую-то волю положить Это делается Не методом. Это делается созданием, Нового контекста

684
01:42:26.980 --> 01:42:39.959
Михаил Непряхин: и Существующего то есть он у нас есть какой-то контекст и Мы с Помощью функции венесуэлью Создаем новый контекст на базе родительского Мы Создаем дочерней

685
01:42:40.460 --> 01:42:46.300
Михаил Непряхин: и в этот вечерний контекст по ключу кладем какой-то нашу валюту

686
01:42:47.170 --> 01:42:52.699
Михаил Непряхин: а с помощью этого метода Мы потом эту вылю Сможем достать день на другом месте

687
01:42:56.490 --> 01:42:58.949
Михаил Непряхин: как думать. Про контекст

688
01:43:06.080 --> 01:43:13.379
Михаил Непряхин: так Ну это получается, у нас есть какой то родительский контекст

689
01:43:14.650 --> 01:43:19.499
Михаил Непряхин: и у него может быть дочерний контекст

690
01:43:20.550 --> 01:43:29.909
Михаил Непряхин: ну и вот в этот допустим дочерний контекст Мы его создадим с помощью Витэлью Мы туда внутрь к нему войдем к Нашей, Волью

691
01:43:31.640 --> 01:43:36.169
Михаил Непряхин: и прикол, в том что это вэлью Из родительского контекста Мы достать не можем

692
01:43:36.910 --> 01:43:42.790
Михаил Непряхин: но это вэлью Мы можем достать Из дочернего контекста

693
01:43:43.140 --> 01:43:52.510
Михаил Непряхин: то есть вот если, мы вот у этого контекста вызовем метод вылью то он будет идти

694
01:43:52.920 --> 01:44:03.239
Михаил Непряхин: в его родительский контекст и смотреть есть ли у Него в Илью с этим Ключом то Есть возможно здесь ключ передаем вот он проверяет с этим Ключом Есть у Него были или Нет

695
01:44:04.090 --> 01:44:06.549
Михаил Непряхин: если в эльви нету

696
01:44:07.990 --> 01:44:14.999
Михаил Непряхин: то он идет, следующий его уже родительский контекст и смотрят есть ли с этим ключом у него в элью

697
01:44:16.770 --> 01:44:28.470
Михаил Непряхин: и конкретно как называется эта структура наверно там с точки зрения алгоритма там есть какая то логика но

698
01:44:28.990 --> 01:44:30.260
Михаил Непряхин: по Сути

699
01:44:30.530 --> 01:44:39.380
Михаил Непряхин: просто тут отношение такое что есть какой-то главный верхний родительский контекст он является родителем для всех последующих, контекстов

700
01:44:40.020 --> 01:44:44.670
Михаил Непряхин: и вот остальные у него дети то есть это получается. Чего

701
01:44:45.100 --> 01:44:49.809
Михаил Непряхин: дерево такое да получается у нас есть родители у меня дети

702
01:44:50.390 --> 01:44:53.899
Михаил Непряхин: как Будто на древидна эта структура она Только по Сути

703
01:44:54.260 --> 01:45:02.310
Михаил Непряхин: не с множеством листов а с одним листом все дети чуть тип това да

704
01:45:03.300 --> 01:45:10.820
Михаил Непряхин: так и ну это вот когда мы че-то войдем в контекст физическое можем положить кстати здесь такой еще прикован есть

705
01:45:12.010 --> 01:45:20.250
Михаил Непряхин: вот если мы имеем один ключ есть у нас какой то ключ его не рекомендуется делать строкой

706
01:45:20.590 --> 01:45:26.950
Михаил Непряхин: можно сделать строкой. Но Не рекомендуется потому что может Возникнуть Конфуз рекомендуется сделать прямо. Типом

707
01:45:27.420 --> 01:45:32.220
Михаил Непряхин: значит Вот допустим с этим ключом Вот этот контекст что-то положил,

708
01:45:32.490 --> 01:45:39.110
Михаил Непряхин: я выдает контекст, что-то положил, с одним и Тем же Причем этот контекст, начинает читать

709
01:45:39.310 --> 01:45:44.189
Михаил Непряхин: ну искать Вот делать Вот Эту Вэлью кей с Этим Ключом

710
01:45:45.170 --> 01:45:49.420
Михаил Непряхин: и ближайший. Какой он идет он тот и возьмет

711
01:45:50.000 --> 01:45:56.669
Михаил Непряхин: и если его надо переписать он его Перепишет, если надо просто прочитать он его прочитает вот до этого он достучаться не сможет

712
01:45:57.640 --> 01:46:02.790
Михаил Непряхин: так что. Короче говоря тут такой прико что.

713
01:46:02.930 --> 01:46:08.489
Михаил Непряхин: А ну вот как станет сказано связанный список ну кубки можно думать как про односвязный список

714
01:46:08.990 --> 01:46:21.890
Михаил Непряхин: окей да можно думать как правда связанный список типа и и

715
01:46:24.730 --> 01:46:35.280
Михаил Непряхин: ну и соответственно контекст может быть Не только Со Значением Он может быть с каким-то тителем ну То Есть тайм-тулив

716
01:46:35.500 --> 01:46:39.129
Михаил Непряхин: короче времени. В жизни с каким-то временем в жизни он может быть

717
01:46:39.430 --> 01:46:47.679
Михаил Непряхин: и как только вот допустим Мы здесь время жизни назначили как только это время наступило

718
01:46:48.250 --> 01:46:53.510
Михаил Непряхин: ну во-первых происходит то что контекст, дан начинает работать

719
01:46:53.910 --> 01:47:04.860
Михаил Непряхин: и все вот Эти вот Дочерние контексты они начинают возвращать контекст, дан ну что-то что контекст, завершен

720
01:47:05.260 --> 01:47:11.779
Михаил Непряхин: и таким образом происходит пропагандистская Пропаганда вернее и Вот этого

721
01:47:12.270 --> 01:47:14.479
Михаил Непряхин: что Уже Работа. Не имеет. Смысла

722
01:47:15.230 --> 01:47:24.480
Михаил Непряхин: и если и так же вы руками можете отменить значит вы можете сказать вот вы в этот контекст говорите кэнсел. Отменяете его

723
01:47:25.750 --> 01:47:32.259
Михаил Непряхин: и вот Эти все контексты Они отменяются но как Они отменяются

724
01:47:32.790 --> 01:47:36.239
Михаил Непряхин: а они начинают возвращать контекст да

725
01:47:36.460 --> 01:47:41.689
Михаил Непряхин: что-то ну Там создается доканал с пустой структурой и вот он начинает

726
01:47:42.160 --> 01:47:48.199
Михаил Непряхин: когда вы его опрашиваете он срабатывает и Таким образом вот эти все товарищи

727
01:47:48.440 --> 01:47:54.479
Михаил Непряхин: где они там находились Сейчас, в селекте они все сработают по контекст дону

728
01:47:55.610 --> 01:48:03.820
Михаил Непряхин: вот Это, весь функционал вообще контекст изначально был придуман все-таки для тайм-аутов но вот в последующем

729
01:48:04.030 --> 01:48:10.570
Михаил Непряхин: и вотсвелли тоже стал использоваться но это надо делать очень аккуратно и

730
01:48:10.700 --> 01:48:17.849
Михаил Непряхин: и если это оправдано ну вот я вам показываю пример как я ошибку Допустим

731
01:48:18.010 --> 01:48:21.299
Михаил Непряхин: таким образом пробрасываю между разными слоями

732
01:48:21.460 --> 01:48:28.090
Михаил Непряхин: вот ну опять, же для Примера чтобы хоть, что-то показать так целом

733
01:48:28.860 --> 01:48:38.699
Михаил Непряхин: ну надо стараться, По Минимуму использовать только там где без этого но вообще никак нельзя если как То Можно По Другому Без Контекста То Лучше. Без Контекста

734
01:48:38.960 --> 01:48:46.130
Михаил Непряхин: вернее Без контекста с Уэлью Так значит Окей создаем Контекст, Пкграунд.

735
01:48:46.560 --> 01:48:53.710
Михаил Непряхин: Что он Там по дефолту когда просто обычный контекст контекст бэкграунд это вот ошибку пустой контекст

736
01:48:54.530 --> 01:49:02.030
Михаил Непряхин: почему они тут еще и друг, в друге а бэкграунд контекст и антиконтексты за пустая структура короче говоря

737
01:49:02.520 --> 01:49:14.770
Михаил Непряхин: Обычный контекст это просто пустая структура и

738
01:49:15.000 --> 01:49:18.709
Михаил Непряхин: а этот вообщетер он делает он Кстати говоря актер тот самый,

739
01:49:19.010 --> 01:49:30.469
Михаил Непряхин: который проклят что ведь. Вы здесь прописали переменные и Это позволяет, сделать говорит термин и Это Сценарная библиотека короче говоря кост стандартной библиотеки он

740
01:49:30.680 --> 01:49:34.740
Михаил Непряхин: Недиоматичный мягко говоря все и

741
01:49:36.820 --> 01:49:41.999
Михаил Непряхин: ну вот если Мы смотрим Что Там Возвращаются ним Не мне мирра ни У дан ни

742
01:49:46.940 --> 01:49:54.199
Михаил Непряхин: Часиков есть Еще такое явление ну вы обычно начинаете с контекстной грамоты то есть Тут

743
01:49:54.370 --> 01:50:04.319
Михаил Непряхин: это сам что контекст нью-йорк Не знаю почему бы сделать Ни нью-йорк вот бэкграунд назвали есть еще контекст туда ну это типа просто семантика

744
01:50:04.480 --> 01:50:09.310
Михаил Непряхин: суду контекст это тот же самый антиконтекст Поэтому

745
01:50:09.480 --> 01:50:16.500
Михаил Непряхин: и использоваться типа задуманного чтобы вот когда вы не знаете какой контекст использовать вы его называете туду

746
01:50:16.690 --> 01:50:33.450
Михаил Непряхин: вместо того чтобы сделать вот так конечно и значит по популярности, топ один контекст

747
01:50:34.760 --> 01:50:41.969
Михаил Непряхин: ведь в чем, идея создается есть контекст бэкграунд то есть ведь это функция которая принимает брент контекст

748
01:50:42.740 --> 01:50:46.909
Михаил Непряхин: вы создаете новый контекст от бекграунда

749
01:50:47.670 --> 01:50:50.710
Михаил Непряхин: ну либо от какого-то который к вам пришел

750
01:50:51.540 --> 01:50:59.529
Михаил Непряхин: и функция возвращает собственно новый контекст видите же как будет прикол о том Что. Когда Вы создаете Контекст оно Всегда,

751
01:50:59.640 --> 01:51:11.830
Михаил Непряхин: возвращает Новый Контекст и и получается старый Контекст он его Не увидит Поэтому приходится перезаписывать Контекст

752
01:51:12.090 --> 01:51:20.300
Михаил Непряхин: и вот тут старый контекст он так и останется старым а вот уже новый родительский он будет

753
01:51:21.270 --> 01:51:26.500
Михаил Непряхин: Иметь, доступ наверняка как бы его родителям У него есть родитель Этого контекста

754
01:51:26.940 --> 01:51:35.770
Михаил Непряхин: и функция концов это просто функция то есть У нее Сигнатура, консул. Фанк это просто функция Некая. Функция

755
01:51:36.210 --> 01:51:49.630
Михаил Непряхин: ну Идея в том что когда вы ее вызовете вы закроете все этот Контекст закроется и если У Него Были дочерние контексты Они тоже все вокруг ну. То Есть вы сделаете пропаганда, Вот этого

756
01:51:50.370 --> 01:52:05.749
Михаил Непряхин: все начнут возвращаться, к контекдам так что, мир пример свой сигнал создается сигнал получен сигнал типа Мы закрыли

757
01:52:05.930 --> 01:52:12.740
Михаил Непряхин: сделали консол. Ну дефолт но принято вот в ферра еще его закрывать если, он будет закрыть два раза ничего Страшного поселок

758
01:52:13.210 --> 01:52:21.439
Михаил Непряхин: вот и вы его здесь закрыли и соответственно получили сигнал и закрылели

759
01:52:21.590 --> 01:52:28.040
Михаил Непряхин: контекст и все Дочерние контексты тоже Закрылись так

760
01:52:29.940 --> 01:52:44.690
Михаил Непряхин: Там тут Трава Куда Она Читает Дороги значит Мы создали грутину сказали Что нас Интересует сигнал интертеропт сигнт сигентетом

761
01:52:44.800 --> 01:52:51.310
Михаил Непряхин: который опять. Же забыла О губернаторы. Которые посылают или Нет или Это кондорца

762
01:52:51.970 --> 01:52:55.410
Михаил Непряхин: и Заблокировались в этом месте все Мы заблокировали ждем

763
01:52:56.270 --> 01:53:03.189
Михаил Непряхин: дальше запускается грутина в Картину Мы этот контекст передали ну и в эту группу создали тоже, передали

764
01:53:07.040 --> 01:53:20.900
Михаил Непряхин: Так горки разошли воен группу по закрытию закроем и спим час спим час а и

765
01:53:23.230 --> 01:53:33.970
Михаил Непряхин: и Если Мы получим Контекст дан То Мы Напечатаем Проверяем Ошибку, контекста

766
01:53:35.050 --> 01:53:43.440
Михаил Непряхин: и собственно выйдем из Электората после того как Мы выйдем интеллекта а здесь ага

767
01:53:43.540 --> 01:53:47.819
Михаил Непряхин: да это конечно давайте, запустим в Этой российской конструкции, о которой

768
01:53:48.580 --> 01:53:50.620
Михаил Непряхин: так значит вот Мы Спим час

769
01:53:54.080 --> 01:54:02.960
Михаил Непряхин: вот я нажимаю вот Пишем, получен сигнал и вот Ошибка контекста консенсуса

770
01:54:03.800 --> 01:54:09.740
Михаил Непряхин: короче говоря если, бы Мы не когда Мы сигнал получили

771
01:54:09.920 --> 01:54:19.700
Михаил Непряхин: Мы контекст закрыли Мы контекст закрыли и соответственно в этот контекст он Сразу, же начал читать контекст дан и Мы из этого

772
01:54:19.820 --> 01:54:27.020
Михаил Непряхин: а селекты вышли Пока вы Мы не вышли Мы спали Час так аа

773
01:54:27.830 --> 01:54:38.099
Михаил Непряхин: похожий функционал есть дедлайном значит например, мы также можем руками контекст отменить но мы Хотим? Сказать

774
01:54:38.810 --> 01:54:48.659
Михаил Непряхин: вот от текущего момента где точнее просто сказать Время вот я Тут Через Две минуты сделал я беру Время Сейчас добавляю Две секунды

775
01:54:49.230 --> 01:54:53.109
Михаил Непряхин: и говорю Что Через Две секунды Контекст сам закроется

776
01:54:54.110 --> 01:55:07.160
Михаил Непряхин: ну Поэтому я здесь даже Никакие Сигналы не Слушаю просто Запускаю Уворкер у Меня, спит Час и через Два секунды он сам этот контекст дан сработает и мне Напечатан две ошибки

777
01:55:07.730 --> 01:55:09.530
Михаил Непряхин: ой да

778
01:55:16.820 --> 01:55:38.200
Михаил Непряхин: на ждем две секунды ой значит две секунды Прошло и Можете проверить контексте. И посмотреть

779
01:55:38.320 --> 01:55:42.790
Михаил Непряхин: какая была причина то есть у нас дедлайн случился или нас отменили

780
01:55:43.400 --> 01:55:52.010
Михаил Непряхин: работа с дедлайнами Не Всегда удобна Поэтому тут же появилась другая, обертка контекста и моут и тайм-аут используется Гораздо чаще

781
01:55:53.370 --> 01:55:58.500
Михаил Непряхин: контекст тайм-аут это тот же самый дедлайн просто вывод вместо этого

782
01:55:58.690 --> 01:56:02.220
Михаил Непряхин: чтобы вот это вот здесь написать длинна

783
01:56:03.900 --> 01:56:15.569
Михаил Непряхин: вы прямо здесь пишете через сколько через Две секунды а у остального Кот один и тот же контекст, дедлайн почти не используется вот контекст ястремал вот этого трево

784
01:56:15.930 --> 01:56:24.770
Михаил Непряхин: а это топ- два после конца перча ведет себя один в один как контекст дедлайн тоже Час две секунды

785
01:56:25.230 --> 01:56:29.179
Михаил Непряхин: ну я видимо десять да этот десять бурутин запустил

786
01:56:29.360 --> 01:56:37.049
Михаил Непряхин: вот вот это вот используется Чаще и руками тоже, Всегда, можете запустить допустим вы делаете запрос куда-то

787
01:56:37.800 --> 01:56:46.359
Михаил Непряхин: У вас Не сервис вы в него делаете запрос говорите значит ну даю пятнадцать секунд если ты за пятнадцать секунд Не выполнишься

788
01:56:46.680 --> 01:56:51.089
Михаил Непряхин: То давай, наступит и сработает в этот Контекст дан

789
01:56:51.930 --> 01:57:00.359
Михаил Непряхин: То есть Видите как, бы никакой могилы да Не То что Там что-то само. Делать Нет просто вы как бы говорите через Пятнадцать секунд хочу

790
01:57:00.520 --> 01:57:08.050
Михаил Непряхин: чтобы Вот этот канал Сработал чтобы из этого канала Я мог читать пустую структуру

791
01:57:08.350 --> 01:57:13.299
Михаил Непряхин: и все как бы вот в этом есть механизм если вдруг вы Не используете селект

792
01:57:13.660 --> 01:57:18.569
Михаил Непряхин: или используйте селект Но у вас Нет кейса с контекст данным

793
01:57:19.100 --> 01:57:27.909
Михаил Непряхин: То вот этот ваш дедлайн он бесполезный ну только если вдруг У вас Там от Него Еще дети какие-нибудь не Появились Тогда Они Там может быть дай бог

794
01:57:27.920 --> 01:57:40.649
Михаил Непряхин: и они Там будут использовать контекст дан

795
01:57:41.130 --> 01:57:47.680
Михаил Непряхин: ну то Есть кто-то же должен обработать Этот сигнал который будет послан когда этот Едва не случится

796
01:57:48.410 --> 01:57:56.859
Михаил Непряхин: и У вас Есть возможность руками если вдруг вы поняли Что вот Пятнадцать секунд еще Не, прошло

797
01:57:57.040 --> 01:58:02.360
Михаил Непряхин: но вот по Коду вы поняли уже Не, имеет смысла ждать прошло Пять секунд всего лишь

798
01:58:02.680 --> 01:58:15.680
Михаил Непряхин: вроде как я Раз сделали, канцел, и тоже сработает контекст дан и все как бы и уже не надо было ждать, пятнадцать секунд вы можете хоть, руками его закрыть хоть, через пятнадцать секунд а сам закроется

799
01:58:17.050 --> 01:58:26.249
Михаил Непряхин: а и Всегда когда дело хотят больше пропустить запросы. Нужно Добавить контекст и автомат да по-хорошему да

800
01:58:26.550 --> 01:58:33.410
Михаил Непряхин: то есть это и есть способ, как сделать тайм аут на запрос да потом по хорошему

801
01:58:34.100 --> 01:58:36.719
Михаил Непряхин: Всегда когда делать их тут опять. Же все запросы

802
01:58:37.040 --> 01:58:45.569
Михаил Непряхин: даже Пусть лучше сделать большой тайм-аут чего вообще Не делать потому Что это вас спасет от медленных запросов Которые просто свисают на той Стороне

803
01:58:47.720 --> 01:58:56.989
Михаил Непряхин: так Им с вэлью Да и тот самый контекст с уэлью

804
01:58:57.340 --> 01:59:05.200
Михаил Непряхин: который не рекомендует использовать но важно не узнать что когда нибудь все равно пригодится ну или попадется

805
01:59:05.360 --> 01:59:09.639
Михаил Непряхин: как бы мощный Ему конечно очередь но вот очень легко им, стрелять в ногу

806
01:59:09.770 --> 01:59:15.870
Михаил Непряхин: почему ну потому, что он создает второй параллельный и

807
01:59:15.970 --> 01:59:23.639
Михаил Непряхин: ну то есть выживет можете вообще аргументы все передавать в контексте я такие проекты видел,

808
01:59:24.110 --> 01:59:28.020
Михаил Непряхин: то есть э зачем нам

809
01:59:33.330 --> 01:59:34.910
Михаил Непряхин: а Вот зачем нам.

810
01:59:35.230 --> 01:59:42.279
Михаил Непряхин: А Передавать какой-то Вот У меня Контроль получили Мы какой-то импульт что тут, Вот

811
01:59:43.180 --> 01:59:44.969
Михаил Непряхин: где То я Создаю короче Профиль

812
01:59:45.880 --> 01:59:53.169
Михаил Непряхин: А зачем это мне передавать структуру отдельно. Отдельным. Аргументом я ведь Могу ее в контексте затолкать

813
01:59:53.500 --> 01:59:56.349
Михаил Непряхин: вообще легко я беру и заталкиваю в контекст

814
01:59:56.480 --> 02:00:03.279
Михаил Непряхин: передаю дальше везде только контекст смотрите если натура. Получается короткой а и

815
02:00:04.030 --> 02:00:13.810
Михаил Непряхин: вот новый профиль зачем мне туда вот это все передавать я просто к контексту передам а здесь внутри я из контекста что достану не надо эту кузьматуру будет для написать

816
02:00:14.590 --> 02:00:20.250
Михаил Непряхин: и так далее то есть можно вообще везде просто Передавать Контекст

817
02:00:20.450 --> 02:00:34.889
Михаил Непряхин: и все аргументы. Передавать Через этот! Контекст Я Не Шучу Реально такой Проект, Видел жизнь Полнейшая. Потому. Что У вас все сигнатуры становятся. С контекстом ну. Представляете вот У вас нету вот этих вот всех

818
02:00:35.260 --> 02:00:39.129
Михаил Непряхин: а У вас вот просто. Все сигнатуры вот Так вот вам даже смысла Нет

819
02:00:39.800 --> 02:00:44.479
Михаил Непряхин: Там какие-то Не трофейцы Делают Потому Что вот Тут, все Методы вот так вот выглядят

820
02:00:44.770 --> 02:01:05.240
Михаил Непряхин: вы абсолютно Не понимаете Что У вас происходит и и и

821
02:01:06.250 --> 02:01:18.299
Михаил Непряхин: Пустых интерфейсов То есть когда вы Уэлью Получаете видите У вас тут пустой интерфейс То есть вы в Принципе превращаете сразу в Голову. Динамический язык. И у вас вот везде появляются вот эти проведения Типов

822
02:01:18.840 --> 02:01:30.679
Михаил Непряхин: естественно. Иногда вы забываете. Их проверить на коррекцию вот так вот получаете здесь в элью начинаете с Ним дальше работать и уловите не упомянет ресепшн ну и все Проект умирает просто

823
02:01:31.680 --> 02:01:43.100
Михаил Непряхин: Поэтому Мне так Это кажется, вот только кейс и Там где вы понимаете Что он без этого никак и ну. Очень-очень ограничен То Есть даже угер Я Не Рекомендую. Прокидывать через Контекст

824
02:01:43.770 --> 02:01:48.180
Михаил Непряхин: значит новым Давайте посмотрим на и Пять значит

825
02:01:48.620 --> 02:01:53.409
Михаил Непряхин: Есть Ключи По которым мы в Контексте Что кладем и по которым Мы Достаем

826
02:01:54.710 --> 02:02:00.729
Михаил Непряхин: опять же Не рекомендуется делать Строку почему потому Что

827
02:02:02.310 --> 02:02:09.099
Михаил Непряхин: любые другие Пакеты тоже могут случайно использовать этот Ключ вы перезапишите Один, и тот же Ключ

828
02:02:09.370 --> 02:02:23.239
Михаил Непряхин: тот пакет Был думать что там Это же его Ключ Был а Другой как я Думал что это его ключ они будут конфликтовать получите гонку данный Внутри контекст это в Принципе такой вариант который бажить не очень весело

829
02:02:23.380 --> 02:02:29.409
Михаил Непряхин: Поэтому лучше, эксклюзивный типизированный ключ вот такой

830
02:02:29.730 --> 02:02:33.630
Михаил Непряхин: он точно уникален на один пакет никак Не перепутайте

831
02:02:34.260 --> 02:02:41.380
Михаил Непряхин: и все еще и приватный Так чтобы вообще нафиг никакой другой пакет не получил. Доступ к вашему ключе

832
02:02:41.510 --> 02:02:51.909
Михаил Непряхин: и понятно, что. Если вы хотите, нескольких знаков. В одном пакете писать О другом читать тогда его надо Будет делать публичным чтобы вы Здесь Могли Записать А там кто-то мог. Прочитать

833
02:02:52.500 --> 02:03:00.579
Михаил Непряхин: значит как. Пишем Пишем с помощью Виттуэлью то есть создаем новый контекст из родительского,

834
02:03:00.910 --> 02:03:07.370
Михаил Непряхин: создаются Вечерний и в этот вечерний с помощью этого ключа добавляется вот этого значения

835
02:03:08.560 --> 02:03:12.689
Михаил Непряхин: ну, а читаем с помощью Вот этого Метода интерфейса Вэлью

836
02:03:12.970 --> 02:03:21.139
Михаил Непряхин: и просто говорим По Какому ключу Мы Хотим? Что-то достать Вот и Это достаем

837
02:03:21.280 --> 02:03:26.930
Михаил Непряхин: и дальше надо еще Это дело привести ну Поэтому часто используют Вот Так Вот совмещают

838
02:03:27.070 --> 02:03:30.029
Михаил Непряхин: здесь сразу Она поручает. Окей

839
02:03:39.260 --> 02:03:42.920
Михаил Непряхин: а ну как бы и все Ммм

840
02:03:44.120 --> 02:03:56.370
Михаил Непряхин: Так если мы По несуществующему ключу пытаемся достать чертова из контекста но мы получим дамблдор

841
02:03:56.900 --> 02:04:00.229
Михаил Непряхин: вот соответственно он был отравлен нилу если, ничего нет

842
02:04:00.450 --> 02:04:05.540
Михаил Непряхин: ну и это Тоже Будет работать ведь как бы оно не приведет да и все Вы самой кажетесь Вы здесь

843
02:04:07.690 --> 02:04:16.870
Михаил Непряхин: Так страшилки с контекстом проснул просто на всякий случай вдруг как бы кто-то с динамического языка захочет этим увлекаться

844
02:04:18.070 --> 02:04:24.309
Михаил Непряхин: и последний премьер так значит Вот как Раз про

845
02:04:24.610 --> 02:04:42.150
Михаил Непряхин: то Что. Есть такой бак о котором, вообще все забывают и а и

846
02:04:42.460 --> 02:04:45.879
Михаил Непряхин: Так ну создаем контекст с тайм-аутом

847
02:04:46.390 --> 02:04:51.080
Михаил Непряхин: Э три контролера круче третий по Запросам не делаем

848
02:04:51.610 --> 02:04:59.350
Михаил Непряхин: и в контроле мы подключу контекст кей вадима май валью один клоун

849
02:04:59.580 --> 02:05:06.539
Михаил Непряхин: я бы даже назвать так как значит ай эум айм Контролер вот Так сделал

850
02:05:07.280 --> 02:05:15.160
Михаил Непряхин: потом значит Мы Из Него создаем еще одну, Картину Хэндлер и нравится

851
02:05:21.170 --> 02:05:27.140
Михаил Непряхин: Так и Он короче вызывает Эту Грудину и спит Спид

852
02:05:27.670 --> 02:05:35.919
Михаил Непряхин: потом Хендлер запускается вызывает другую грудину и Тоже спит ну до тех Пор пока кандидат Не будет

853
02:05:36.240 --> 02:05:43.580
Михаил Непряхин: ю кейс запускается и Питает контекст по этому ключу

854
02:05:44.370 --> 02:05:48.719
Михаил Непряхин: и он сможет достучаться только вот он будет видеть это значение

855
02:05:48.950 --> 02:05:57.090
Михаил Непряхин: то есть типа он думает что я Сейчас вот до этого значения Дойду, достучусь типа его интересует контроля а вместо этого он видит

856
02:05:57.350 --> 02:06:10.350
Михаил Непряхин: человечка посередине который втизнут попал между ними и записал свое, значение по этому ключу, и

857
02:06:11.540 --> 02:06:17.300
Михаил Непряхин: так ну все он завершается у и мы получается видим айэмхендр,

858
02:06:17.640 --> 02:06:20.640
Михаил Непряхин: из контекста так где вы Хотите, в контекстечитаться

859
02:06:32.910 --> 02:06:39.000
Михаил Непряхин: да ведь Айм хендер вот а если бы вот этот

860
02:06:39.420 --> 02:06:47.980
Михаил Непряхин: персонаж посередине ничего Не записал То, вы бы достучались он до сюда Айэмп, андроллер вот

861
02:06:52.700 --> 02:06:55.310
Михаил Непряхин: три секунды тайм аут ну и Потом они все закрываются

862
02:06:55.810 --> 02:07:11.669
Михаил Непряхин: и Что если вы берете и с одним и тем же ключом на разных уровнях в разных контекстах

863
02:07:11.940 --> 02:07:28.739
Михаил Непряхин: и записываете, то вы из Последнего, и

864
02:07:29.700 --> 02:07:33.240
Михаил Непряхин: вот на этом на этом все давайте, значит

865
02:07:33.490 --> 02:07:43.090
Михаил Непряхин: как вам Контекст все ли понятно, вопрос есть ли Вопросы, так что, можно

866
02:07:43.210 --> 02:07:55.569
Михаил Непряхин: что можно стоит ставить в контексте кроме ракетастыйди вот реквиста иди это топ, динчу я вижу именно, вот контекст мисс уэлью а вот это провали горы

867
02:07:56.320 --> 02:08:01.269
Михаил Непряхин: так-то чаще, всего контекст все-таки старим молотом но вот если, Мы в элью говорим то Там обычное кресло иди

868
02:08:01.820 --> 02:08:13.290
Михаил Непряхин: на втором месте наверное Блогер Блогер часто бывает ну и ну и

869
02:08:13.540 --> 02:08:19.689
Михаил Непряхин: трейсинг, использует контекст то есть а Трейсинг, он же пронизывает все

870
02:08:19.910 --> 02:08:25.929
Михаил Непряхин: а все структуры эти все слои и вот смотрите когда мы

871
02:08:26.300 --> 02:08:36.160
Михаил Непряхин: Круиз кейси. Например, Трейсинг, воттон смотрите что сделать Рессинг, он Берет Текущий контекст и Возвращает в другой контекст

872
02:08:36.880 --> 02:08:42.790
Михаил Непряхин: зачем а потому. Что он Берет Текущий контекст и ну

873
02:08:43.190 --> 02:08:51.899
Михаил Непряхин: он там временную Медку ставит он Там контекст добавляет вот этот Вот что Сейчас Уже Другой Спан начался вот этот вот

874
02:08:52.340 --> 02:08:58.630
Михаил Непряхин: и соответственно создает Другой контекст Там внутри даже можно Глянуть шампанское

875
02:08:59.450 --> 02:09:03.780
Михаил Непряхин: Греф оа и Вот Видите короче все Не получится быстро, Снять

876
02:09:04.070 --> 02:09:10.920
Михаил Непряхин: и открывает этот контекст оттуда берет данные и создает новые и записывает их сюда

877
02:09:11.240 --> 02:09:19.600
Михаил Непряхин: вот, да наверное даже вот, и

878
02:09:23.310 --> 02:09:30.469
Михаил Непряхин: noise а я наконец понял напишем например контекст ту или точка Старинг,

879
02:09:30.830 --> 02:09:40.930
Михаил Непряхин: Так потому, Что Мы не знаем Что в общем да Мы не знаем Что были то Есть как, бы ну вот так вот короче какой у нас этот

880
02:09:41.460 --> 02:09:55.390
Михаил Непряхин: контракт Что Мы и и ну вот топ Один, это Мы просто проверяем контекстедан, сигнальный канал

881
02:09:55.570 --> 02:10:01.949
Михаил Непряхин: вот и Мы вот вот имеем вот этот вот универсальный метод который возвращая трени,

882
02:10:02.260 --> 02:10:12.590
Михаил Непряхин: он Не, типизированный Поэтому мы вынуждены приводить этот тип так всего вопросов больше Нет

883
02:10:15.600 --> 02:10:28.959
Михаил Непряхин: и насколько вам Сложна тема показалась контекстом то есть у контекста очень сложная тема на самом деле Поэтому они прямо уделили довольно много Времени этому. Ну и вообще обработка ошибок Видите как оно само связано

884
02:10:31.580 --> 02:10:34.580
Михаил Непряхин: сложно ну слушать реально сложно относиться

885
02:10:35.250 --> 02:10:47.060
Михаил Непряхин: если. Вы как бы чувствуете себя силы можете зайти в пакет контекст и посмотреть как они тут устроены но здесь ну

886
02:10:47.530 --> 02:10:48.940
Михаил Непряхин: на семьсот строк

887
02:10:49.610 --> 02:10:58.630
Михаил Непряхин: и есть еще парочка контекстов про которые Я вам Не сказал они Появились буквально вот там версию Одну версию назад вот из Тайм-аутка

888
02:10:58.890 --> 02:11:17.139
Михаил Непряхин: короче Не используется и вот и они вот Так как они вот все такие матрешечные

889
02:11:17.400 --> 02:11:23.840
Михаил Непряхин: ну как типа Одно, связанные списки да получается Сейчас найди допустим

890
02:11:27.020 --> 02:11:31.489
Михаил Непряхин: Еще избежал кенсел Сейчас будет канцл возни на нем

891
02:11:37.690 --> 02:11:39.960
Михаил Непряхин: тарас Кендсон

892
02:11:44.620 --> 02:11:51.850
Михаил Непряхин: Эндрюкин текст вот как выглядит контекст значит в контексте

893
02:11:51.990 --> 02:11:56.100
Михаил Непряхин: есть контекст ну собственно на родительский вот он родительский

894
02:11:56.380 --> 02:12:04.500
Михаил Непряхин: ну да Это получается одно, связанный Список вот он Мы имеем доступ только к родительскому контексту больше никакому

895
02:12:05.430 --> 02:12:13.920
Михаил Непряхин: а у нас тут, миютакс у нас тот томик на дан и У нас дети то есть Мы еще

896
02:12:14.530 --> 02:12:23.989
Михаил Непряхин: канцлер это Интервью, боже мой с Пустыми структурами то есть Там вот эта Пропаганда чтобы как бы

897
02:12:24.560 --> 02:12:30.459
Михаил Непряхин: когда Мы делаем да ой вели-то наступает

898
02:12:31.450 --> 02:12:40.670
Михаил Непряхин: Вот видите пропаганде Клянцева как он пропугаться делает концово пенсо это родитель noise

899
02:12:41.670 --> 02:12:54.420
Михаил Непряхин: ну Нет решил, что-то на эльфийском что-то сложно так. С Ходу Это Не Читается То Есть когда-то я это прямо, разбирался как мне надо досконально работать но это невозможно он еще в грурутины хотя не он господи

900
02:12:54.600 --> 02:13:02.020
Михаил Непряхин: очень сложно это реальность можно мозг вносящая структура

901
02:13:02.320 --> 02:13:12.139
Михаил Непряхин: этот контекст вот Поэтому вот Гораздо проще объяснить просто вот как он себя ведет про внутренние устройства контекст ну, слава богу никто Не спрашивает

902
02:13:12.380 --> 02:13:17.879
Михаил Непряхин: вот но на собесах соответственно вы Все равно будете ну

903
02:13:18.170 --> 02:13:24.369
Михаил Непряхин: этот ближе мидом плюс синер уровень когда вы селекты пишете Еще вот

904
02:13:24.740 --> 02:13:39.469
Михаил Непряхин: и просто контекст данте вы должны знать как работает как минимум ну. И делать ограничения на запросы к чему-либо каким-то другим сервисам делать Титель дай Ему от вернее

905
02:13:40.690 --> 02:13:48.450
Михаил Непряхин: три моего отключения черный запрос никак Не могу понять и рассказ.

906
02:13:49.610 --> 02:13:58.310
Михаил Непряхин: Оно Сложная рента я даже вот примеры пытался когда привести то есть

907
02:13:58.520 --> 02:14:01.559
Михаил Непряхин: ну. По Сути видите в чем фишка

908
02:14:02.240 --> 02:14:10.599
Михаил Непряхин: раз-раз Интервью Это ну оперу да ошибка Это интерфейс

909
02:14:11.280 --> 02:14:20.700
Михаил Непряхин: ошибка Это Нетрофия Раз и Не Торопились значит У Него есть два Указателя ну или так сказать можно думать об этом как о двух полях а это тип

910
02:14:21.300 --> 02:14:30.739
Михаил Непряхин: и это Вэлью как проверить на тип талия это ошибка вот с помощью ис

911
02:14:31.630 --> 02:14:51.170
Михаил Непряхин: ну еще есть тип а как проверять на тип он с помощью с то есть как бы это с оно Родилось просто ну Так как есть типа у интерфейса а ошибка это не трофеи то значит и можно проверить на тип и так оно и появилось

912
02:14:51.200 --> 02:14:56.600
Михаил Непряхин: но в целом По жизни оно практически не используется

913
02:14:56.980 --> 02:15:07.240
Михаил Непряхин: ну просто когда Попадется какой-то пример хороший где это заюзано вы и на этом примере поймете вот зачем оно здесь было надо зачем мы хотим, проверить

914
02:15:07.540 --> 02:15:11.269
Михаил Непряхин: тип, является ли эта ошибка этим типом

915
02:15:11.830 --> 02:15:15.730
Михаил Непряхин: вот но Так по жизни это очень редко используется встречаться

916
02:15:19.210 --> 02:15:41.450
Михаил Непряхин: Так Окей ладно все тогда вроде надеюсь и голос подвел

917
02:15:41.650 --> 02:15:51.340
Михаил Непряхин: вот все тогда давайте всем спасибо всем пока увидимся на следующей, неделе да.

