WEBVTT

1
00:05:15.700 --> 00:05:20.389
Михаил Непряхин: Так всем, привет как видно Смешно поставьте пожалуйста, пляски

2
00:05:43.840 --> 00:05:50.830
Михаил Непряхин: а какие удовольствия посмотреть Кот проекта

3
00:05:51.580 --> 00:05:58.130
Михаил Непряхин: То есть хотя Бы Так в общих чертах поставьте плюс кто читал

4
00:06:00.380 --> 00:06:04.290
Михаил Непряхин: пытался разобраться. С Кудовой базой вот этого проекта Текущего

5
00:06:08.120 --> 00:06:22.779
Михаил Непряхин: Волки и Близкие если хорошо Ммм Окей Так Ммм Давайте посмотрим То Есть Вот

6
00:06:22.920 --> 00:06:28.660
Михаил Непряхин: с Инициативой всего этого Дела в Принципе я думаю вопросов Не должно возникать

7
00:06:28.790 --> 00:06:32.890
Михаил Непряхин: То Есть ну Там создаем Блогер Туда-сюда

8
00:06:32.990 --> 00:06:45.370
Михаил Непряхин: Соединение. С Позгерой с рэдисом собираем этот блюз кейс Куда зависимости опрокидываем метрики добавляем и запускаем сервер

9
00:06:46.350 --> 00:06:51.209
Михаил Непряхин: и наше приложение по Сути является сервером

10
00:06:56.400 --> 00:07:00.370
Михаил Непряхин: Поэтому Ключевой момент здесь Это как Устроен сервер

11
00:07:00.660 --> 00:07:04.359
Михаил Непряхин: вот давайте значит вот Это вот ээ по рисуем

12
00:07:12.480 --> 00:07:20.769
Михаил Непряхин: так ну, во первых э наш основной рабочий То есть у нас есть так называемые арестапе

13
00:07:25.770 --> 00:07:34.039
Михаил Непряхин: а рейэстаппи э То есть ну. Условно это Там какой-то

14
00:07:34.750 --> 00:07:47.430
Михаил Непряхин: Крут ну. Там типа криит рит абдеет делит операции То есть Там ручки ну вот у нас апе как, Раз, это и представляет Мы Там профиля создаем читаем апредьим делите мудрая

15
00:07:48.220 --> 00:07:54.599
Михаил Непряхин: значит соответственно вресте у нас в протоколах и т п под. Капотом

16
00:07:55.680 --> 00:08:00.920
Михаил Непряхин: а он в свою очередь Ну это Теспи айпи стэг

17
00:08:01.380 --> 00:08:05.319
Михаил Непряхин: То есть использовать основе протокол, диссисипи

18
00:08:06.120 --> 00:08:14.380
Михаил Непряхин: а антипи ну у нас два как бы протокола в Этом стекле стекке, это юдипии а люди Пейте себе,

19
00:08:14.610 --> 00:08:31.300
Михаил Непряхин: на юриди используются преимущественно Видео потоки данных в Аудиопотоке данных там Где не нужна гарантия. Доставки ну в целом как бы Сейчас интернет быстрый Поэтому вот есть протокол хотя и по триноль Например вот там под капотом транспортный уровень это идипи

20
00:08:31.600 --> 00:08:37.880
Михаил Непряхин: вот То есть еюдип, уж довольно надежный ну про Эдиппи пока не Будем то везет на соной протокол Тес-пи

21
00:08:38.030 --> 00:08:44.190
Михаил Непряхин: он соответственно с гарантией доставки пакетов и и

22
00:08:45.210 --> 00:08:52.690
Михаил Непряхин: что. Надо знать о Протоколе Хтп То есть Мы есть еще У нас вторая. Версия протоколы и третья да

23
00:08:52.800 --> 00:08:59.800
Михаил Непряхин: про третью. Я уже сказал Там Остановлено Нововведение. Что Там Вьюдиппи пользуется в транспортном Слове Миссиспи

24
00:08:59.900 --> 00:09:07.160
Михаил Непряхин: во второй версии используется Типи а и протокол. Бинарный

25
00:09:07.650 --> 00:09:10.860
Михаил Непряхин: То есть, вот эта Первая версия она текстовая

26
00:09:13.370 --> 00:09:16.749
Михаил Непряхин: а уже вторая версия она бинарная,

27
00:09:17.230 --> 00:09:22.450
Михаил Непряхин: ну то есть, там прямо вот не залезешь не посмотришь на эти тексты

28
00:09:22.690 --> 00:09:36.069
Михаил Непряхин: но вот вторая версия используется в джерарписи При этом когда мы будем, живописью с чертписи разбираться мы будем, эту, версию протокол Использовать в обычном расте мы используем первую версию про такого она текстово то есть там есть

29
00:09:36.360 --> 00:09:40.900
Михаил Непряхин: два блока основных это заголовки

30
00:09:44.830 --> 00:09:56.550
Михаил Непряхин: федор и боди ну и вот собственно говоря в заголовках У нас какая-то нет информация ну и также Там

31
00:09:57.090 --> 00:10:04.130
Михаил Непряхин: а в самом верху вы здесь еще Находится как Там ну типа сам Пес Куда мы

32
00:10:04.800 --> 00:10:07.069
Михаил Непряхин: а хотим, в итоге. Достучаться то есть

33
00:10:07.580 --> 00:10:14.000
Михаил Непряхин: а корень Сайта Или еще что-то такое заголовки какая-то Информация и боди ну вот собственно здесь

34
00:10:14.550 --> 00:10:16.879
Михаил Непряхин: а Джинсон, не передается

35
00:10:18.190 --> 00:10:32.480
Михаил Непряхин: и чаще всего мы работаем с ресоном ну даже не то Что чаще всего вообще просто Всегда мы Работаем Над Ресурсом в Этом случае То есть когда Мы Используем Вот Джер-писи и вторую Версию протокола То Там Используем Чаще всего протобав

36
00:10:33.070 --> 00:10:41.210
Михаил Непряхин: Вот а Наш, рабочий стек чаще всего это рестапе с джейсоном в виде боевода

37
00:10:43.430 --> 00:10:55.029
Михаил Непряхин: вот удобен тем Что Мы Можем легко дебажить то есть Действительно Удобно взял посмотрел Какие заголовки какой-нибудь ободи То есть Если Мы Там Давайте Поднимем серую

38
00:10:56.900 --> 00:11:03.370
Михаил Непряхин: я чуть Не учел дам миссинга сам Сейчас

39
00:11:28.440 --> 00:11:32.430
Михаил Непряхин: запусти любимый сервак Я Сейчас посмотрим

40
00:11:38.580 --> 00:11:46.900
Михаил Непряхин: значит Вот Мы Создаем и соответственно здесь Удобно Можно посмотреть Какие Заколовки Отправлялись

41
00:11:47.340 --> 00:11:54.369
Михаил Непряхин: Мы говорим Что Мы Работаем с рестораном туда то размер, этого тела

42
00:11:54.520 --> 00:11:59.260
Михаил Непряхин: афтели у нас собственно вот это ну вот оно боди

43
00:11:59.990 --> 00:12:12.329
Михаил Непряхин: а ну это это как бы ответ Окей да это У нас ответ. Вот У нас заголовки которая в запросе Шунок и права Их поддерживаем сжатие Что Мы с режиссером работаем

44
00:12:12.680 --> 00:12:17.249
Михаил Непряхин: и вот ирина наше тело оно же Сон

45
00:12:18.050 --> 00:12:23.410
Михаил Непряхин: вот ну и в ответе тоже, самое в ответит уже из заголовки есть тема запроса

46
00:12:23.440 --> 00:12:40.790
Михаил Непряхин: удобен, тем что ну вот в Принципе как почему такое Распространение. Получил получил арестапе Удобно черт побери работать потому, что с джерписи есть преимущество некоторое Но они ну там по перформансу да то есть там перформанс весь небольшой выигрыш

47
00:12:40.810 --> 00:12:46.260
Михаил Непряхин: Ну он типа там только на определенных Типах наброски дает выигрыш

48
00:12:46.340 --> 00:12:51.399
Михаил Непряхин: и тут уж далеко Не Всегда потому Что Сейчас уже все Научились быстро, Портить весом

49
00:12:51.550 --> 00:13:01.320
Михаил Непряхин: вот Поэтому Так Дефолт я по собственной воле использую тоже растапе Джисон а если Там сверху спускают Требования. Взяли Там джорджеси и Ну Куда деваться

50
00:13:01.650 --> 00:13:09.579
Михаил Непряхин: вот и соответственно для удобной работы с Этим всем.

51
00:13:10.270 --> 00:13:17.300
Михаил Непряхин: В гул Есть сервер Да понятно что вы можете сами все написать вы можете открыть и

52
00:13:17.480 --> 00:13:23.710
Михаил Непряхин: Документацию протоколах и т п Там Один один Сейчас используется версия один один

53
00:13:24.040 --> 00:13:39.209
Михаил Непряхин: и просто реализовать парсинг, от этих всех заголовков боди правильные ответы давать то есть там по спецификации У нас есть коды ответов их нужно все Поддержать

54
00:13:39.820 --> 00:13:46.449
Михаил Непряхин: но для нас уже это все написано по дефолту да то есть как в библиотеке гошный этот функционал есть

55
00:13:50.340 --> 00:14:03.369
Михаил Непряхин: давай уезжай так оно уезжает не уезжают тогда Уезжать надо не Уезжать не поймем как с розой как и

56
00:14:04.540 --> 00:14:08.950
Михаил Непряхин: вот значит аа Что из себя представляет Сервернаш

57
00:14:09.360 --> 00:14:17.240
Михаил Непряхин: ну во-первых это часть с роутином? Роудингом то есть У нас есть определенные роуты

58
00:14:22.810 --> 00:14:30.210
Михаил Непряхин: и Мы сами говорим значит По каким путям что Мы будем отвечать вот вам и словно Там

59
00:14:30.490 --> 00:14:38.870
Михаил Непряхин: у нас есть а путь а Пиво один и профайл.

60
00:14:40.900 --> 00:14:53.380
Михаил Непряхин: Не соответственно у нас есть разные еще Там дтп вот эти вот типы запросов а основные это гетпост

61
00:14:53.970 --> 00:14:58.120
Михаил Непряхин: делит и какой Там пут

62
00:14:58.630 --> 00:15:08.910
Михаил Непряхин: вот э и Мы говорим Что если к нам приходит запрос гет по Такому пути то запусти определенную функцию

63
00:15:10.080 --> 00:15:21.210
Михаил Непряхин: и все то есть вот вот за это отвечает роутинг и Мы это сами настраиваем То есть Мы просто настраиваем все случаи жизни по каким путям Что у нас какая функция будет работать

64
00:15:22.440 --> 00:15:26.959
Михаил Непряхин: а функция эта должна быть определенной сигнатуры

65
00:15:27.810 --> 00:15:31.139
Михаил Непряхин: и так как У нас есть много роутеров

66
00:15:31.420 --> 00:15:34.699
Михаил Непряхин: то вот эта функция У всех вот своя

67
00:15:36.640 --> 00:15:46.210
Михаил Непряхин: но в стандартной библиотеке. Эта функция имеет вид сигнатуру вот такую

68
00:15:47.470 --> 00:15:55.470
Михаил Непряхин: то есть ну название функции может быть любой главное чтобы удовлетворял. Либо метод либо функция От Этой Сигнатуры

69
00:15:55.590 --> 00:16:03.190
Михаил Непряхин: что у нас есть э аа корреспондент и это не трофейс с и

70
00:16:03.890 --> 00:16:09.580
Михаил Непряхин: возможностью заголовки задать, и записать байты в боди

71
00:16:11.040 --> 00:16:19.490
Михаил Непряхин: а ну вот заголовок записать да вот этот заголовок записать произвольный это, в боди бай, и записать а это, хендер

72
00:16:19.600 --> 00:16:23.530
Михаил Непряхин: черным возвращает а ну Это просто посмотреть э

73
00:16:24.250 --> 00:16:32.320
Михаил Непряхин: я-то Этой теме вообще Никогда Не пользовался пресс хайдер

74
00:16:33.440 --> 00:16:42.169
Михаил Непряхин: а ну типа посмотреть текущее Да тебе посмотреть текущую То есть хедры себя представляют Маму да посмотреть текущее чего там и записать туда, дополнительный

75
00:16:42.910 --> 00:16:49.129
Михаил Непряхин: вот а вот это вот структура реквиста То есть как Будто входящая структура

76
00:16:49.300 --> 00:17:01.169
Михаил Непряхин: это грубо говоря Для исходящего чего-то когда Мы Отвечаем Мы Отвечаем на сговоры О том или заголовок записываем и отвечаем либо Мы в будет записываем данные

77
00:17:01.640 --> 00:17:07.680
Михаил Непряхин: ну как я сказал типа про такого текста у него всего лишь два Блока Куда Можно что-то записать

78
00:17:07.960 --> 00:17:16.670
Михаил Непряхин: а вот реквист он тут уже структурой Не тут есть название метода ну То есть мы же должны как-то определить да вот здесь придет гет пост пункта

79
00:17:16.859 --> 00:17:24.650
Михаил Непряхин: есть уром По которому к нам обратились какой протокол Там это вот типа

80
00:17:26.240 --> 00:17:29.320
Михаил Непряхин: первая версия Подкова вторая из версия протокола

81
00:17:29.550 --> 00:17:41.269
Михаил Непряхин: какие заголовки мы тоже, можем посмотреть с Какими заголовками к нам. Обратились Ведь эти заголовки это мапа и стринги так как Заголовков, может быть несколько возле здесь Просто с вайсом а сама посылай

82
00:17:42.080 --> 00:17:54.270
Михаил Непряхин: боди ну будешь видеть Не боди как сласть Байден потому. Что он когда Мы что-то по сети гоняем в конечном итоге мы гоняем байты и потом мы работаем с майейсом байд

83
00:17:54.620 --> 00:18:06.170
Михаил Непряхин: но в гошке в стандартной библиотеке почти Везде Мы пишем с помощью интерфейса урайтера а Читаем с помощью интерфейса рейдера

84
00:18:06.500 --> 00:18:12.939
Михаил Непряхин: и вот видите будет здесь это ридер а вот до этого Мы смотрели был этот райтер

85
00:18:13.790 --> 00:18:19.779
Михаил Непряхин: у него здесь прямо, мы берем и туда заталкиваем прямо, байты

86
00:18:19.990 --> 00:18:27.170
Михаил Непряхин: вот оно часто бывает и с помощью райдера это делается ну как бы это и так такой типа толстый райтер еще сты плотными Функциями,

87
00:18:27.760 --> 00:18:36.390
Михаил Непряхин: так Что Там еще Глянем Что Мы еще можем сделать получить, боди это у нас тут, функция гет боди

88
00:18:39.730 --> 00:18:47.700
Михаил Непряхин: никто не пользовался какая длина контентом вдруг надо закрыть этот можно

89
00:18:51.230 --> 00:18:53.119
Михаил Непряхин: хвост посмотреть какой

90
00:18:53.640 --> 00:19:00.890
Михаил Непряхин: аа, вот Это Мульти Мультипортформ Это короче говоря когда Мы файлы засылаем Мы с этой Штукой Работаем

91
00:19:01.210 --> 00:19:13.149
Михаил Непряхин: Это Постформ то Есть Это когда Мы с Помощью поста отправляем эти ну типа когда мы заполняем форму на сайте то вот мы отправляем вот они здесь оказываются

92
00:19:14.300 --> 00:19:20.120
Михаил Непряхин: я Не помню, чем они отличаются Но короче это плюс минус Одно, и то Же так

93
00:19:20.810 --> 00:19:39.939
Михаил Непряхин: а трейлер Не знаю и эти аэс Если, был кнсом функция

94
00:19:40.220 --> 00:19:46.220
Михаил Непряхин: ну вот вот из этого всего вам ну прежде всего нужно только боди

95
00:19:46.370 --> 00:19:55.980
Михаил Непряхин: потому, что ну вот если, у вас какой-то приходит запрос а вам надо джинсы прочитать какой Там запрос пришел вот вы поэтому используете за это боди чтобы прочитать

96
00:19:56.710 --> 00:20:11.000
Михаил Непряхин: и все заголовки чтобы прочитать тоже используется ну не совсем напрямую вот это вот поле, а Там у Этой структуры еще есть методы Поэтому напрямую Тут редко что-то Мы получаем Обычно просто

97
00:20:11.240 --> 00:20:19.740
Михаил Непряхин: обращаемся к методам вот Этой структуры и из запроса получаем все что нам нужно а

98
00:20:20.110 --> 00:20:25.720
Михаил Непряхин: мне нравится черовок потому что он использует вот Эту вот стандартную сигнатуру Не надо поменять

99
00:20:26.320 --> 00:20:34.930
Михаил Непряхин: а если У нас какой-нибудь Другой Роутер то ну, например, если У нас джин Ты У него Серенатура, своя

100
00:20:35.400 --> 00:20:45.079
Михаил Непряхин: если эко тоже своя Файбер Не знаю Но я подозреваю что у Хайбер тоже своя Потому что

101
00:20:47.350 --> 00:20:53.499
Михаил Непряхин: да обычно они любят все-таки свою сигнатуру делать в фастх и дтп Тоже Своя вот то Есть

102
00:20:54.410 --> 00:20:58.009
Михаил Непряхин: Мне очень нравится, когда вот эта сигналтур Меняется потому что

103
00:20:59.250 --> 00:21:10.449
Михаил Непряхин: короче Ра Она практически ничего не дает и если, у вас есть вот эта вот структура в распоряжении с запросом вы и так все сможете оттуда достать все что вам нужно

104
00:21:12.360 --> 00:21:27.720
Михаил Непряхин: а вот и значит есть еще вот на уровне роутинга такая штука как мид вары эмидауэр и это

105
00:21:27.970 --> 00:21:35.290
Михаил Непряхин: по Сути ну Это как бы паттерн такое Да что Мы Выделяем какую То логику в отдельную функцию,

106
00:21:35.760 --> 00:21:43.910
Михаил Непряхин: ну какой-то типа Логер Или Там митрики

107
00:21:44.070 --> 00:21:47.869
Михаил Непряхин: Или трейсы Или авторизация Или еще Что нибудь

108
00:21:48.040 --> 00:21:54.040
Михаил Непряхин: и если Мы понимаем Что это нужно во всех ручках ручек может быть У нас двадцать

109
00:21:54.290 --> 00:22:09.199
Михаил Непряхин: чтобы в каждой ручке Там не писать свой Блогер ну типа Там пришел запрос вот Мы его хотим, заблокировать Что он пришел и с каким ответом в итоге у нас Получилось обработать запрос мы тоже хотим-то заблокировать ну чтобы это в каждой вот этой функции. Не писать

110
00:22:10.320 --> 00:22:18.259
Михаил Непряхин: вот значит придумали медовары и мы можем их комбинировать указать в каком порядке они будут идти

111
00:22:18.790 --> 00:22:24.630
Михаил Непряхин: и мидовары они работают либо до вот Этой функции,

112
00:22:24.860 --> 00:22:28.609
Михаил Непряхин: либо после Этой функции ну Мы Там сами уже можем управлять

113
00:22:28.920 --> 00:22:33.149
Михаил Непряхин: а когда Мы Хотим, этого не давало запустить Сейчас. Мы на гринговар тоже посмотрим Любим

114
00:22:33.660 --> 00:22:42.590
Михаил Непряхин: вот и когда мы настроили вот это вот поведение, в зависимости от того на какую мы ручку получили запрос

115
00:22:42.880 --> 00:22:48.849
Михаил Непряхин: мы вот это вот все настроенное имеем ну там Обычные структуры как называется. Мукс

116
00:22:48.970 --> 00:22:56.200
Михаил Непряхин: Почему мук ну типа Так Так повелось это в стандартной библиотеке Тоже Так называется вот этот вот

117
00:22:56.300 --> 00:23:10.339
Михаил Непряхин: аа весь ротин которого Мы настраиваем ну типа мультиплексар типа Что вот У нас множество запросов Мы в итоге все имеем в одной структуре и вот Эту структуру ну то есть с настроенными всеми, ротами

118
00:23:10.420 --> 00:23:28.829
Михаил Непряхин: а настроенный роты По сути можно думать о них как о мапе если мы попадаем в и

119
00:23:28.830 --> 00:23:34.689
Михаил Непряхин: тут не суть суть в том Что эта структура она хранит себе, набор. Роутов

120
00:23:34.930 --> 00:23:54.649
Михаил Непряхин: и функции с ними ассоциированных если Мы получаем запрос проверяем у нас есть роуд для этого запроса то Мы вызываем нужную Функцию и Там уже Вызываются медовары до функций или после функций ре мною обрабатываем и запрос а ответ. Отправляем

121
00:23:55.360 --> 00:24:00.610
Михаил Непряхин: так вот вот эта вот структура она передается уже в сам сервер

122
00:24:01.290 --> 00:24:13.619
Михаил Непряхин: и главное чтобы там соблюдался интерфейс А он если

123
00:24:14.230 --> 00:24:17.370
Михаил Непряхин: вот они и здесь их настраивают просто структура хэндлера

124
00:24:17.640 --> 00:24:28.789
Михаил Непряхин: в нью-йорке инженер-с кейс Потому Что У Меня в конечном итоге хендлера То есть функции. Которые ассоциированы с конкретным роутом

125
00:24:29.210 --> 00:24:36.050
Михаил Непряхин: они Потом будут вызывать из кейс Поэтому он тут нужен и а

126
00:24:36.210 --> 00:24:42.250
Михаил Непряхин: У этого в Этой Структуре Хендлер есть вот У Меня, четыре функции.

127
00:24:43.000 --> 00:24:46.640
Михаил Непряхин: А они обязательно должны Быть Этой Сернатурой чтоб они сработали

128
00:24:46.800 --> 00:24:55.169
Михаил Непряхин: и вот я для каждой вот как бы настройка ну люди так что я говорю вот на если, мне приходит пост запрос

129
00:24:55.300 --> 00:25:04.380
Михаил Непряхин: вот с этим роутом то вызови вот эту вот этот Метод От, моей структуры хендлерс

130
00:25:05.430 --> 00:25:16.839
Михаил Непряхин: а вот они медовары я тут говорю что, я хочу в самом, начале еще до запроса значит начать реагировать Ну или как там Не, знаю как у меня здесь

131
00:25:17.340 --> 00:25:26.030
Михаил Непряхин: Сейчас Глянем Нет я в конце блогерую но в конце запроса я лагирую вот э

132
00:25:26.180 --> 00:25:30.400
Михаил Непряхин: также я метрики записываю и Трейсинг,

133
00:25:31.360 --> 00:25:37.399
Михаил Непряхин: и вот это вот все вот эта Вся настроенная Структура Видите она называется. Чей. Мукс

134
00:25:38.200 --> 00:25:42.409
Михаил Непряхин: она в Конечном итоге Передается в структуру Сервера

135
00:25:43.160 --> 00:25:51.069
Михаил Непряхин: а он стандартный стандартный вот Мы значит создали вот структуру которую ту уж смотрели вот здесь мы ее получили

136
00:25:52.190 --> 00:26:07.280
Михаил Непряхин: вернее его здесь внутри вот мы сюда передали и этот указатель передаю и ее там наполняю а дальше передаю сервер и короче сервер он стандартный просто абсолютно стандартный сервер он принимает интерфейс хендлер

137
00:26:07.440 --> 00:26:19.009
Михаил Непряхин: а интерфейс хендлер вот он как бы он обрабатывает то есть вот эту самую сигнатуру что первым аргументом должен идти райтер а вторым ликвист

138
00:26:19.590 --> 00:26:33.290
Михаил Непряхин: и так как у нас соответствуют функции Этой Сигнатуры То сервер Принимает этот чи мукс ля рутер дальше создается стандартная структура сервера

139
00:26:34.050 --> 00:26:38.619
Михаил Непряхин: ну самые главные настройки Серверы Это тайм-ауты на чтение запись

140
00:26:38.790 --> 00:26:50.100
Михаил Непряхин: самого запроса для того чтобы защититься от атаки когда у нас есть такой вид атаки когда клиенты долго пишут долго читают

141
00:26:50.580 --> 00:26:58.359
Михаил Непряхин: и их можно таким образом много Плодить и завалить сервер в для того чтобы от Этой так и защититься рекомендуется

142
00:27:03.520 --> 00:27:11.670
Михаил Непряхин: а надо понимать что, тайм-аут и только на транспортном уровне вот вот на сам процесс отдачи, ответа на сам процесс получения запроса

143
00:27:11.930 --> 00:27:25.390
Михаил Непряхин: то есть вот мы начали. Поучать вот этот вот заголовки получили боди получили вот это вот можно очень долго передавать и когда Мы будем отвечать то клиент тоже, может это очень долго получать

144
00:27:25.390 --> 00:27:34.070
Михаил Непряхин: и вот эти тайматы как раз на это а конкретно уже там на то Сколько времени. И запрос должен отработать это уже отдельно решается другим способом

145
00:27:34.230 --> 00:27:35.500
Михаил Непряхин: Там через контекст

146
00:27:36.870 --> 00:27:50.449
Михаил Непряхин: а вот а здесь просто Мы говорим что на каком порту поднять он Там у меня порт по дефолту Восемьдесят восемьдесят и как бы вот это все настройки сервера то есть У нас есть структура хэндлер это

147
00:27:50.460 --> 00:27:58.179
Михаил Непряхин: мукс но это сестра сам Роутер там настроены все пути тайм-аут и на каком порту поднять после этого он поднимается

148
00:27:58.200 --> 00:28:01.339
Михаил Непряхин: то Есть вот здесь у Меня запускается бурутино

149
00:28:02.200 --> 00:28:05.870
Михаил Непряхин: и в Этой бурутине запускается лиса волонтеров

150
00:28:06.430 --> 00:28:09.549
Михаил Непряхин: и если вдруг портанет Например, то здесь Будет ошибка

151
00:28:09.880 --> 00:28:14.280
Михаил Непряхин: в Конечном если ошибки Не будут то он запустится. И все будет работать.

152
00:28:15.430 --> 00:28:22.639
Михаил Непряхин: Есть Еще есть У Меня метод квос для того Чтобы Погасить сделать шаддаун Этого сервера

153
00:28:23.120 --> 00:28:44.889
Михаил Непряхин: тоже О тайм-аут двадцать пять секунд потому что и а время выполнения чего либо

154
00:28:45.080 --> 00:28:51.260
Михаил Непряхин: вы делаете контекст мы про это тоже. Подробно поговорим значит но вот одна из целей контекста

155
00:28:51.490 --> 00:28:53.620
Михаил Непряхин: А это сказать Что.

156
00:28:53.880 --> 00:28:56.800
Михаил Непряхин: Контекст Должен Жить двадцать пять секунд

157
00:28:57.070 --> 00:29:15.069
Михаил Непряхин: если Он будет Жить дольше То есть Вот Мы создали контекст передали куда-то его Мы передали Это Функцию шаддауна сервера закрытие сервера если сервер будет закрываться дольше чем Двадцать пять секунд то контекст работает вот этот Таймер и Автоматически он уже точно закроется в этот момент

158
00:29:15.140 --> 00:29:26.899
Михаил Непряхин: и так соответственно в голову вот Этим способом настраиваются все тайм-аут то есть все что мы хотим, ограничить по времени какой-то дедлайн сделать вот таким образом делается

159
00:29:30.000 --> 00:29:35.840
Михаил Непряхин: вот так есть ли тут, вопросы, на текущий момент все ли понятно

160
00:29:36.370 --> 00:29:40.229
Михаил Непряхин: странно что ответ что ответ структура а реквист поинтер

161
00:29:40.630 --> 00:29:45.420
Михаил Непряхин: вот такой дизайн, там странностей много прямо, скажем,

162
00:29:45.860 --> 00:29:53.360
Михаил Непряхин: видите ли стандартная библиотека писалась разными людьми и это в основном.

163
00:29:54.340 --> 00:30:00.699
Михаил Непряхин: Уровень не очень высокий Но вот сервер еще ничего написан Но понятно что его можно было Написать Лучше

164
00:30:00.800 --> 00:30:08.310
Михаил Непряхин: но тем не менее вот время проходит и он постепенно ускоряется То есть они тут исправят там исправят там оптимизируют тут оптимизируют

165
00:30:08.310 --> 00:30:29.380
Михаил Непряхин: мне еще не очень нравятся, сторонние серверы потому Что понимаете как, бы ну у нас протоколы постоянно развиваются у нас все идет, вперед и Если вы используете стандартный сервер То просто понимаете что Это на нем сидят Все Он точно протестирован Вдоль и поперек Там точно Все Работа Там может быть Иногда не очень приятно и

166
00:30:29.380 --> 00:30:48.329
Михаил Непряхин: Местами где-то надо, много кода написать но зато у вас полный контроль у вас низкий уровень и

167
00:30:48.960 --> 00:30:54.389
Михаил Непряхин: вот м странности да вы их встретите

168
00:30:54.620 --> 00:31:02.770
Михаил Непряхин: не знаю не особенно, самое дурацкое что я встречал в стандартной библиотеке это то как реализована работа с отправкой почты по см тебе протоколу

169
00:31:03.390 --> 00:31:12.859
Михаил Непряхин: вот там Прямо очень Плохо написано и там приходится брать какую-то стороннюю библиотеку потому что стандартными средствами ну там Можно работать Но она Прям

170
00:31:13.180 --> 00:31:16.759
Михаил Непряхин: Не очень Казалось бы как бы Да Подправка Почта это шпион

171
00:31:17.350 --> 00:31:30.550
Михаил Непряхин: такая штука-то Полезная Но Не Самым лучшим образом. Написана Библиотека стандартной библиотеки Поэтому стандартная Библиотека очень Широкая большая там есть можно сказать Все но Написано она ну так как бы

172
00:31:31.000 --> 00:31:36.770
Михаил Непряхин: работает ивана от той минуты Можно задать, на конкретную ручку или только на весь сервер

173
00:31:37.220 --> 00:31:42.080
Михаил Непряхин: нет ну вот эти тайм-ауты это на весь сервер потому Что они относятся к

174
00:31:42.990 --> 00:31:47.879
Михаил Непряхин: ну, как бы вот к транспортному, слою конкретной ручки их не задать

175
00:31:48.290 --> 00:31:51.660
Михаил Непряхин: ну, или только создавать Два сервера

176
00:31:52.050 --> 00:31:59.479
Михаил Непряхин: Там весить их на разные порты и зам, как То Роудить между Что в рамках Иного приложения, вы можете запустить Сколько угодно серверов,

177
00:31:59.700 --> 00:32:09.960
Михаил Непряхин: ну как бы вот сколько портов в системе он потенциально столько северов можете запустить то есть что такое сервер просто программка которая биндится на определенный порт

178
00:32:10.090 --> 00:32:15.949
Михаил Непряхин: для чего для того что когда придет в линусе запрос он приходит на порт

179
00:32:15.990 --> 00:32:31.469
Михаил Непряхин: порты это ну просто система антресации да то есть как бы в операционной системе что ну приходит пакет какой-то То есть Куда его дальше посылать надо как-то понять Там Написано вот в Напорт. Восемьдесят Восемьдесят

180
00:32:31.690 --> 00:32:45.149
Михаил Непряхин: система смотрится Что У меня на порту Восемьдесят Восемьдесят а там может быть только. Что-то Одно, там на одном Партне может быть чего-то Два да то Есть У нас только одна программа может быть на одном порту Если, Бот вторая подниматься на Этом же порту вот ошибка

181
00:32:45.210 --> 00:32:57.910
Михаил Непряхин: что порт занят то есть если, вы такой уж его встретите Ну, посмотрите вот может у вас просто уже есть ваш Экземпляр сервера работает а вы хотите. Еще Раз его поднять естественно он не может то есть надо Предыдущий погасить

182
00:32:57.990 --> 00:33:06.439
Михаил Непряхин: вот ну здесь команды Там вычислить какой процесс ну с каким идет процесс на определенном партии, и его убить

183
00:33:07.270 --> 00:33:08.990
Михаил Непряхин: вот и

184
00:33:09.570 --> 00:33:25.410
Михаил Непряхин: вы вас никто не ограничивает запустить много серверов указать тут свои эти Конфеты какие Хотите, они будут в рамках одного, приложения работать все будет работать быстро. Супер ну, просто. Их вот многосерверов как бы на разных портах тогда вам надо было думать,

185
00:33:26.180 --> 00:33:35.870
Михаил Непряхин: там выше на гетвее как сделать маршрутизацию вот эту вот чтобы По определенной ручке вас отправили на сервер роукила

186
00:33:36.860 --> 00:33:38.889
Михаил Непряхин: Но тоже как Бы задача решается легко,

187
00:33:39.260 --> 00:33:50.510
Михаил Непряхин: так а зачем в отдельной грутине запуск сервера аа смотрите потому, Что вот здесь вот Мы блокируемся когда запускается

188
00:33:51.070 --> 00:33:57.680
Михаил Непряхин: а вот этот самсервер он запускается функции лисы нонсеф смотрите что Там натрою

189
00:33:57.990 --> 00:34:06.250
Михаил Непряхин: ну вот Сейчас ключевой дойдем сер в тут, подозрительной работы бла-бла бах бесконечный цикл эти бесконечные какой из него Нет Выхода

190
00:34:06.960 --> 00:34:09.680
Михаил Непряхин: ну есть выход, когда мыши отдаем дело

191
00:34:10.010 --> 00:34:15.119
Михаил Непряхин: когда мы что Дам Делом вот тут либо Он с ошибкой Выходим но там ее может Не Быть

192
00:34:15.250 --> 00:34:22.749
Михаил Непряхин: ну тут паника ну вот это вот Не вызывается, Никогда то есть вот выход из этого цикла ну это когда мы вызываем шендаун

193
00:34:22.980 --> 00:34:26.870
Михаил Непряхин: а так этот бесконечный, цикл вот он берет Коннекшн

194
00:34:27.260 --> 00:34:30.730
Михаил Непряхин: развернем этот рыбный Шаг вот Мы Берем коннекшн

195
00:34:31.429 --> 00:34:39.080
Михаил Непряхин: а дальше в Грути Не Запускаем Обработку, нашего запроса Там Внутри

196
00:34:39.320 --> 00:34:47.850
Михаил Непряхин: он идет и ищет Какому Роудеру ну какому. Какой функции соответствует вот этот Роут

197
00:34:48.420 --> 00:35:04.940
Михаил Непряхин: ну тут, ведь, четыреста Деятельности Там Что У Него Не Получилось ну тут, еще какая То там много сего реквист читает бла-бла но это все тут много работы понятно дело что сервер но это все он делает уже в рамках, своей собственной гурудины

198
00:35:05.000 --> 00:35:10.620
Михаил Непряхин: то есть вот здесь стандартном Серверы Один, запрос равен к подъему одной гортины

199
00:35:10.830 --> 00:35:20.659
Михаил Непряхин: Поэтому когда у вас ну? Вот я говорю этот Сервер он Держит? Рпц ну Где то Там Пятьдесят семьдесят тысяч Это значит что У вас в Секунду создается семьдесят тысяч грузин

200
00:35:21.170 --> 00:35:24.560
Михаил Непряхин: ну и как высокий Работа цикл. Бесконечный

201
00:35:24.750 --> 00:35:30.720
Михаил Непряхин: значит Мы Здесь зависли и Все дальше Не Идем Поэтому сервера надо запускать в гору Тине

202
00:35:30.850 --> 00:35:37.059
Михаил Непряхин: иначе, Мы дальше не пойдем Мы запустим этот наш сервер и все а нам, надо ведь дальше смотрите

203
00:35:37.320 --> 00:35:41.829
Михаил Непряхин: нам, надо вот Мы запустили сервер нам, не надо Там блокироваться

204
00:35:41.890 --> 00:35:58.499
Михаил Непряхин: нам надо заблокироваться вот здесь и ждать сигнала завершения работы если, Мы Там Внутри заблокируемся То Мы все ну как бы нас только килять Мы вот эти сигналы не Будем воспринимать от куба Поэтому Мы ее Запускаем в бутине

205
00:35:58.810 --> 00:36:03.790
Михаил Непряхин: есть подход такой когда гурутины запускаются Вот здесь Вот наружу

206
00:36:04.350 --> 00:36:10.710
Михаил Непряхин: ну типа Вот Мы прямо здесь показываем Что Мы Запускаем городтью такого вы увидите Вот как-нибудь Вот Так

207
00:36:12.230 --> 00:36:15.029
Михаил Непряхин: Но дело, в том Что

208
00:36:16.080 --> 00:36:26.690
Михаил Непряхин: чаще всего тогда Придется поделить э на две части то Есть Вот у Меня запускается ведь, у вас здесь в этом методе ну как было бы тогда мне надо было бы этот момент сделать публичным

209
00:36:27.300 --> 00:36:32.100
Михаил Непряхин: здесь а Сейчас, раз покажу как, это как это делают,

210
00:36:32.320 --> 00:36:38.590
Михаил Непряхин: и Делают, вот так вот соответственно старт, и вот это вот запускают в горутине

211
00:36:39.430 --> 00:36:43.480
Михаил Непряхин: то есть как вот есть такая школа, которая так делает ну? Какая тут логика

212
00:36:43.930 --> 00:36:47.900
Михаил Непряхин: Мы показываем что Мы запускаем что-то в грутине

213
00:36:48.020 --> 00:36:54.709
Михаил Непряхин: то есть что вот У нас есть мейнбуртина ну? Где Там она вот Мы же Там в мейнбурге находимся да

214
00:36:54.860 --> 00:37:01.870
Михаил Непряхин: и запустила еще какая-то грутина которая что-то делает параллельно ну Наш сервер параллельно крутит что-то обрабатывает она одна

215
00:37:02.510 --> 00:37:10.340
Михаил Непряхин: а еще здесь может быть э Кафка конюмер тоже гурутина еще Одна которая тоже будет обрабатывать ну уже кафку

216
00:37:10.870 --> 00:37:18.820
Михаил Непряхин: и мы здесь как Бы показываем смотрите У нас Две Грутины Которые работают параллельно. И плюс еще одна, грутина в Мейне которого здесь ждет

217
00:37:19.690 --> 00:37:26.469
Михаил Непряхин: Но прикол в том Что про рефакторинги вывод эту штуку вот это вот Можете забыть и все

218
00:37:26.920 --> 00:37:41.869
Михаил Непряхин: и это просто случай очень часто встречающийся когда это вот теряется и короче люди думают что они там запустили что-то а они Не запустили То Есть вот Это Потерялось они сервер просто. Пронициализировали но Не запустили

219
00:37:41.870 --> 00:37:48.069
Михаил Непряхин: Ну, Если сервера Вы Быстро Заметите Ну, Там Какого-нибудь Консюмер может Не Сразу заметить Что Он Не запустился на самом деле

220
00:37:48.770 --> 00:37:57.150
Михаил Непряхин: Поэтому мне больше нравится вариант когда мы горрутину запускаем внутри вот Этой функции, то есть вот она

221
00:37:58.510 --> 00:38:02.939
Михаил Непряхин: он здесь запускается и точно так же я делаю на всяких форумах контьюрах

222
00:38:03.050 --> 00:38:10.810
Михаил Непряхин: потому что ну ясин пень что если вы запускаете сервер то там будет еще одна грузия создаваться

223
00:38:10.810 --> 00:38:24.690
Михаил Непряхин: и не то чтобы сильно много вам информации сдает если, вы здесь видите эту грутину а вот ошибку вы Совершить можете а здесь не можете здесь она внутри если, вы запустили конструктор вы точно запустили внутри его этот сервер

224
00:38:25.470 --> 00:38:31.420
Михаил Непряхин: вот Поэтому как бы вот этот способ, он мне нравится сильно больше потому что ну как защита дурака

225
00:38:33.350 --> 00:38:38.580
Михаил Непряхин: эээ так спрашивают в новостях про внутреннихстройствах от тп угол. Не спрашивают

226
00:38:38.740 --> 00:38:59.609
Михаил Непряхин: не Сколько я за чистован для понимания рассказываю так и

227
00:39:00.190 --> 00:39:03.779
Михаил Непряхин: у шуток много правил чтоьюзи про такого Не используется ноша

228
00:39:04.500 --> 00:39:17.540
Михаил Непряхин: как бы надо понять что, Вьюги пив протокол используется и он даже используется в Третьей версии это такой протокол. Который в общем-то на подходе и он пока еще только в бразерах используется Но скоро Наверное до Серверов произойдет

229
00:39:18.380 --> 00:39:23.430
Михаил Непряхин: Ну Как бы особой потребности Нет Потому Что Там и Так Все Быстро и на Первой версии Работают на северах

230
00:39:26.580 --> 00:39:30.060
Михаил Непряхин: так дальше значит про мидов. Вары Да про Медовары

231
00:39:32.140 --> 00:39:34.409
Михаил Непряхин: так есть у меня здесь Ммм

232
00:39:35.130 --> 00:39:37.559
Михаил Непряхин: значит ты добавил. Я Папочку Вики

233
00:39:37.880 --> 00:39:40.659
Михаил Непряхин: и ну мы тут будем, переносить Проект,

234
00:39:40.810 --> 00:39:47.390
Михаил Непряхин: а потом Там какие-то изменения будем, Делать но Вики я попробую тоже переносить ну мау ну мы туда периодически будем, заглядывать

235
00:39:47.570 --> 00:39:53.149
Михаил Непряхин: Как шпаргалка ну и просто вам тоже здесь Как бы какие-то полезности будут папчики вики

236
00:39:53.750 --> 00:40:03.670
Михаил Непряхин: значит вот поговорим про медовары паттерн который мне прямо точно надо Знать и то что, надо разбираться в этом

237
00:40:04.350 --> 00:40:06.379
Михаил Непряхин: потому что, периодически вы будете писать сами

238
00:40:06.700 --> 00:40:09.220
Михаил Непряхин: понятно, что, они есть на всякий случай жизни но

239
00:40:09.510 --> 00:40:11.980
Михаил Непряхин: их где-то вам сразу, Не хватит

240
00:40:12.980 --> 00:40:27.010
Михаил Непряхин: ну во-первых значит как оно конфигурируется во всех френворках вот оно обычно либо можно через запятую указать и тут порядок будет сперва вот это медовар вызвится

241
00:40:27.230 --> 00:40:29.280
Михаил Непряхин: либо, Можно

242
00:40:29.460 --> 00:40:34.779
Михаил Непряхин: а вот в чьи например, Можно вот так вот сперва Это методовар Возле зацепленной Это переворот без Разницы

243
00:40:35.700 --> 00:40:46.059
Михаил Непряхин: значит э, здесь У нас есть Мы Создаем простой ротор ну То есть некую структуру для хранения

244
00:40:46.190 --> 00:40:55.710
Михаил Непряхин: вот этих наших роутов и ассоциированных с Этими роутами функций, значит здесь Мы говорим что к роуту корень

245
00:40:56.190 --> 00:40:57.650
Михаил Непряхин: метода гет

246
00:40:58.380 --> 00:41:09.140
Михаил Непряхин: а Прикрепи Функцию вот эту вот видите сигнатуру она здесь такая чтобы сервер ее принял, и все что она делает когда принимает запрос она пишет в консоль хвору

247
00:41:09.390 --> 00:41:15.780
Михаил Непряхин: Дальше Мы Запускаем Наш сервер на порту Восемьдесят Восемьдесят Если, Не удалось запустить панику

248
00:41:16.310 --> 00:41:19.800
Михаил Непряхин: Неожиданно вот Он Как, бы сервер да вот-вот-вот Он уже

249
00:41:20.220 --> 00:41:32.430
Михаил Непряхин: как бы то что, я вам уже рассказывал вот это то же самое только как бы там когда это все размазано вот смотрите вот так вот вот так вот вот так вот

250
00:41:32.810 --> 00:41:38.020
Михаил Непряхин: это для чего это просто способ, организации закона то, есть можно животное

251
00:41:38.380 --> 00:41:42.259
Михаил Непряхин: написать не в своих файлах а в одном файле

252
00:41:43.250 --> 00:41:49.850
Михаил Непряхин: можно вот этот весь пакет не в отдельном пакете делать а право здесь же написать

253
00:41:50.100 --> 00:42:01.339
Михаил Непряхин: но это просто как бы Способ который ну для быстрой. Навигации что У нас в одном, Файле, один метод Мы быстро. Можем навигировать То есть это для этого

254
00:42:01.510 --> 00:42:09.890
Михаил Непряхин: вот а так-то в Принципе можно в одном файле все Писать дальше значит нас

255
00:42:10.450 --> 00:42:13.030
Михаил Непряхин: устройство мидом вары Которое надо понять

256
00:42:14.570 --> 00:42:24.349
Михаил Непряхин: значит смотрите Что из себя представляет мелвар и это функциональный паттерн медовара это функция которая принимает

257
00:42:27.800 --> 00:42:52.300
Михаил Непряхин: функцию и возвращают функцию а то есть вот как бы в жизни и и

258
00:42:52.300 --> 00:43:01.240
Михаил Непряхин: У вас много что теряется вы вот когда такую сигнатуру Видите вы Там по Коду очень сильно У вас рвется связь вы Не Можете нормально посмотреть всю. Цепочку

259
00:43:01.270 --> 00:43:07.730
Михаил Непряхин: вот а в мидварах вот этот Паттерн Используется значит

260
00:43:09.230 --> 00:43:16.960
Михаил Непряхин: Мы Принимаем Функцию что За Функцию Мы Принимаем ну, Вот Мы когда Вот здесь Вот

261
00:43:17.170 --> 00:43:23.050
Михаил Непряхин: к Какому То, роботу ассоциировали функцию Вот это Вот

262
00:43:23.450 --> 00:43:34.960
Михаил Непряхин: у нас Получилось Что Мы конфигурируем Вот этот вот мукс мокс отчи и он удовлетворяет интерфейсу хэндлер

263
00:43:37.250 --> 00:43:44.979
Михаил Непряхин: а хендлер это то Же самое что вот здесь он сигнатуре Мы принимаем хендлер и возвращаем хендлер

264
00:43:45.780 --> 00:43:51.330
Михаил Непряхин: и У сервера тоже вот Мы только что смотрели Там сервер что принимает Он

265
00:43:51.670 --> 00:43:55.040
Михаил Непряхин: Он тоже видите вот он А хэндлера

266
00:43:55.550 --> 00:44:00.310
Михаил Непряхин: хочу вот у него здесь он принимает хендлер то есть как бы

267
00:44:00.560 --> 00:44:09.769
Михаил Непряхин: мы работаем в миноборе со структурой которая является частью роутинга

268
00:44:10.760 --> 00:44:14.370
Михаил Непряхин: и мы по сути Делаем такую цепочку

269
00:44:14.970 --> 00:44:19.569
Михаил Непряхин: аа когда говорим что вот Первым делом

270
00:44:20.090 --> 00:44:29.179
Михаил Непряхин: значит у нас запустится вот эта вот функция и и изначально Там этот хендрон есть

271
00:44:29.460 --> 00:44:38.079
Михаил Непряхин: но он пустой как бы там ничего Еще нет эта функция этот хендлер Принимает и добавляют ему Логику

272
00:44:40.010 --> 00:44:43.989
Михаил Непряхин: и значит ой блин вернее не так Она рассказывать

273
00:44:44.670 --> 00:44:50.340
Михаил Непряхин: Сейчас сам немножко. Забуду, сырян короче изначально есть эта функция в которой происходит вся. Работа

274
00:44:51.790 --> 00:44:58.670
Михаил Непряхин: аа первым Делом вызывается эта функция и в нее вот эта функция пробрасываться то есть она принимает вот эту функцию в себя

275
00:44:59.480 --> 00:45:05.050
Михаил Непряхин: когда мы вызовем некс то мы Вызовем вот это вот функция

276
00:45:07.110 --> 00:45:13.869
Михаил Непряхин: и вот в кодексе, видно что Мы вызываем нек Точку Стеров и Дтп Передаем туда в райтер и лидер

277
00:45:14.090 --> 00:45:22.220
Михаил Непряхин: и вот в этом месте мы и напечатаем этот наш его ворлд вот она здесь вызовет,

278
00:45:24.040 --> 00:45:31.359
Михаил Непряхин: и как видите Раз, мы получили возможность выбрать когда ее вызвать

279
00:45:32.160 --> 00:45:36.949
Михаил Непряхин: то Мы можем вызвать что то до нее и что то после нее

280
00:45:38.300 --> 00:45:46.910
Михаил Непряхин: что бы это все работало видите это все оборачивается Еще в одну, Функцию Она точно такая Же да То есть Она точно с Этой Же ассигнатурой

281
00:45:47.050 --> 00:45:51.870
Михаил Непряхин: Что Мы создаем эту Функцию и ее то мы и возвращаем

282
00:45:53.470 --> 00:46:02.349
Михаил Непряхин: а этот хендлер фанк это превращает вот эту Функцию в энтрофейс хэндлер потому что если мы просто ее вернем

283
00:46:02.900 --> 00:46:10.260
Михаил Непряхин: если Мы просто ее вернем короче нельзя она Не соответствует Этому митрофиту Хендлер вот Поэтому надо ее привезти в открытый Хэндлер фанк

284
00:46:10.900 --> 00:46:13.710
Михаил Непряхин: и тогда она будет соответствовать этот мотрофиссу хендр:

285
00:46:16.130 --> 00:46:20.080
Михаил Непряхин: и у нас есть вторая медовара которая идет! После этого

286
00:46:20.670 --> 00:46:28.699
Михаил Непряхин: она точно такая же да то есть как бы понятно что все мидовары они вот эту сернатуру Используют то есть получается такая Цепочка вызовов

287
00:46:28.980 --> 00:46:32.809
Михаил Непряхин: ну как бы матрешка такая да то есть Мы создаем функцию

288
00:46:33.190 --> 00:46:45.069
Михаил Непряхин: и эту функцию ну вот эту вот самую главную. Функцию ее можно по цепочке передать и по факту у нас получается уже вот три таких, функции

289
00:46:45.560 --> 00:46:49.180
Михаил Непряхин: и они там, друг друга могут вызывать

290
00:46:49.620 --> 00:46:53.410
Михаил Непряхин: и вот конкретно в этом случае когда две помидоры

291
00:46:54.550 --> 00:47:05.039
Михаил Непряхин: получается что вторая медовара Будет Вызывать вот Эту Функцию а первого медовара Будет Вызывать вот Эту Функцию

292
00:47:05.230 --> 00:47:16.199
Михаил Непряхин: То Есть Ты Короче говоря Цепочка получается такая аа вызывает сам значит есть вот это вот

293
00:47:16.660 --> 00:47:20.039
Михаил Непряхин: аа функция Ну, короче Не знаю, как ее назвать

294
00:47:20.250 --> 00:47:25.320
Михаил Непряхин: типа рот ну Которое вот прямо, Этой работой доховал ворот на зерховый урок на земле

295
00:47:28.880 --> 00:47:34.189
Михаил Непряхин: вот и ее вызовет функция секонд млр

296
00:47:36.380 --> 00:47:40.110
Михаил Непряхин: а вот это все дело вызовет вот эта функция

297
00:47:41.600 --> 00:47:49.500
Михаил Непряхин: вот то есть они в конечном итоге То есть эээ фест мидлер получает в себя аргумент

298
00:47:50.510 --> 00:47:56.999
Михаил Непряхин: секонд мигалер вторую медовару он аа эта функция будет выполняться Первой

299
00:47:57.740 --> 00:48:00.819
Михаил Непряхин: и вызовет вот эту всю Цепочку

300
00:48:02.770 --> 00:48:06.680
Михаил Непряхин: аа значит если, на практике, посмотреть как оно работает

301
00:48:10.200 --> 00:48:13.780
Михаил Непряхин: посмотрите у меня сермак за бензин поднято на ждал

302
00:48:19.630 --> 00:48:23.369
Михаил Непряхин: Так надо вызвать Восемьдесят восемь спорта Сейчас

303
00:48:26.550 --> 00:48:30.929
Михаил Непряхин: значит вот смотрите с перо печатается текст

304
00:48:31.300 --> 00:48:34.620
Михаил Непряхин: вообще из Первой из Первой мигалки

305
00:48:35.390 --> 00:48:41.459
Михаил Непряхин: а перед вызовом всего то есть вот ээ вот вот он здесь вот вызвался вот этот текст

306
00:48:41.750 --> 00:48:46.769
Михаил Непряхин: а потом он вызвал вторую, мигалку

307
00:48:47.340 --> 00:48:56.719
Михаил Непряхин: и вторая медовара то есть вот он вот это написал вызвал второй, медо вару вот здесь была вторая медовара то есть вызвалась вот эта штука

308
00:48:57.010 --> 00:49:03.970
Михаил Непряхин: напечатала вот этот текст, типа вот он вторая медовара Тоже, пиренн нектон

309
00:49:05.410 --> 00:49:14.819
Михаил Непряхин: в Аргумент второй медо варе уже был передан вот этот Наш ворлд вот этот тот самый главный ротор который народе

310
00:49:15.310 --> 00:49:19.429
Михаил Непряхин: соответственно вот здесь вот напечатался ховорот

311
00:49:20.110 --> 00:49:31.740
Михаил Непряхин: потом напечаталось вот это вот сэконд автор некст ире эта функция вернула это все а вот сюда

312
00:49:32.210 --> 00:49:42.170
Михаил Непряхин: вот эта функция завершилась выполняться и напечаталось фест алтернекст вот это да

313
00:49:43.330 --> 00:49:48.749
Михаил Непряхин: если, вы тут, до конца не поняли ничего страшного потому Что это все равно все копится Главное понять

314
00:49:48.910 --> 00:49:55.790
Михаил Непряхин: Что у вызова мидовавар есть, порядок он вот здесь вот сделан так чтобы Ну, вот

315
00:49:55.910 --> 00:49:59.499
Михаил Непряхин: логически как они здесь идут друг, за другом так и Не будут вызываться

316
00:49:59.860 --> 00:50:14.130
Михаил Непряхин: и в медоваре вы можете Всегда, Поуправлять что вызовется вначале что вызовится в конце например например вот следующую файл

317
00:50:14.960 --> 00:50:19.169
Михаил Непряхин: а и а так женовать Это за гасим То кончик, не вмешалась

318
00:50:19.960 --> 00:50:22.809
Михаил Непряхин: что у нас здесь медовая медувар называется таймер

319
00:50:23.670 --> 00:50:27.170
Михаил Непряхин: значит основной робот Печатает хвалу ворот

320
00:50:28.040 --> 00:50:33.489
Михаил Непряхин: но пиренн перед перед вызовом его у нас вызовится мимо варо таймер

321
00:50:34.570 --> 00:50:37.880
Михаил Непряхин: вот здесь в аргументе будет собственно вот эта функция

322
00:50:38.530 --> 00:50:45.140
Михаил Непряхин: и понексту она вызовет и напечатать его у ворот Но Мы

323
00:50:45.360 --> 00:50:54.200
Михаил Непряхин: в нее сразу не попадаем Мы Сперва замеряем время Сколько Сейчас время это попадает в переменную

324
00:50:54.600 --> 00:51:02.259
Михаил Непряхин: потом вызывается собственный ворот а потом Мы печатаем Мы делаем синс от текущего времени.

325
00:51:02.780 --> 00:51:13.870
Михаил Непряхин: И понимаем То, Есть вот здесь в итоге будет сколько времени. Оно заняло Возьмется Разница между вот этим временем когда Мы Там замерли и временем Которое Сейчас

326
00:51:14.050 --> 00:51:21.740
Михаил Непряхин: и разницу Мы напечатаем Давайте проведем Сколько времени выполняется

327
00:51:26.490 --> 00:51:27.830
Михаил Непряхин: Две секунды

328
00:51:30.830 --> 00:51:36.209
Михаил Непряхин: да ладно, какие Две секунды эйчут Неп Сколько сможете работать десять Секунд

329
00:51:37.190 --> 00:51:44.459
Михаил Непряхин: ну? Как Будто бы, Разница Ни в Секундах все-таки чего-то Не три Секундыженная Работа

330
00:51:49.620 --> 00:51:57.910
Михаил Непряхин: Так Что это конечно Не относится вообще к делу? Но чего-то Я че То Я Нет.

331
00:51:58.300 --> 00:52:03.949
David R: А там степень минус пятая. Наверное надо поменять режим отображения Времени.

332
00:52:04.900 --> 00:52:16.820
Михаил Непряхин: Документ даже Не задан никак ну вот так секондс фуд шестьдесят четыре Укой Светок

333
00:52:22.800 --> 00:52:24.450
Михаил Непряхин: а так.

334
00:52:24.990 --> 00:52:30.460
David R: Ну вот сейчас он отор уже от микросекунда а до этого он отображал в степени е ну есть степень.

335
00:52:30.610 --> 00:52:43.910
Михаил Непряхин: Не возбуждает его ну короче не надо тут так было Делать и секунды тут Ты скажи себе, чего там любить и писал По этому фильму кто написал вот короче вот синс двадцать восемь

336
00:52:47.160 --> 00:52:54.450
Михаил Непряхин: ника микросекунд двадцать восемь микросекунд Ну короче это двадцать восемь типа

337
00:52:58.740 --> 00:53:04.550
Михаил Непряхин: Ну микросекунды и.

338
00:53:04.830 --> 00:53:05.920
Konstantin: Найди Смешарики.

339
00:53:05.920 --> 00:53:14.030
Михаил Непряхин: Слили Раз, в отрыве короче вот Так это Получилось вот и секунда.

340
00:53:15.790 --> 00:53:18.580
David R: Тут Три Три Три Ноля лишних

341
00:53:19.040 --> 00:53:21.600
David R: ноль целый ноль ноль ноль ноль Двадцать Три.

342
00:53:26.170 --> 00:53:30.780
Михаил Непряхин: Да-да-да Правильно Да-да-да это я Жена на Секунду написал да на Секунду

343
00:53:32.450 --> 00:53:44.019
Михаил Непряхин: вот ну это Не имеет отношения на самом деле как бы к этому к тому что я Отказал ну суть в том что вот таким образом вы можете

344
00:53:44.480 --> 00:53:51.859
Михаил Непряхин: что-то замерить да а потом записать вот сколько, Времени, выполнялась ручка так дальше

345
00:53:52.080 --> 00:53:54.680
Михаил Непряхин: дальше какой у нас еще премьера

346
00:54:03.090 --> 00:54:08.500
Михаил Непряхин: два раза в день а я тут, сед гет да

347
00:54:08.910 --> 00:54:18.050
Михаил Непряхин: так. Сейчас. Сам прочитаю вспомни Что тут у меня значит я спровоцировал. Сет так крестди значит еще До ночам Выполнения всего

348
00:54:18.430 --> 00:54:19.739
Михаил Непряхин: в самом начале

349
00:54:19.800 --> 00:54:28.820
Михаил Непряхин: я создаю айди ну теперь квест иди да типа вот у меня поступает какой-то запрос я его уникально идентифицирую

350
00:54:28.870 --> 00:54:47.369
Михаил Непряхин: чтоб потом в блог записать и все чтобы записывать влог, вот вот с этим адишником ну чтоб потом по этому иди можно было пробить эээ ну как бы типа Рейтинг такого сделателя Так и делали до эпохи. Рейтинга часто с Помощью рейтинга удобно делать Раньше неудобно ну Не было таких. Инструментов делали его с помощью рекеестов айди

351
00:54:47.730 --> 00:54:54.710
Михаил Непряхин: так я Упаду. В контекст я от этой яичник Кладу. В контекст у Меня здесь обертка пек

352
00:54:55.370 --> 00:55:05.870
Михаил Непряхин: такая небольшая обертка над тем про контекст, уже еще дойдем но вот одна из функций, контекста в контексте можно что-то положить вот здесь Мы кладем в контекст Айди,

353
00:55:06.120 --> 00:55:17.100
Михаил Непряхин: и вот эта тема что Мы во все запросы прокидываем контекст вот не для того например, чтобы вот Можно было таким образом Прокинуть контекст внутри которого, будет наш. Реквизиты

354
00:55:17.320 --> 00:55:29.349
Михаил Непряхин: уникальный лишний пишем что, мы положили адишник, в этот контекст дальше этот контекст пробрасываем а дальше по вызовам

355
00:55:29.520 --> 00:55:33.790
Михаил Непряхин: дальше у нас вызывается, вот это вот

356
00:55:34.790 --> 00:55:38.739
Михаил Непряхин: когда мы это вызываем на самом деле мы вызываем вот эту функцию

357
00:55:38.910 --> 00:55:45.520
Михаил Непряхин: потому, что она у нас идет, следующая дам здесь мы достаем

358
00:55:45.860 --> 00:55:52.749
Михаил Непряхин: ликвиста иди и печатаем его и дальше уже вызываем вот здесь уже хову у ворот наш, вызвится

359
00:55:52.820 --> 00:56:06.490
Михаил Непряхин: он ключ тут видите мало смысла это просто демонстрация то есть как бы вот этот гет на самом деле он будет делаться Где то Там в юскейсе или вода авторе да то есть как бы ну здесь пример такой что вот ведь Мы что то положили в одной мида авария

360
00:56:06.550 --> 00:56:21.740
Михаил Непряхин: взяли и достали в другой медоваре то есть у нас вот этот сет напишется из одной медовары а гет мы взяли и достали в Другом месте как видите Ну на самом деле они же. Не очень связанные с Точкой совсем не связаны только к Хендлерам но Там, внутри есть контекст этого хендлера

361
00:56:21.820 --> 00:56:26.199
Михаил Непряхин: и Мы с помощью контекста Можем так проббросить что-нибудь из одного места в Другое.

362
00:56:26.520 --> 00:56:32.710
Михаил Непряхин: Так Ну, здесь просто это для удобства работы с контекстом Давайте запустим Эээ

363
00:56:37.560 --> 00:56:40.379
Михаил Непряхин: да тоже надо вызвать У меня, сервер все

364
00:56:41.110 --> 00:56:48.019
Михаил Непряхин: вот видите вот сет Мы типа засветили. Адишник в одной медуваре а Достали его

365
00:56:48.250 --> 00:56:53.780
Михаил Непряхин: в другую минутували а дальше уже произошел вызов Нашей. Логики

366
00:56:55.350 --> 00:57:02.499
Михаил Непряхин: а допустим Мы можем Сперва Логику вызвать да а потом напечатать тогда Мы просто берем

367
00:57:02.680 --> 00:57:07.880
Михаил Непряхин: и вызываем вот нашу логику до этого чего то

368
00:57:08.040 --> 00:57:14.810
Михаил Непряхин: и тогда будет что Мы сделали сеттер и квест потом хэллоурт, напечатали а потом гетто квест но ведь, проверу

369
00:57:17.290 --> 00:57:21.560
Михаил Непряхин: вот видите, сделали сдрый крест хоум напечатали на тонкий трекест

370
00:57:21.810 --> 00:57:32.269
Михаил Непряхин: вот э это как бы Суперполезное Знание и точно стоит на практиковаться в этом и разобраться как оно работает

371
00:57:32.830 --> 00:57:42.870
Михаил Непряхин: потому что вы будете встречать Ситуацию когда Ваши коллеги будут Делать в мидл, варе

372
00:57:43.490 --> 00:57:49.809
Михаил Непряхин: страшные вещи множество Вещей и чтобы в Этом разобраться Но надо понимать как минимум как Это м товары работать

373
00:57:50.460 --> 00:58:02.450
Михаил Непряхин: в целом мидовары Очень Часто вредят тем что в метоварах начинают что нибудь страшное делать типа сетевые Запросы какие нибудь рэди здесь начинают Держать Еще что. Нибудь

374
00:58:03.550 --> 00:58:10.260
Михаил Непряхин: а резис нужно Держать в адаптарах потому что. Редис это да про ряда сеть Думаю в милу варах Не должно Быть ничего сетевого

375
00:58:11.030 --> 00:58:15.180
Михаил Непряхин: а проверка живите токина Например, от авторизации

376
00:58:15.470 --> 00:58:22.240
Михаил Непряхин: тоже спорный вопрос методология Или не в мидлваре мне нравится это делать все-таки в Визкейсе и но

377
00:58:22.460 --> 00:58:32.540
Михаил Непряхин: Есть люди кто обожает это делать именно, в вину варя Поэтому короче говоря в мидом вару любят заталкивать какие то элементы

378
00:58:33.480 --> 00:58:39.430
Михаил Непряхин: Которые вот для всех запросов Имеют смысл

379
00:58:39.780 --> 00:58:57.880
Михаил Непряхин: Но особенно, Курьезно когда знаете типа не для всех запросов типа вот Если для всех запросов то метовары вроде оправдано а если не для всех и начинается вот это здесь Мы достаем из реквеста в мидлваре будь ну то есть Там можно Достать какой Там У нас был запрос

380
00:58:58.180 --> 00:59:06.530
Михаил Непряхин: значит вот. Матуру можно Там пс Ты вот. Прям Достать вот. Там стенга на работал со стрингом,

381
00:59:06.830 --> 00:59:26.269
Михаил Непряхин: и проверить и начинается вот эта, проверка типа если это, вот такая ручка то тогда, вот не делает Логику, а если вот такая рушка тогда, делает вот Это, вообще Полная грязь, вот если Вы начинаете вот этим заниматься то Это, не место, точно в мид варе не надо эту мойку Держать Меду варя. Держите блин ее в Юскейзе ну. Или на коренях по самому контроле

382
00:59:26.560 --> 00:59:35.540
Михаил Непряхин: вот ну. Тут еще один примерчик социализаций значит Есть у нас

383
00:59:36.480 --> 00:59:41.909
Михаил Непряхин: Ну тут короче представим что у нас Мы Хотим? Сделать Бейсика уф

384
00:59:42.080 --> 01:00:01.199
Михаил Непряхин: и Для Него уже Есть и

385
01:00:01.260 --> 01:00:10.390
Михаил Непряхин: просто видите медовары это такая штука которая ну ее плен надо вообще заметить ну то есть вот даже банально вот смотрите у меня, вот сермак

386
01:00:10.600 --> 01:00:13.820
Михаил Непряхин: я вот захожу в контроль Ркнулась десять

387
01:00:14.380 --> 01:00:24.789
Михаил Непряхин: и понимаю вот у меня такая медовая если какая методовая есть и я должен о них помнить Я должен понимать что Вот У Меня Ручка за Создание профаева да

388
01:00:25.410 --> 01:00:43.440
Михаил Непряхин: м Я Не Вижу всей Логики Потому что вокруг Этого У меня так-то Еще лагирование происходит в Этой методваре метрики Собираются в Этой мидлваре и происходит Трейсинг, в Этой медоваре смотрите какая тут Логика Веселая Но ее много то есть вот этот весь Кот

389
01:00:43.510 --> 01:00:58.079
Михаил Непряхин: он Выполняется вот где-то У Меня Саморочка управлена здесь вот на этом этапе до того как я вызываю ручку у меня вот действия какие-то происходят потом я вызвал ручку и вот у меня тут еще какие-то действия происходят да и я там ничего не вижу

390
01:00:58.480 --> 01:01:06.380
Михаил Непряхин: и это забывается ну это во-первых еще и в разных местах может быть раскидано потому что, вот одна медовара вот здесь может быть

391
01:01:07.400 --> 01:01:08.740
Михаил Непряхин: две мемуары

392
01:01:09.410 --> 01:01:15.429
Михаил Непряхин: аа здесь может быть вот они уже в разных местах вы уже можете запутаться и как бы там надо о них помнить

393
01:01:16.810 --> 01:01:24.860
Михаил Непряхин: а еще у меня например, дефолтная миновара Она когда я роут создаю

394
01:01:25.620 --> 01:01:45.110
Михаил Непряхин: вот у меня еще есть три Камера медовара она Еще на верхнем уровне то есть видите здесь получается такая иерархия мелвар Понятно чем ближе От к Созданию роутера тем медовара Впервые будут вызваны но вот рекавер это восстановление в случае паник ну там просто короче диффер,

395
01:01:45.250 --> 01:02:02.950
Михаил Непряхин: вот с этим сойкавером то есть как Бы это медовары Которые предотвращают Разматывание Стека в случае ошибки в одной ручке чтобы У нас ну запаниковала Ручка Но ничего Страшного сервер джон Падать что? Ли Сразу, Нет Мы продолжаем работать ничего Страшного Что Одна Ручка запаниковала вот Поэтому эта медовара здесь нужна

396
01:02:03.240 --> 01:02:12.310
Михаил Непряхин: вот и короче говоря М-м Если, Это логиет Метрки трейсы ну Окей

397
01:02:12.650 --> 01:02:19.620
Михаил Непряхин: если Там что-то уже Сложнее какая-то Логика ну блин покажите ее отразите ее Из кейса так вот

398
01:02:20.680 --> 01:02:29.480
Михаил Непряхин: значит вот он мы допустим тут, сделали хотим, сделать бейсика уф ну типа проверить авторизацию в ручке и типа для всех ручку

399
01:02:29.710 --> 01:02:37.030
Михаил Непряхин: начну здесь то же самое вот хло вор. Та же самая ручка ну? Перед ней идет метовара стандартная ну? Нестандартная из Пакетачи

400
01:02:37.130 --> 01:02:54.580
Михаил Непряхин: значит ну? Тут как будет какая-то логика ну смысл в том что Мы вот здесь Делаем бэсика уф Мы из заголовка авторизейшен достаю партиям партиям в бриз Шестьдесят четыре ну как же там по Протоколу бэсик офф передается в заголовке

401
01:02:55.700 --> 01:03:02.800
Михаил Непряхин: авторезышен потом бейсик и и через пробел,

402
01:03:03.630 --> 01:03:06.200
Михаил Непряхин: в б шестьдесят четыре закодирован Логин и пароль

403
01:03:06.590 --> 01:03:16.399
Михаил Непряхин: вот это уже делает постман например, это делать не нужно и Мы просто проверяем что там логин юзер пароль пес если они Совпадают То, Мы выпускаем

404
01:03:17.120 --> 01:03:18.710
Михаил Непряхин: танодозе Запусти

405
01:03:24.890 --> 01:03:32.560
Михаил Непряхин: так Вот Мы запустили и Вот этот подготовый запросек значит Вот Мы к этому. К нашему около. Хосту

406
01:03:34.410 --> 01:03:41.660
Михаил Непряхин: тут, мы ничего не авторизованы вот сделан запрос получаем четыреста один

407
01:03:41.820 --> 01:03:54.839
Михаил Непряхин: ведь можно написать бэсик реу профайл апе Но это вот здесь указать вот смотрите вот это указывается про фармацев вот он и пишет бейсик реал ну Тоже, Там по протоколу кручу принято если Ошибка авторизации его надо писать бейсик реал

408
01:03:55.340 --> 01:04:10.909
Михаил Непряхин: и значит Мы добавляем заголовок можем. Забавить заголовок ну Там же надо зашифровать вбые шестьдесят четыре чтобы это не делать. Вот за нас все сделает этот послан просто тут запишем Один, пароль какой-то юзер Пес

409
01:04:14.010 --> 01:04:19.130
Михаил Непряхин: вот и сделан запрос в эти, двести ответ. Действий все-таки прошло

410
01:04:19.400 --> 01:04:24.510
Михаил Непряхин: вот то есть логика была произведена что мкетологи, есть

411
01:04:24.640 --> 01:04:31.130
Михаил Непряхин: Нет просто хвалрот, вот а эта логика была произведена в мигал, варе

412
01:04:31.530 --> 01:04:35.420
Михаил Непряхин: а мы на самом деле вот пишем только влог хлор

413
01:04:37.480 --> 01:04:44.920
Михаил Непряхин: вот про мигаловары это все так Давайте за Две минутки отдохнем на Вопросы, ответим и дальше

414
01:08:17.260 --> 01:08:31.170
Михаил Непряхин: да возвращаемся да еще смотрите ээ важное значит что еще нужно сказать этот патерн Ммм у него название есть

415
01:08:31.520 --> 01:08:44.450
Михаил Непряхин: ты декоратор что. Ли вроде декоратора поправьте меня если ошибаюсь вроде декоратора называется он также встречается и бронь,

416
01:08:45.540 --> 01:08:46.680
Михаил Непряхин: звука Нет

417
01:08:50.779 --> 01:08:56.890
Михаил Непряхин: так разве это есть звук так и

418
01:09:00.160 --> 01:09:05.580
Михаил Непряхин: так он встречается и в других частях

419
01:09:07.770 --> 01:09:24.780
Михаил Непряхин: ну во Первых что нужно знать что То же самое применяется к джерси синграмм То есть Мы Там потом будем Писать эту историю увидим только Там он называется немидвуара

420
01:09:26.500 --> 01:09:27.810
Михаил Непряхин: интерсептор

421
01:09:28.170 --> 01:09:39.440
Михаил Непряхин: короче говоря если, вы видите мидлер название то это имеется в виду вот про роутинг То есть Это либо до вызова Этого

422
01:09:39.580 --> 01:09:45.479
Михаил Непряхин: ручки происходят ибо? После ну? Вот в зависимости от того как вы тут на экспостойте Доили. После чего-то

423
01:09:46.170 --> 01:09:54.180
Михаил Непряхин: значит То же самое с Джерписи Только в Джерси и Это называется интерсептор но суть та же самая эээ.

424
01:09:54.580 --> 01:10:11.209
Михаил Непряхин: И он декоратор Так и называют когда Мы можем делать это на любых слоях ну обычно это используется с адаптами вот вы можете встретиться да авторами значит Э в каких Ситуациях

425
01:10:11.610 --> 01:10:20.779
Михаил Непряхин: Например, у вас есть воскрес новости, так По визуальный Блог значит у вас есть

426
01:10:22.870 --> 01:10:26.299
Михаил Непряхин: у вас есть поздравля какой-то запрос обогрев

427
01:10:27.740 --> 01:10:34.969
Михаил Непряхин: ну. Это гетовый должен быть запрос то есть что-то вы, получаете и перед ним

428
01:10:36.760 --> 01:10:40.080
Михаил Непряхин: а ставится мида вара видя каша

429
01:10:42.550 --> 01:10:50.100
Михаил Непряхин: и короче говоря когда ньюс кейс вызывает возгрыз перед ним

430
01:10:50.470 --> 01:10:54.440
Михаил Непряхин: вызывает ну декоратор вот этот вот вызывается кэш

431
01:10:55.650 --> 01:11:01.640
Михаил Непряхин: то Есть Вместо того чтобы в Нью-йорке Вы допустим Не с кейс Вы вызываете кэш

432
01:11:02.310 --> 01:11:05.950
Михаил Непряхин: а потом в зависимости от результата вызываете поиск

433
01:11:08.570 --> 01:11:13.280
Михаил Непряхин: можно сразу, Вызвать просто послес без крыша

434
01:11:13.470 --> 01:11:19.550
Михаил Непряхин: но Там автоматически вот здесь работает декоратор Мультипаля медора

435
01:11:19.700 --> 01:11:29.230
Михаил Непряхин: и кэш сам вызовет и проверится типа вот если запрос есть в крыше Он искоша Достанется если Нет каша То сходится в Погреву, и так далее,

436
01:11:29.750 --> 01:11:41.460
Михаил Непряхин: вот ну М То же самое Можно сделать с раисами вот у меня Например, троицы они антон,

437
01:11:43.650 --> 01:11:47.940
Михаил Непряхин: ну тут мне трое Соедините каждой функции, сверху есть такая штука

438
01:11:49.440 --> 01:11:54.490
Михаил Непряхин: можно было бы их сделать Обертку, вокруг вот этих функций

439
01:11:54.590 --> 01:11:58.179
Михаил Непряхин: с той Же, самой сигнатурой главное они должны быть и вот

440
01:11:58.490 --> 01:12:02.269
Михаил Непряхин: функция была Бы только из одного. Из двух этих строчек

441
01:12:02.400 --> 01:12:07.209
Михаил Непряхин: а потом собственно вызов реальной функции ну Тоже, Там как-нибудь называть Некст Или

442
01:12:07.690 --> 01:12:12.520
Михаил Непряхин: Там бэйс Или Там Еще называют как-то так

443
01:12:13.220 --> 01:12:25.049
Михаил Непряхин: вот но видите вот это вот этот паттер он ну во Первых его надо Билдеть. У меня появятся дополнительные вот эти свои. Которые надо бил. Ведь, плюс

444
01:12:25.990 --> 01:12:31.729
Михаил Непряхин: а и здесь же надо шибованный интерфейс все удовлетворял если мы кэш добавляем

445
01:12:32.470 --> 01:12:39.330
Михаил Непряхин: ну смотрите у нас тут методов Да пачка а если мы толкаешь добавим такую мигалвару декоратор кэш

446
01:12:39.700 --> 01:12:44.840
Михаил Непряхин: То он будет применен вот гетто профаеву,

447
01:12:45.870 --> 01:12:49.649
Михаил Непряхин: а плюс надо будет Обновлять кэш удалять кэш

448
01:12:50.240 --> 01:12:56.600
Михаил Непряхин: и здесь надо будет когда мы создаем ну, здесь конечно Не используется Мы просто создаем волнуй записываем в Кэш

449
01:12:56.960 --> 01:13:04.039
Михаил Непряхин: и вся, эта логика Будет вот Жить отдельно и и

450
01:13:04.260 --> 01:13:14.200
Михаил Непряхин: в каких-то ситуациях это может быть оправдано что типа Мы получаем удобство Хотим? Подключить кэш взяли Там просто добавились кобочки у функции, подключили

451
01:13:14.470 --> 01:13:32.130
Михаил Непряхин: вот но мне Это Скорее больше не нравится. Потому Что Оно выносится куда-то в отдельные функции и точно так же как у медовара видите как бы у вас есть какая то логика а Вы ее не видите то есть Вы видите вот это

452
01:13:32.270 --> 01:13:36.240
Михаил Непряхин: а шутом до Этого и после Этого Вы не видите вот Поэтому

453
01:13:36.430 --> 01:13:46.459
Михаил Непряхин: гошка декларирует явно лучше неявного а вот этот паттер с миловарами Где декораторами он вот теряет в явности

454
01:13:47.900 --> 01:13:59.760
Михаил Непряхин: так это все что я хочу сказать Сейчас посмотрим чиновники Вопросы, были эээ Так

455
01:14:00.240 --> 01:14:08.540
Михаил Непряхин: метод опшенс пишут Ли обычно Прям гошки. Или же заопшен Отвечают условно джинс как они конфигурация,

456
01:14:09.150 --> 01:14:15.119
Михаил Непряхин: опшин имеет. Этот образ а оно имеется в виду а метод и.

457
01:14:15.490 --> 01:14:16.000
Konstantin: Да да.

458
01:14:16.000 --> 01:14:23.269
Михаил Непряхин: Слушайте вообще Ни разу Не использовал Не Скажу. Много вообще Ничего Не Скажу. Про общем

459
01:14:23.530 --> 01:14:25.599
Михаил Непряхин: Не приходилось с ним работать.

460
01:14:27.280 --> 01:14:28.709
Михаил Непряхин: Поэтому без понятия

461
01:14:29.800 --> 01:14:37.109
Михаил Непряхин: и еще вопрос вот например, есть две ручки одна с Проверкой авторизован ли пользователь отругали без ручки ну без проверки так

462
01:14:37.280 --> 01:14:45.590
Михаил Непряхин: как организовать меню вару с Этой проверкой чтобы на одну, ручку проверка происходила а на другую нет ну вот рифом то, есть

463
01:14:45.620 --> 01:14:58.349
Михаил Непряхин: видите как бы вот я уже сказал про этот кейс что вы начинаете внутри медовары добавлять свечи ифы а это ну Плохо

464
01:14:58.630 --> 01:15:10.029
Михаил Непряхин: Поэтому авторизация Видите авторизация же все равно. Там ну прежде всего пятьдесят Ручек и не всех нужна авторизация а только на одной не нужна ну так и быть сделайте исключение на Этом проверку,

465
01:15:10.180 --> 01:15:28.559
Михаил Непряхин: вот а если Там только на одной ручке нужна авторизация, на всех нет Или Там из десяти на двух нужна авторизация Или на трех проща Эту авторизацию близки Из Этой казни то есть короче говоря тут трядов. Ну то есть вы сами думаете, Куда за только капитализацию в минув вару с условиями Праве проверять процвета

466
01:15:29.620 --> 01:15:44.929
Михаил Непряхин: рыба виз кейс Так камедовара Мутирует, Хаспер и квест Если Их много Рекрест Превращается в Год обжиг как смерт

467
01:15:45.640 --> 01:15:56.630
Михаил Непряхин: ну Не Делать много мелвар а Делать медовары только которые вот типологии травится в метре минус Пять степени

468
01:15:56.850 --> 01:16:03.990
Михаил Непряхин: ну да Так а Если, Вызвать два раза друг За Другом некстер в хотя бы в одной Медовой это Что произойдет

469
01:16:04.150 --> 01:16:12.660
Михаил Непряхин: и вот у нас самый первый пример был

470
01:16:14.180 --> 01:16:21.049
Михаил Непряхин: плохо у ворот вызывается да вот он владеет в итоге будет Вызван Мы вот три Раза Вызовем три раза хо ворот был вызван

471
01:16:30.410 --> 01:16:36.420
Михаил Непряхин: ведь три раза просто. Вызвали, То есть ну как бы патерн максимально тупой

472
01:16:37.130 --> 01:16:46.970
Михаил Непряхин: но сложно только из-за того что, надо понимать что вот сюда встанет Функция и вернется Функция и это такая матрешка Функция функции функции

473
01:16:47.210 --> 01:16:48.919
Михаил Непряхин: функции возражают функцию

474
01:16:49.270 --> 01:16:57.130
Михаил Непряхин: и это короче говоря первый Раз когда пытаетесь понять как это вообще не работает там мозг плывет,

475
01:16:57.260 --> 01:17:01.109
Михаил Непряхин: вот и это я еще простой пример написал

476
01:17:01.360 --> 01:17:04.540
Михаил Непряхин: на самом деле Вот Эти, Вот фунты еще Там Замудренный напиток

477
01:17:05.050 --> 01:17:12.760
Михаил Непряхин: короче говоря Вот тут надо прямо, Вот потыкать Попробовать потыкать и просто понимать что Вот Это Вот

478
01:17:12.980 --> 01:17:18.660
Михаил Непряхин: все равно что Поствызов Вот этого Вот по роутингу и все

479
01:17:22.980 --> 01:17:27.889
Михаил Непряхин: так Вызвать Виски из мидавари норм живите например,

480
01:17:34.550 --> 01:17:40.140
Михаил Непряхин: смотрите Вот У нас а и

481
01:17:41.850 --> 01:17:51.400
Михаил Непряхин: вот У нас ручки эти обработки да запросов и уже обработчик, запроса вызывает виз, кейс а и

482
01:17:51.940 --> 01:17:56.530
Михаил Непряхин: если вы будете вызывать юзкейс вмидлвари

483
01:17:58.940 --> 01:18:06.330
Михаил Непряхин: короче вы Усложняете всем, жизнь Но Представляете как бы это вы допустим будете помнить и то забудете

484
01:18:06.960 --> 01:18:08.669
Михаил Непряхин: а Человек потом

485
01:18:09.430 --> 01:18:20.160
Михаил Непряхин: как он догадается что есть некий эскейс который вызывается в мидлваре понятно если он идет. Этот риск кейс посмотрит Поищет он найдет Ну короче

486
01:18:20.350 --> 01:18:28.809
Михаил Непряхин: и Это Усложняет всем. Жизнь для этого и нужен вот этот вот свой контролер с хендлерами

487
01:18:29.420 --> 01:18:37.330
Михаил Непряхин: чтобы в нем увидеть как вызывает юс кейс видели бы У него очень. Простые обязанности получить, запрос

488
01:18:38.000 --> 01:18:42.370
Михаил Непряхин: декодировать его в нашу структуру удобную нам. Детошку

489
01:18:42.510 --> 01:18:53.300
Михаил Непряхин: вызвать из кейс и отдать ответ то есть вот его зона ответственности я здесь даже не валидацию не делаю ничего влидаться в риск если, делать ну часто здесь вылидаться делается на этом уровне

490
01:18:53.860 --> 01:19:02.270
Михаил Непряхин: но я предпочитаю Делать Влидацию из кейса потому. Что если у вас появится Еще джералд и сервер вам придется вылиться и Делать уже в Двух местах

491
01:19:02.850 --> 01:19:05.720
Михаил Непряхин: а удобнее когда вылетаться будут в одном месте из Кейси

492
01:19:05.960 --> 01:19:20.399
Михаил Непряхин: вот Поэтому как бы в миду варе ньюс кейс точно не надо вызывать Да и видите юзкейс Это же Основная Ролька нашей работы Мы там Будем адаптаторы вызывать адаптер Это сеть как правило

493
01:19:21.110 --> 01:19:28.789
Михаил Непряхин: а вы Не хотите, в мидл варе что-то делать сетевое потому что сеть это важно

494
01:19:28.980 --> 01:19:41.150
Михаил Непряхин: ну как бы сеть это основной источник всех Проблем, да это ненадежно это медленно это ну это ты сложно знаешь гемор. Это Там происходят постоянно проблемы

495
01:19:41.790 --> 01:19:51.020
Михаил Непряхин: и вы хотите, Подсветить эти места Поэтому вы их выносите в Адаптацию и делегируете работу с этими адаптами Льюшкейсу

496
01:19:51.540 --> 01:19:55.160
Михаил Непряхин: Поэтому и Рискису Не Место, в миноборе

497
01:19:55.890 --> 01:20:01.810
Михаил Непряхин: а с Дживити ну как Бы тоже для Людей По-разному можно работать

498
01:20:02.440 --> 01:20:05.230
Михаил Непряхин: О можно бесит живите и проверить

499
01:20:05.620 --> 01:20:09.200
Михаил Непряхин: а если вы сидите и пробираете То Это точно мюс кейс

500
01:20:09.370 --> 01:20:21.250
Михаил Непряхин: но обычно в живите живите работают как Там просто вы получаете набор этих сертификатов Раз, не знает он Час

501
01:20:21.360 --> 01:20:23.360
Михаил Непряхин: и он у вас есть а состоит

502
01:20:23.520 --> 01:20:33.080
Михаил Непряхин: и тогда вы в медуваре так и Быть можете Дживи и проверить но даже это мне Не очень нравится я бы это делал из кейса

503
01:20:34.210 --> 01:20:42.019
Михаил Непряхин: так мне не, нравится, мемуары сам не, то чтобы много писал он на страдании наслушался да да но вы же как бы я вам вот говорю это

504
01:20:42.090 --> 01:21:00.939
Михаил Непряхин: только для того чтобы вы перестали писать эти чертовые метовары ну сколько можно ну как бы ну вот Ежики Кололись ну урали как-то ну плохой паттерн ну Точнее как бы нету плохих патронов да Но вот надо просто понимать что и

505
01:21:00.940 --> 01:21:06.869
Михаил Непряхин: он вот для метрик Логов Тамрекамера что такое что актуально всем ручкам

506
01:21:07.100 --> 01:21:11.209
Михаил Непряхин: вот и простое Не должно Быть Там какая то Логика прямо важная

507
01:21:11.550 --> 01:21:20.500
Михаил Непряхин: Никогда ничуть без Тройку Неговаривал у Меня был Случай когда сессии сделали Через миговор Потом сессии создавались, даже для метров где Там приковавалось

508
01:21:20.790 --> 01:21:22.830
Михаил Непряхин: у Меня тоже очень много историй из Жизни

509
01:21:23.230 --> 01:21:26.149
Михаил Непряхин: а узнали Об этом Случайно протестирование совсем

510
01:21:26.580 --> 01:21:30.499
Михаил Непряхин: совсем другой фитчер сессии Хранились в Рэдисе в итоге метро

511
01:21:30.670 --> 01:21:39.840
Михаил Непряхин: ходили просто так Грозит хотя для сессии было мой Хорошо ну да да да так есть тэк

512
01:21:42.350 --> 01:21:46.970
Михаил Непряхин: как делать Обанглу Давайте потом как нибудь

513
01:21:47.410 --> 01:21:52.029
Михаил Непряхин: принято ли в гуу писать к атомных стоп хендлера и Например, для проклятия

514
01:21:57.850 --> 01:21:59.910
Михаил Непряхин: я бы живите из кейси проверял.

515
01:22:01.620 --> 01:22:03.489
Михаил Непряхин: Обертки ну да.

516
01:22:05.020 --> 01:22:06.070
David R: Вопрос голосом.

517
01:22:06.070 --> 01:22:07.099
Михаил Непряхин: Да то есть.

518
01:22:07.610 --> 01:22:32.639
David R: Вот в и и выводиться отображаться еще Такое а если подобный Механизм с что в

519
01:22:32.740 --> 01:22:53.199
David R: во время заводки Мы какой-то и.

520
01:22:53.200 --> 01:23:08.669
Михаил Непряхин: Да просто, посмотреть вообще без Проблем, вот вот допустим вот этот ваш, медовар который Нужен для разработки, не Нужен в прозе берете оборачиваете. Его вив А здесь там из ян вы берете переменное окружение ну и все если. Она

521
01:23:09.040 --> 01:23:15.810
Михаил Непряхин: ээ например, локальные разработки но из-за испрот

522
01:23:16.140 --> 01:23:23.049
Михаил Непряхин: вот из проту он будет выключен эээ если,

523
01:23:23.880 --> 01:23:40.669
Михаил Непряхин: не знаю давайте так извол вот нужно только для вокальной разработки вы назовете его из окон на проди он будет фоукс вы сюда не зайдете эту медовару не подрубите а при вокальной разработке он будет тру вы зазвездие меговора подрубите короче вот максимально все просто в этом плане

524
01:23:41.220 --> 01:23:42.370
Михаил Непряхин: семь, Без Проблем,

525
01:23:46.570 --> 01:24:03.350
Михаил Непряхин: так и с

526
01:24:04.030 --> 01:24:11.819
Михаил Непряхин: да я тут кстати мидвару делал только что, да вот и вот полностью в ответ. На ваш Вопрос с Миловарой, Приработят Живите

527
01:24:11.970 --> 01:24:25.420
Михаил Непряхин: полностью пример рабочий и хороший можете почитать посмотреть потом когда нибудь идем на движение ты глянем так Ммм

528
01:24:27.640 --> 01:24:37.699
Михаил Непряхин: все ли понятно про этот про медовары ни у кого, не осталось Вопросов штука прямо, важная

529
01:24:47.760 --> 01:24:52.969
Михаил Непряхин: так Сейчас подумаю что нам важнее клиенты тест

530
01:25:01.170 --> 01:25:13.730
Михаил Непряхин: так давайте Теперь ты я думал про клиенты тесты шас да про клиент давайте поговорим то есть

531
01:25:15.200 --> 01:25:23.540
Михаил Непряхин: Сейчас мы постепенно будем разные части Этой большой структуры изучать для того чтобы в конечном итоге у вас Картинка сложилась

532
01:25:27.410 --> 01:25:36.330
Михаил Непряхин: да значит вот когда У вас Есть Сервер то и

533
01:25:38.290 --> 01:25:46.440
Михаил Непряхин: ну вот в Этом случае значит У меня здесь подход показан Это Кот фест то Есть вы сперва пишете код

534
01:25:47.720 --> 01:25:49.370
Михаил Непряхин: потом пишите к нему Спеку

535
01:25:50.120 --> 01:25:57.020
Михаил Непряхин: ну может быть и в процессе Спеку пишете может у вас изначальный спек есть то есть вот опы напельцлагер

536
01:25:57.230 --> 01:26:04.429
Михаил Непряхин: спецификация вы соответственно можете дать коллеге, можете затолкать в посман

537
01:26:04.690 --> 01:26:06.229
Михаил Непряхин: и у Вас Оно Будет работать

538
01:26:08.930 --> 01:26:17.519
Михаил Непряхин: но когда вашим сервером будут пользоваться другие люди ну, другие разработчики то есть у нас жизнь Микросервисная архитектура

539
01:26:17.840 --> 01:26:27.869
Михаил Непряхин: вы Это Апи делаете для кого-то чтобы вашим сервером сервисом кто то. Пользовался и конечно же поспейки

540
01:26:27.990 --> 01:26:33.279
Михаил Непряхин: понятно, что, Делают, ручки то. Есть он вот у нас профайл, пост

541
01:26:33.570 --> 01:26:44.849
Михаил Непряхин: э создается Новый профиль тут, схема Есть Можно Там схему посмотреть что вот обязательные Поля ими возраст и мой телефон что это оджик

542
01:26:45.860 --> 01:26:56.790
Михаил Непряхин: Проперти с премьерами даже с экземпами То есть вы можете вот аут под Какой ответ будет что

543
01:26:57.070 --> 01:27:08.179
Михаил Непряхин: а иди будет оно обязательное поле будет Выглядеть! Как ее иди вот ну, все равно и

544
01:27:08.840 --> 01:27:16.969
Михаил Непряхин: как бы надо же написать обертку то есть вот вы дали какую то документацию людям они будут писать

545
01:27:17.780 --> 01:27:21.849
Михаил Непряхин: а обертку над этим ну то есть чтобы из кода можно было ваши апе вызвать

546
01:27:24.250 --> 01:27:29.499
Михаил Непряхин: там могут быть в Этой, мапе могут быть ошибки например

547
01:27:30.210 --> 01:27:40.630
Михаил Непряхин: и вы все равно сами то есть как бы это обязанность разработчика тестировать свою собственную апе и

548
01:27:41.800 --> 01:27:49.219
Михаил Непряхин: Раз вы будете его тестировать вы его будете тестировать из голкода, тоже то есть

549
01:27:49.340 --> 01:28:01.349
Михаил Непряхин: понятно, что, есть там какие то тестировщики и прочие но это все полная фигня то есть как бы если вы пишете сами для себя тесты Никакие тестировщики У вас ничего Интересного Никогда Не найдут

550
01:28:01.350 --> 01:28:11.179
Михаил Непряхин: Потому Что Вы Проверите Гораздо больше чем ну Вы лучше знаете ваш Кот вы понимаете что проверять вы понимаете какой У вас хэппи Поэт какие У вас

551
01:28:13.640 --> 01:28:20.050
Михаил Непряхин: Есть, кейсы когда У вас что падает вот Поэтому

552
01:28:20.210 --> 01:28:23.960
Михаил Непряхин: вы все равно нуждаетесь чтобы вот это вот ваши апе

553
01:28:24.880 --> 01:28:29.519
Михаил Непряхин: а оно было в виде Кода то есть что, бы для вашего Сервера был написан клиент

554
01:28:30.710 --> 01:28:37.490
Михаил Непряхин: и Поэтому лучшей практикой является, вот вы написали и сервер ну вот эти вот все Ручки описали да вот эти вот

555
01:28:39.370 --> 01:28:45.030
Михаил Непряхин: Напишите для Него сразу клиент то Есть

556
01:28:46.030 --> 01:28:48.690
Михаил Непряхин: когда вы вот Мы будем вот

557
01:28:49.310 --> 01:29:03.799
Михаил Непряхин: на следующем занятии наверное Рассматривать подход. Когда Мы Сперва Пишем вот Эту Доку то есть вообще Кот Не Пишем Доку Написали и вот из Этой доки есть инструменты Которые генерируют и сервера и клиента

558
01:29:04.990 --> 01:29:09.629
Михаил Непряхин: но пока мы рассматриваем другой подход который Чаще все таки встречается

559
01:29:10.280 --> 01:29:12.819
Михаил Непряхин: а это когда мы Пишем Кот

560
01:29:13.160 --> 01:29:21.600
Михаил Непряхин: и у нас из пеки может Не быть да вот Этой вот то есть но нам надо срочно писать клиента самому

561
01:29:21.860 --> 01:29:24.269
Михаил Непряхин: и вот посмотрим как этот клиент пишется

562
01:29:24.400 --> 01:29:27.720
Михаил Непряхин: то есть вот банально У нас есть Ручка клеит профайл.

563
01:29:28.990 --> 01:29:41.010
Михаил Непряхин: А как Написать клиент который Будет ее Вызывать значит Кот Находится в покага хтп клиент а и

564
01:29:41.240 --> 01:29:48.780
Михаил Непряхин: в Принципе Лучшей практикой Является вот его помещение в Кг То есть Это, То что шарится и этого же сервиса

565
01:29:49.100 --> 01:29:53.680
Михаил Непряхин: потому что вы здесь же и сможете его тестировать сами, же

566
01:29:53.990 --> 01:30:02.820
Михаил Непряхин: и плюс коллеге не надо будет ничего самому писать он Просто Возьмет и воспользуется вот этим кодом

567
01:30:02.830 --> 01:30:14.099
Михаил Непряхин: и ваш апель будет работать Предсказуемым образом потому что Ну мало написать север Нужно еще для Него написать правильный клиент правильно обработать ошибки

568
01:30:14.230 --> 01:30:24.190
Михаил Непряхин: и там Ретрай какие-то можно Даже Внутрь Добавить То есть как бы вы Лучше знаете в вашей Апе и Лучше ваш вас клиент. Никто Не напишет

569
01:30:24.670 --> 01:30:33.270
Михаил Непряхин: значит как. Пишется клиент а ну? Во Первых есть вот Опять же я делаю Общую структуру клиента

570
01:30:33.890 --> 01:30:38.140
Михаил Непряхин: и уже от этого клиента методы это уже вот конкретные ручки

571
01:30:38.850 --> 01:30:45.030
Михаил Непряхин: значит Ну, ошибку но аккаунты я Всегда делаю обычно я не уточняю просто. Делаю общую

572
01:30:45.760 --> 01:30:50.789
Михаил Непряхин: и Ну, она будет возвращаться когда ничего Не Найдено

573
01:30:50.960 --> 01:31:02.550
Михаил Непряхин: значит. Из конфига что самое важное для Клиента тайм аут Это тайм-аут на этот

574
01:31:10.810 --> 01:31:17.619
Михаил Непряхин: ну короче Это тайм-аут похожий на этот Ммм

575
01:31:18.660 --> 01:31:21.530
Михаил Непряхин: тайм-аут который Мы указываем У Сервера

576
01:31:23.080 --> 01:31:26.020
Михаил Непряхин: на Тайм-аут Запроса Но короче важно его делать

577
01:31:26.380 --> 01:31:51.649
Михаил Непряхин: и По сути Там много Еще разных и и собственно и все вот дальше Мы Этот клиент имеем

578
01:31:51.940 --> 01:31:57.450
Михаил Непряхин: когда Мы его создаем Нет никаких проверок никаких экшена ничего Не, устанавливается Мы просто создадим эту структуру

579
01:31:57.680 --> 01:32:02.229
Михаил Непряхин: дальше нам нужен какой то основной Путь

580
01:32:02.330 --> 01:32:10.210
Михаил Непряхин: и Поэтому я его здесь тоже указываю в конфигурации дефолтные тут, около. Хост

581
01:32:10.770 --> 01:32:19.149
Михаил Непряхин: и ну есть функция у джона хостапорта и в итоге Запросы будут делаться к волкам хосту на двоеточие Восемьдесят Восемьдесят

582
01:32:20.620 --> 01:32:28.580
Михаил Непряхин: и методы это уже Запросы. К нашему серверу выглядит довольно Длинно

583
01:32:28.890 --> 01:32:40.779
Михаил Непряхин: то есть У нас даже Сервер как Бы короче выглядит ну смотрите давайте почитаем эту логику понятно тут какие-то вещи можно обобщить но я вот тут написал просто в лоб да как вот

584
01:32:41.190 --> 01:32:43.619
Михаил Непряхин: как это на самом деле выглядит

585
01:32:43.800 --> 01:32:51.250
Михаил Непряхин: значит ну для удобства работы нам самим то есть чтоб нам было удобно работать а у меня здесь э

586
01:32:52.200 --> 01:33:10.830
Михаил Непряхин: Можно здесь тоже использовать вто, но я когда как делаю если аргументов Очень много Я Могу сделать здесь и

587
01:33:11.580 --> 01:33:22.559
Михаил Непряхин: значит прямо, здесь короткожу Путь к серверу почему хардкожу ну потому что вряд ли он будет, ну

588
01:33:22.710 --> 01:33:32.470
Михаил Непряхин: вам проще для того здесь изменить так все равно работать Удобнее чем так как-то прокидывать там переменами окружения сразу видеть Куда пойдет запрос это удобно

589
01:33:32.910 --> 01:33:49.530
Михаил Непряхин: а у нас Там уже указан и

590
01:33:50.970 --> 01:33:58.130
Михаил Непряхин: дальше Мы создаем структуру для боди у нас в этом методе в боде принимается

591
01:33:58.630 --> 01:34:01.029
Михаил Непряхин: вот видите вот такая структура джисона

592
01:34:01.930 --> 01:34:19.680
Михаил Непряхин: Поэтому я здесь Создаю временную структуру это Анонимная структура ну можно Делать По-разному я довольно часто использую анонимные структуры если мне не надо их внешней нигде использовать я так делаю указываются Стратегии нужные правильные как Там и

593
01:34:19.840 --> 01:34:30.080
Михаил Непряхин: то есть у нас же потом с Другой стороны сервер будет принимать эту структуру у него здесь вот этот клевет Про Файлымпут у него здесь тоже есть, эти поля есть,

594
01:34:30.470 --> 01:34:36.900
Михаил Непряхин: ну теоретически эту же структуру можно было использовать и вот здесь вот

595
01:34:37.280 --> 01:34:54.200
Михаил Непряхин: ну я предпочитаю разделять эти вещи чтобы они не были, связаны Как бы и мне не очень, нравится вот эта вот связанность ну Понятно, что тут можно что-то придумать какие-то вещи переиспользовать ну дефолтный я так дефолтный я не вообще никак то есть я пишу клиент так чтобы он вообще ничего не знал

596
01:34:54.200 --> 01:35:16.220
Михаил Непряхин: про логику потому Что Я Могу перенести Эту Папку куда-то в Другое Место, и Дальше Я Превращаю Аа Эту

597
01:35:17.010 --> 01:35:19.260
Михаил Непряхин: Так маршаллю

598
01:35:19.960 --> 01:35:32.349
Михаил Непряхин: Ну Я тут заполнил их То есть эта структура не получилась заполненной я превышаю ее в Джисон вот в этом месте я Имею, уже Джейсон ну Только в Салайсе бай и

599
01:35:32.840 --> 01:35:37.350
Михаил Непряхин: дальше вот вызывается, вот эта функция создания реквеста

600
01:35:37.520 --> 01:35:56.260
Михаил Непряхин: в нее пробрасываться метод какой нужен Путь, По которому ну Путь, у нас здесь вот Мы задали изначально и через обертку она принимает а айоридер интерфейс вот Поэтому здесь используется перевод из пакета, бойцы Мы превращаем вас в байт в ридер

601
01:35:56.670 --> 01:36:00.590
Михаил Непряхин: и здесь мы получаем структуру реквеста

602
01:36:00.870 --> 01:36:05.219
Михаил Непряхин: Но реквест мы здесь Еще не делаем То есть Мы просто подготовили запрос

603
01:36:05.480 --> 01:36:14.099
Михаил Непряхин: дальше мы Можем Добавить например, заголовки то есть запрос еще Не, происходит мы добавляем заговорок вот я до Говорят, что это контент-тай по прикешен Фисон

604
01:36:14.280 --> 01:36:22.869
Михаил Непряхин: и вот уже здесь когда я делаю ду от клиента то выполняется сам запрос если Он завершился Удачно

605
01:36:23.150 --> 01:36:31.199
Михаил Непряхин: то важно в диффере будет, закрыть то есть если Вы не будете закрывать боди То у Вас

606
01:36:31.380 --> 01:36:36.089
Михаил Непряхин: не будут правильно закрываться коннекшины То есть это важно делать закрывать боли

607
01:36:36.770 --> 01:36:39.020
Михаил Непряхин: Или Там не с Коннекшинами Связано

608
01:36:39.360 --> 01:36:51.759
Михаил Непряхин: забыла Именно с чем Связано ну чего То потечет короче Не знаю. В Каком роде Но ну Сразу как. Бы Не страшно было но Там будет накапливаться по-моему Там память будет течь

609
01:36:52.120 --> 01:36:57.669
Михаил Непряхин: чичит типа в этом роде а Или иль брам коннекшены закрываются вот это Не Помню

610
01:36:58.150 --> 01:37:08.739
Михаил Непряхин: Так и Мы Проверяем Что Значит если запрос Не равен нашему Целевому то есть У нас Целевой запрос от Двухсотка

611
01:37:09.110 --> 01:37:16.870
Михаил Непряхин: Но это Не обязательно может быть Двухсотка то есть вот Если, Мы Удаляем Профиль У нас здесь статус Новый контент Но У, контент Двести четыре

612
01:37:17.170 --> 01:37:35.289
Михаил Непряхин: вот и Поэтому в случае удаления Я бы здесь проверял на Двести четыре но в этом случае у Меня Двухсотка Поэтому Я Проверяю если не Двухсотка все это Уже Ошибка Я просто распечатываю все Что есть в Годе а в Боде Там Ошибка будет и Какой статус Ей возвращаю ошибку

613
01:37:37.020 --> 01:37:41.960
Михаил Непряхин: а если это Двухсотка Мы идем дальше Ты Все хорошо Хэппи-эп

614
01:37:42.250 --> 01:37:50.000
Михаил Непряхин: и также делаю анонимную структуру для того чтобы туда революционно распасть сию айди

615
01:37:50.210 --> 01:37:57.929
Михаил Непряхин: и собственно здесь я этот ресурс уже из джельсона. Превращаю в структуру и возвращаю этот нью айди

616
01:37:58.500 --> 01:38:04.969
Михаил Непряхин: как увидите выглядит много по факту оно тут более менее все логично и повторяется

617
01:38:05.410 --> 01:38:16.080
Михаил Непряхин: и там можно придумать какие-то варианты вот это допустим обобщить Ну, я часто даже не делаю и

618
01:38:16.320 --> 01:38:20.329
Михаил Непряхин: вот этот же код может быть написан с помощью кодегенерации

619
01:38:21.110 --> 01:38:24.790
Михаил Непряхин: а его полезно написать ну хотя бы один Раз, самому

620
01:38:25.070 --> 01:38:29.629
Михаил Непряхин: ну иногда иногда периодически выете клиенты будете писать

621
01:38:30.250 --> 01:38:38.539
Михаил Непряхин: это будет вода в которой находиться то есть вот в нашем случае когда у меня клиент написан видите, как бы мне и водаптер его не придется писать

622
01:38:38.810 --> 01:38:54.909
Михаил Непряхин: потому что он уже живет в пг и я просто проброшу и

623
01:38:55.340 --> 01:39:01.560
Михаил Непряхин: если этого бы не было бы то тогда бы мне пришлось это все Писать помешать в Адаптеры и тогда бы этот код Живых Адаптеров

624
01:39:02.420 --> 01:39:06.100
Михаил Непряхин: и м значит Мы будем

625
01:39:06.410 --> 01:39:21.849
Михаил Непряхин: наверное на следующем занятии рассматривать подход Спекфест Это когда у нас вот эта специфика уже есть Она написана Она согласована Она есть у нас она есть у нашего, коллеги и мы из этой спецификации можем и сервер сгенерировать

626
01:39:21.980 --> 01:39:25.940
Михаил Непряхин: и клиент сгенерировать в случае сервера

627
01:39:26.170 --> 01:39:37.159
Михаил Непряхин: вот эту вот Штуку нам все равно придется плюс-минус писать То же самое ну Там может быть озеро Комнат Не будет но То все равно Кот этот Будет Никуда Не уйти От этого то есть Мы риск есть должны вызвать

628
01:39:37.450 --> 01:39:41.429
Михаил Непряхин: то есть в случае Сервера Генериться прямо. Скажем, немного

629
01:39:41.960 --> 01:39:45.479
Михаил Непряхин: Но в случае, клиента генерируется вот это все

630
01:39:45.740 --> 01:39:59.409
Михаил Непряхин: и в случае, клиента подход. Спекфест ну как бы оправдан действительно вы избавляетесь от написания вот этого всего Потому что задача довольно рутинная она однотипная и Поэтому вот

631
01:39:59.550 --> 01:40:06.399
Михаил Непряхин: подход. Спек жест он позволяет. Избавить вас От этого Тем более витя. Вот удаление Профиля оно тут чуть поменьше кода

632
01:40:07.240 --> 01:40:15.100
Михаил Непряхин: ага. Получение Профиля а Ну, Действительно Я вот такую Детвушку, сделал Вынес профиль Что, мы его получаем

633
01:40:15.230 --> 01:40:22.680
Михаил Непряхин: Вы это копия профиля из основы проекта опять почему отдельном деле структуры мало ли вдруг мы захотим вынести это куда-то

634
01:40:23.880 --> 01:40:36.720
Михаил Непряхин: обновление профиля он ведь здесь тоже ну на крелеет получается больше всего Куда ааа вот десять. Есть файлик Экзампл

635
01:40:36.940 --> 01:40:41.249
Михаил Непряхин: это просто можно вызвать с поднятым

636
01:40:41.800 --> 01:40:54.300
Михаил Непряхин: с поднятым Приложением можно превратить это в мейн и просто прогнать вот оно все вызовится должно работать

637
01:41:00.440 --> 01:41:12.640
Михаил Непряхин: не дает тут так хтп клиент это альтернатива тесто а зачем писать их если, вот тест

638
01:41:13.320 --> 01:41:21.310
Михаил Непряхин: да они будут всте участвовать понимаете в чем дело, для того чтобы написать тесты

639
01:41:21.460 --> 01:41:23.560
Михаил Непряхин: вы вот это все равно должны написать

640
01:41:23.960 --> 01:41:30.229
Михаил Непряхин: но когда вы, это написали вот после этого Сейчас мы посмотрим тест вот после этого вы, сможете, написать тесты

641
01:41:31.010 --> 01:41:36.689
Михаил Непряхин: я для тестов в Первую очередь Важно Ну и плюс чтобы коллега ваш. Не мучился а просто работал как, бы

642
01:41:36.890 --> 01:41:41.239
Михаил Непряхин: вам в любом Случае придется написать для тестов для своих

643
01:41:44.600 --> 01:41:51.620
Михаил Непряхин: есть какой-то софт чтобы писать ровно без пеку это же ужас руками все писать ага ха.

644
01:41:52.410 --> 01:41:59.040
Михаил Непряхин: Да согласен что ужас я это все Не помню

645
01:41:59.170 --> 01:42:03.550
Михаил Непряхин: Я пишу Всегда По образу и Подобию и с помощью Чата до пяти,

646
01:42:04.580 --> 01:42:10.980
Михаил Непряхин: Э, возможностей Там Вот в этой третьей версии Обнапе просто нереальное количество возможностей

647
01:42:11.460 --> 01:42:20.009
Михаил Непряхин: и я Не знаю это как много надо этих спект писать чтобы как-то Там По памяти это Все написать ну, вот я Согласен что ужас да

648
01:42:20.770 --> 01:42:26.300
Михаил Непряхин: но вот вот Сейчас современная, Разработка она идет к этому что

649
01:42:26.460 --> 01:42:36.199
Михаил Непряхин: реэстапи не пишется вот Так вот все руками а оно спервапишется Спека а потом Уже по Нему по ней. Это все генерируется

650
01:42:36.460 --> 01:42:46.550
Михаил Непряхин: Поэтому Ммм понятно что вы по Разному, будете встречать чаще будете Все. Таки видеть когда руками Написано Все. А потом уже Спека Написано

651
01:42:46.770 --> 01:42:52.769
Михаил Непряхин: есть еще вариант Скотт генерации. Спеки когда у здесь стратеги указываются

652
01:42:52.970 --> 01:42:55.530
Михаил Непряхин: значит есть такая такая библиотека с вагоу

653
01:42:59.210 --> 01:43:06.150
Михаил Непряхин: она как Раз таки позволяет, вы вот просто над ручками частный нем промерчик,

654
01:43:07.520 --> 01:43:12.899
Михаил Непряхин: вот вот Представьте Нет это Не Мейн на шас где у нас вот

655
01:43:13.480 --> 01:43:21.169
Михаил Непряхин: уйдет. Как, Раз, джинновская ручка ну вот вот здесь Представьте был бы райтер и распоэт

656
01:43:22.710 --> 01:43:25.059
Михаил Непряхин: громче Сигнатура. Была бы стандартного серра,

657
01:43:25.500 --> 01:43:29.430
Михаил Непряхин: представьте то есть вот это у нас ручка

658
01:43:30.650 --> 01:43:37.680
Михаил Непряхин: а вот над ручкой можно было бы написать вот эти вот вот эти комментарии

659
01:43:38.790 --> 01:43:53.480
Михаил Непряхин: и пришлось бы все равно описать что это и

660
01:43:53.480 --> 01:44:01.419
Михаил Непряхин: ну то есть собственно говоря вот здесь же То же самое вот ведь двести отвечает, в случае успеха четыреста случаев провала

661
01:44:01.530 --> 01:44:05.470
Михаил Непряхин: а что Это Джейсон где тут что То здесь он

662
01:44:05.830 --> 01:44:10.660
Михаил Непряхин: вот что-то прикешинский сон прочит как бы как бы то же самое

663
01:44:11.160 --> 01:44:16.870
Михаил Непряхин: вы просто вот здесь указываете Нажимайте Кнопку и У вас вот Эта спека генерикса по этим тегом

664
01:44:17.720 --> 01:44:30.230
Михаил Непряхин: но подход Считается Устаревшим и почему-то Вот Не пошло это дело, и поддерживается Только вторая версия свагера

665
01:44:30.570 --> 01:44:36.120
Михаил Непряхин: она Считается уже тоже депрессия все Пере Сейчас работают с Третьей Версией свагера

666
01:44:36.400 --> 01:44:39.970
Михаил Непряхин: короче говоря Мне вот этот подход нравится больше на самом деле Кот Фест

667
01:44:40.600 --> 01:44:45.349
Михаил Непряхин: ну победил в мире аспект потом тут хочу ничего не поделать

668
01:44:48.010 --> 01:44:55.030
Михаил Непряхин: так ну да вот давид написал он Еще в той генерации но она хороша но уже устарела

669
01:44:56.610 --> 01:45:06.379
Михаил Непряхин: так Поэтому да короче ужас писать руками но вот что же идти в помощь по Сути для Мудренного мандата спеку Пишется в разных файлах для разных монолей

670
01:45:06.880 --> 01:45:09.229
Михаил Непряхин: или все Выпихается в один файл

671
01:45:09.710 --> 01:45:16.710
Михаил Непряхин: для Модного манлита а по Разному бывает по разным бывает а кто то под обменом делит

672
01:45:17.390 --> 01:45:21.160
Михаил Непряхин: кто то все в один пихает и Так и Так Видел, не знаю как правильно

673
01:45:21.410 --> 01:45:24.969
Михаил Непряхин: боже модульный монолит это такое уже как гнул

674
01:45:26.680 --> 01:45:32.780
Михаил Непряхин: это для стартапов да больше Если у Вас какой то взрывы интерпрайз то у Вас будут Микросервисы!

675
01:45:33.990 --> 01:45:50.639
Михаил Непряхин: Допустим мы сделали спеку и сделали Генерацию клиента и сервер потом в серверы добавили свой эскиз потом спека поменялось все перегенерировали да генератор поймет что нужно смерть то Что Там уже Есть Или кейс с Тем Что Получилось ново садиться На аспекты

676
01:45:50.840 --> 01:45:57.729
Михаил Непряхин: а генератор это Не Генерит короче говоря вам придется руками это все менять если У вас Там

677
01:45:58.000 --> 01:46:07.809
Михаил Непряхин: вы в вот эту часть генератор свой Не, генерит генератор генерит ну. В следующий Раз посмотрим что генерал, генератором в случае сервера но Там короче

678
01:46:07.920 --> 01:46:17.379
Михаил Непряхин: не то, чтобы сильно Облегчают по сути вы вот эту часть вам пишете если, вы перегенерите ну красный Холод подсветится не будут собираться надо будет исправить

679
01:46:17.650 --> 01:46:22.219
Михаил Непряхин: так что здесь такое а клиент клинтон генерит Да

680
01:46:22.530 --> 01:46:30.120
Михаил Непряхин: ну клиент просто перегиняет полностью Ну, если там сигнатура, Поменялась вам Тоже, Придется пройти. По Коду и поменять там Где это Есть

681
01:46:30.550 --> 01:46:38.400
Михаил Непряхин: То Есть Вот так Вот короче Дальше значит когда У нас есть Хтп Клиент

682
01:46:39.220 --> 01:46:45.259
Михаил Непряхин: то Мы теперь, можем это дело протестировать ну можно конечно руками вот так вот протестировать Там

683
01:46:45.550 --> 01:46:52.170
Михаил Непряхин: Давайте Сейчас Скопернул этот файлик с провером же запустится Нет Ха

684
01:47:00.120 --> 01:47:08.509
Михаил Непряхин: Так Сделаем Мы мне придется Так добавить

685
01:47:10.430 --> 01:47:17.080
Михаил Непряхин: а Сейчас Так тут и Сделаем хак Сейчас Делаем как чтобы вот это не добавлять просто здесь точку добавлю

686
01:47:19.510 --> 01:47:34.660
Михаил Непряхин: хват Так ну около. Хост Восемьдесят Восемьдесят давайте, значит надо запустить доктор мэйк ап то Мы запустим

687
01:47:35.640 --> 01:47:38.419
Михаил Непряхин: т номер миграции прогнать

688
01:47:41.470 --> 01:47:44.470
Михаил Непряхин: Не ой Я вышел

689
01:47:55.030 --> 01:47:58.350
Михаил Непряхин: да в миграции Прогнались.

690
01:47:59.220 --> 01:48:04.970
Михаил Непряхин: Дальше надо за сервак запустить Ммм

691
01:48:05.470 --> 01:48:13.750
Михаил Непряхин: Принадлежит Команду ран а то что-то как-то Неудобно семь ди

692
01:48:20.530 --> 01:48:29.169
Михаил Непряхин: Вы собак подняли все сервер У нас Есть теперь проверим будет ли работать

693
01:48:31.330 --> 01:48:38.430
Михаил Непряхин: будет ли работать вот этот у меня скриптик ага работает ну отлично

694
01:48:38.570 --> 01:48:49.210
Михаил Непряхин: Так то есть грубо говоря когда у вас есть клиент вы вот можете файлики написать какие то вещи то подключение вот Мы подключаемся, к нашему северу

695
01:48:49.990 --> 01:49:00.699
Михаил Непряхин: ну вернее как создаем это Мы Еще не подключаемся, вот просто создали структуру в которой указали по Какому. Хосту по Какому. Порту стучаться ну контекст Просто нужен

696
01:49:03.780 --> 01:49:05.070
Михаил Непряхин: сюда его добавим

697
01:49:07.100 --> 01:49:15.130
Михаил Непряхин: вот дальше мы говорим что мы Хотим, вызвать клиент то есть то же самое как мы в пост мы ее называем вот только в коде вызываем

698
01:49:15.240 --> 01:49:19.249
Михаил Непряхин: что с джоном двадцать пять и мыем такой то телефон

699
01:49:19.360 --> 01:49:22.680
Михаил Непряхин: а в итоге Будто иди вот не вызываем получаем айди

700
01:49:22.840 --> 01:49:27.360
Михаил Непряхин: с этим айди дальше делаем гет профайл получаем сам Профиль

701
01:49:27.510 --> 01:49:35.130
Михаил Непряхин: и распечатываем его хорошо Там за ими Что Там зайди и Мы его телефоны дальше Мы создаем

702
01:49:36.280 --> 01:49:43.229
Михаил Непряхин: другие поля здесь джон был здесь Джон доа здесь двадцать Пять здесь двадцать шесть ну короче типа тестирова

703
01:49:43.380 --> 01:50:00.149
Михаил Непряхин: делом апдейт передаем туда эти поля почему указателями ну потому что тут чтобы отличать короче когда поле Не Было Передано в Рисование и когда оно Было нулевое но это же для этого как бы в апдейтах используют указатели

704
01:50:00.270 --> 01:50:12.959
Михаил Непряхин: и только в этом случае то есть как бы только вот в таких кейсах оправдан указатель над обычным типа потому что, это редкий кейс то целому указателю не надо Делать над обычными типами

705
01:50:13.490 --> 01:50:22.319
Михаил Непряхин: как бы чтобы отличить. Ну это по сути Новый был такой вариант глобал дальше мы опять сделаем запрос

706
01:50:22.500 --> 01:50:29.480
Михаил Непряхин: получаем п снова распечатываем и в конечном итоге удаляем профиль Поедишь Никуда

707
01:50:30.130 --> 01:50:35.720
Михаил Непряхин: и снова делаем проверку пытаемся получить, профиль с этим Айди

708
01:50:36.730 --> 01:50:39.719
Михаил Непряхин: а его Уже Нет Мы Печатаем Ошибку

709
01:50:39.840 --> 01:50:42.670
Михаил Непряхин: да вот короче Поэтому Мы тут. Видим шуут

710
01:50:42.770 --> 01:50:52.779
Михаил Непряхин: Распечатали адишник. Сперва Один профиль здесь двадцать, пять потом поменяли профиль получился двадцать, шесть потом удалили его и получили нод фаунд

711
01:50:54.360 --> 01:51:00.730
Михаил Непряхин: и как будто, бы вот из этого уже можно сделать тесты ааа

712
01:51:01.070 --> 01:51:05.289
Михаил Непряхин: как делать, тесты вот интеграционные чтобы это было удобно

713
01:51:05.580 --> 01:51:16.410
Михаил Непряхин: значит для этого у нас есть вот пакет тест папочка тестерня здесь интеграшен потому что тест интеграционные

714
01:51:16.520 --> 01:51:28.450
Михаил Непряхин: а с чем отличаются обычные тесты от интеграционных интеграционные тесты проверяются на живой базе мы подняли доктор компост но вот только что то, что мы сделали по Сути менты отсолнутые справили

715
01:51:28.680 --> 01:51:38.220
Михаил Непряхин: У нас реальные данные реальная база данных все живое мы делаем тесты значит и вот у нас

716
01:51:38.720 --> 01:51:43.119
Михаил Непряхин: тест клевет профайла смотрите Мы

717
01:51:43.320 --> 01:51:51.889
Михаил Непряхин: создаем профиль передаем туда данные То же самое как Мы только что делали получаем адишник проверяем Что там Нет ошибки

718
01:51:52.500 --> 01:52:00.960
Михаил Непряхин: по Этому Адишнику Делам запрос на Профиля поучаем этот профиль ии

719
01:52:01.140 --> 01:52:05.819
Михаил Непряхин: Функция рико проверяем Что там вот эти его значения

720
01:52:09.720 --> 01:52:14.949
Михаил Непряхин: Так Ше чтобы тут все работало надо добавить смотрите значит Ммм

721
01:52:16.310 --> 01:52:19.739
Михаил Непряхин: Так как эти тесты требуют базы данных

722
01:52:20.360 --> 01:52:27.220
Михаил Непряхин: То Их отличают от обычных тестов чтобы вот эти тесты не запускались, вместе со всеми остальными

723
01:52:27.610 --> 01:52:31.199
Михаил Непряхин: добавляют вот этот тэк гоу бьют в интерэйшн

724
01:52:32.350 --> 01:52:38.350
Михаил Непряхин: а это просто общепринятая практика то есть так делает интеграционный тест, то есть везде где вы встретите во днем вот так

725
01:52:39.050 --> 01:52:43.539
Михаил Непряхин: значит и вот билл тэк это прям на уровне компилятора

726
01:52:43.960 --> 01:52:48.409
Михаил Непряхин: Можно сказать подключи или не подключай файл

727
01:52:48.640 --> 01:52:51.779
Михаил Непряхин: если вверху файлы указан такой билл тек.

728
01:52:51.950 --> 01:52:57.860
Михаил Непряхин: То дальше чтобы собрался бинарник, с этим файлом внутри

729
01:52:58.060 --> 01:53:05.130
Михаил Непряхин: нужно указать Тэкнити грейшен значит специальная команда вот интеграционная теста вот например, решен тест

730
01:53:05.520 --> 01:53:07.599
Михаил Непряхин: я сделал Команду, в майк файли

731
01:53:08.610 --> 01:53:10.710
Михаил Непряхин: она также выполняет как Обычный тест

732
01:53:10.830 --> 01:53:18.779
Михаил Непряхин: но видите Здесь есть Текс указанный интегрейшн и это значит что эти файлы будут собраны в процессе Сборки

733
01:53:19.410 --> 01:53:30.140
Михаил Непряхин: а вот если, случаи Обычных тестов они не будут подключены и ошибок у вас не Будет оттого что у вас там база не подключена доктор контейнера не подняты

734
01:53:30.140 --> 01:53:47.300
Михаил Непряхин: а вот когда вы Хотите, конкретно интеграционные тесты сделать и

735
01:53:47.650 --> 01:54:01.780
Михаил Непряхин: а аккаунт один это просто изброс кэша чтобы тесты не кашировались не спрашивайте почему такой синтекс скажет что это что типа Без кэша ну вы это Вербоус, по более подробный вывод

736
01:54:04.410 --> 01:54:17.940
Михаил Непряхин: вот и для того чтобы и ежка подхватывала нормально Эти файлы тут надо Указывать кастам-текс а Не Ты грешен вот видите все и девушка сразу Не сходит с Ума и понимает что все как бы это

737
01:54:18.370 --> 01:54:21.309
Михаил Непряхин: включая цветю файлы и подсвечивает синтаксис

738
01:54:22.160 --> 01:54:25.819
Михаил Непряхин: аа тесты супер получаются простые понятные

739
01:54:25.930 --> 01:54:37.030
Михаил Непряхин: у нас уже клиент написан и

740
01:54:37.550 --> 01:54:50.269
Михаил Непряхин: с делит Файлом сдрит Пофайлом да то есть вот Мы тут создаем надо сперва что-то создать чтобы удалить а кстати каждый тест он самостоятельно отдельный то есть мы перед каждым тестом базу, подчищаем

741
01:54:50.510 --> 01:54:58.789
Михаил Непряхин: и каждый тест он получается на чистой базе мы соответственно Раз, на чистой базе Мы должны изначально Профиль, создать

742
01:54:59.350 --> 01:55:10.279
Михаил Непряхин: Потом проверит Что он Там есть Так на всякий случай Потом Мы его удаляем этот Профиль, и проверяем что в случае доступа к этому айди мы получаем ошибку нотаунд

743
01:55:11.020 --> 01:55:16.470
Михаил Непряхин: а и супер супер простой понятный тест

744
01:55:16.960 --> 01:55:32.680
Михаил Непряхин: как бы если бы все интеграционные тесты были такие у нас бы в мире бы и

745
01:55:32.880 --> 01:55:39.310
Михаил Непряхин: Поэтому вот прям у нас беда в целом с тем что. Люди Не умеют тестировать свои, собственные продукты ну илигенятся,

746
01:55:40.550 --> 01:55:44.019
Михаил Непряхин: вот тест на гет профайл тоже

747
01:55:44.260 --> 01:55:55.409
Михаил Непряхин: у нас абсолютно новый кейс в одном, смысле новая база новый кейс что, вот у нас ээ создается профиль получается профиль проверяются на эти значения

748
01:55:56.250 --> 01:56:04.480
Михаил Непряхин: аа вот эти вот иквел это используется тестифай библиотека ну мы Еще посмотрим в следующий Раз, уже Не

749
01:56:04.820 --> 01:56:12.529
Михаил Непряхин: и также это сексуальный кейс а это кейс на ноут Фаунд просто Берем какую-то несуществующую ее идею проверяем

750
01:56:12.710 --> 01:56:16.239
Михаил Непряхин: и получаем что там ошибка ошибка на фронт

751
01:56:18.640 --> 01:56:25.330
Михаил Непряхин: ну и на обновление то есть мы тут обновляем данные тоже чуть подлиннее тест получается ну потому что надо создать данные надо их

752
01:56:26.040 --> 01:56:42.900
Михаил Непряхин: и получить. Проверить ну может быть а ну а новая задать да то есть тут одни данные задаем тут новые данные задаем короче говоря вот я вам просто показал революцию как из-за этого Сделать интеграционные тесты и собственно я тут и

753
01:56:43.310 --> 01:56:48.269
Михаил Непряхин: ну и тут виде синтез Немножко проще в одну строчку можно проверить Что там просто Нет ошибки

754
01:56:50.140 --> 01:56:55.479
Михаил Непряхин: а как это все засытапить значит это Все святопится, вот в этом файле в Майне

755
01:56:58.610 --> 01:57:05.440
Михаил Непряхин: ну здесь я подсказку написал что надо сперва доктор компост, поднять а потом Уже интеграционные тесты запустить

756
01:57:06.810 --> 01:57:16.619
Михаил Непряхин: значит Это структура из которой. Которая запускается весь интеграционный тест у нас тест должен Начинаться на слове тест

757
01:57:17.460 --> 01:57:21.780
Михаил Непряхин: Иметь. Такую сигнатуру вот Поэтому эта штука просто чтобы это все дело запустилось

758
01:57:23.130 --> 01:57:32.829
Михаил Непряхин: дальше у нас Есть сют в суете это сют от тестифай библиотеки самая Популярная библиотека у нас Для тестирования

759
01:57:34.170 --> 01:57:46.150
Михаил Непряхин: указан текк вернее делаю настройку что все проверки смотрите вот икволы они реклайр

760
01:57:47.530 --> 01:57:51.280
Михаил Непряхин: по дефолту в библиотеке они просто? Асершенс

761
01:57:52.180 --> 01:57:55.750
Михаил Непряхин: то Есть, Если. Встречается ошибка Мы идем дальше

762
01:57:56.360 --> 01:58:01.150
Михаил Непряхин: мне нравится когда Мы Не идем дальше в случае ошибки

763
01:58:01.420 --> 01:58:06.330
Михаил Непряхин: Вот эти Вот две строчки Они все Эти проверки делают

764
01:58:06.680 --> 01:58:25.440
Михаил Непряхин: обязательными и при встрече хоть. Одной ошибки Мы дальше Не идем и Падаем это удобно когда вы пытаетесь Найти и

765
01:58:26.870 --> 01:58:33.899
Михаил Непряхин: а у нас здесь и зеин джекчины, клиент Х дтпшный у Которого. Мы до этого разбирали

766
01:58:36.700 --> 01:58:40.219
Михаил Непряхин: для маковки тут Нет разные Как бы это умираты факты остались

767
01:58:41.420 --> 01:58:43.750
Михаил Непряхин: Так же и тут можно чего угодно процитировать

768
01:58:45.040 --> 01:59:01.340
Михаил Непряхин: дальше у меня вот здесь значит есть всего у этого френворка четыре функции подготовительных значит ситапсют и тердаун сют

769
01:59:01.720 --> 01:59:06.949
Михаил Непряхин: сытапсют это вначале всех тестов какая то функция вызывается

770
01:59:07.340 --> 01:59:17.650
Михаил Непряхин: а вот здесь функция которая здесь указана это в конце вообще всех. Всех. Всех. Тестов ведь У меня ничего не указано У меня только указана Функция Что будет происходить э

771
01:59:19.850 --> 01:59:26.829
Михаил Непряхин: вначале они и они вначале всех тестов

772
01:59:27.240 --> 01:59:38.200
Михаил Непряхин: также можно перед каждым конкретным тестом что-то делать и после Каждого Конкретного Общего после Каждого теста из этого маленького тоже что-то делать

773
01:59:38.370 --> 01:59:39.876
Михаил Непряхин: Так только я

774
01:59:41.850 --> 01:59:54.039
Михаил Непряхин: а как я тут сбрасываю базу данных я чуть не сбрасываю да я вас Обманул я получается ее не сбрасываю то Есть тут каждый кейс он получается на этом и я не сбрасываю на каждом кризисе базу

775
01:59:54.220 --> 02:00:02.130
Михаил Непряхин: я ее тут в самом начале только один Раз зарезал то есть вот в начале всех тестов я сделал ресепшн миграции

776
02:00:03.780 --> 02:00:15.769
Михаил Непряхин: да то есть я все сбросил и удалился, таблицы и заново создал все таблицы это только вначале в начале всех тестов ну то, же самое ничего нам Не мешает сделать прямо, в начале каждого теста

777
02:00:15.980 --> 02:00:20.750
Михаил Непряхин: вот если если Мы хотим, чтобы в начале каждого теста это было то просто вот

778
02:00:21.100 --> 02:00:35.779
Михаил Непряхин: а вот цитата тест вот делаем здесь и перед каждым тестом она сбрасывает базы данных сбрасываться если вы Хотите, чтобы после каждого. Теста она сбрасывалась. Ну вот сюда можете и после Каждого маленького тестика вся, база Будет обнуляться и вы будете Иметь, пустую базу,

779
02:00:35.780 --> 02:00:44.389
Михаил Непряхин: вот Но видимо здесь у Меня простые тесты Я просто сделал Что У Меня в один Раз вначале всех тестов база сбрасываются миграции заново накатываются

780
02:00:45.000 --> 02:00:54.890
Михаил Непряхин: то Есть вот У Меня миграции Сперва убиваются все таблицы убиваются а потом я их заново накатываю а это просто пути и где у меня миграции лежат ну тоже дойдем доминации это все разберемся

781
02:00:55.370 --> 02:01:11.980
Михаил Непряхин: а вот здесь конфликт у Меня, соответственно здесь у Меня, переменные окружения не появляются но я ничего не получаю я хочу чтобы у Меня, этот конфликт просто был прям Собран как Есть Поэтому То что у меня в Январе Файли здесь указано я просто собираю структуры и у меня весь конфликт приложения есть

782
02:01:12.360 --> 02:01:25.930
Михаил Непряхин: отключаю блогер блогер мне здесь не нужен я его отключаю Ну, если, вдруг я хочу Логи видеть то я его Ну, Удаленно закомментирую. Эту строчку тогда логику будет видно если. Я Там понимаю что ты столкнулся с проблемой хочу одебажиться включаю Логи

783
02:01:25.930 --> 02:01:33.939
Михаил Непряхин: и включаю сайлинг мод для трейсов то есть я уже как-то показываю что я таким образом отключаю рейсы чтобы они ничего не сломали

784
02:01:34.170 --> 02:01:37.889
Михаил Непряхин: дальше в грути не запускаю сервак наш

785
02:01:39.240 --> 02:01:53.649
Михаил Непряхин: для этого и нужна функция отдельно вот ведь, в пакете Ран потому, что если бы она была в пакете мэйн я бы не смог ее запустить из пакета мейн и никаких функций нельзя м видеть

786
02:01:53.790 --> 02:02:07.350
Михаил Непряхин: Поэтому мне обязательно нужна вот эта функция ран инициализации и где весь коннекшн и шендаун Поэтому она мне нужна отдельно чтобы я ее мог в интеграционном тесте вот так вот просто взять и запустить

787
02:02:08.590 --> 02:02:16.580
Михаил Непряхин: дальше я ну создаю клиент говорю что у меня налог в хосте запущен и

788
02:02:16.800 --> 02:02:35.979
Михаил Непряхин: ну родился у меня тоже Сейчас пока не, нужен ну вот он на партия Восемьдесят я могу на другом, парте запустить на против Восемьдесят один тогда, я здесь тоже право укажу Восемьдесят Один? Что я буду из моего клиента вот к этому Серверу Сконфинурованному обращаться уже по другому прату

789
02:02:36.600 --> 02:02:51.229
Михаил Непряхин: и сплю Секунду. Только для того чтобы вот эта гурутина успела запуститься потому Что На запрос в Груди Не требует какое-то Время и уж За Секунду Она точно успеет запуститься потому что. Если я этого не сделаю то я могу попасть на тот случай когда груди просто не успеет запуститься

790
02:02:51.360 --> 02:03:04.540
Михаил Непряхин: а мне надо чтобы она была в отдельной воротине потому что это сервер он же там заблокируется он дойдет туда и заблокирует все и я дальше Не смогу продолжить Поэтому обязательно должна? Быть запущена в грузии

791
02:03:05.460 --> 02:03:09.070
Михаил Непряхин: вот ну и запускается это все дело Э,

792
02:03:11.970 --> 02:03:18.649
Михаил Непряхин: так вот мне у меня тут сервер будет запущен вот он уже Не, нужен я его погасил потому Что, Мы Сейчас в рамках интеграционного теста будем его запускать

793
02:03:18.910 --> 02:03:22.279
Михаил Непряхин: и Запускаю, вот мой контекст интергрешен тест,

794
02:03:24.300 --> 02:03:39.340
Михаил Непряхин: и вот оно Не, работает Сейчас посмотрим что, он работает ну фаунд ууу Ммм

795
02:03:41.230 --> 02:03:50.999
Михаил Непряхин: это странно конечно отчего к чему может быть опор поменял из за этого хотя вроде там актер родина это

796
02:04:00.830 --> 02:04:09.450
Михаил Непряхин: а на да это было с портом связано Только так чуть я не понимаю почему почему

797
02:04:10.370 --> 02:04:18.510
Михаил Непряхин: чудку вот я же ведь поменял порта и раздеев тоже, поменял чуть он сразу перестал работать аа

798
02:04:20.950 --> 02:04:25.270
Михаил Непряхин: может он занят был Восемьдесят второй порт

799
02:04:29.080 --> 02:04:39.380
Михаил Непряхин: Похоже он Занят Был Но видимо У Меня, в системе Че то Восемьдесят первого пордает А и короче да

800
02:04:42.440 --> 02:04:46.480
Михаил Непряхин: короче вот таким Нехитрым Образом Мы получаем

801
02:04:47.150 --> 02:04:53.139
Михаил Непряхин: в этом Же Интерфейсе тестов потому Что видите Команда запускается Гоу Тест просто вот с этим трегом интегришн

802
02:04:53.730 --> 02:04:57.030
Михаил Непряхин: Мы запускаем все эти наши тесты

803
02:04:58.560 --> 02:05:11.620
Михаил Непряхин: понятно Что они Работают, уже тут ведь, Не микросекунды а миля секунды и всего в общем ведь, Он Даже одну секунду это Мы вначале спали а Так он отработал за сто милли секунд

804
02:05:11.840 --> 02:05:21.959
Михаил Непряхин: вот и

805
02:05:22.420 --> 02:05:36.810
Михаил Непряхин: вот и собственно говоря вот эта связка когда у вас есть написанный клиент аа вами же ну или сгенерированный когда у вас есть вот такие интеграционные тесты и это позволяет вам спать по Ночам

806
02:05:36.940 --> 02:05:44.809
Михаил Непряхин: и по выходным не работать потому, Что Это очень сильно повышает надежность системы

807
02:05:45.020 --> 02:05:50.889
Михаил Непряхин: потому, Что как Минимум у вас Хэппи пест он уже есть и

808
02:05:51.000 --> 02:05:58.609
Михаил Непряхин: те кейсы особенно исключительно Вы могли что-нибудь Не протестировать ну, хотя бы, вот базово

809
02:05:59.510 --> 02:06:02.000
Михаил Непряхин: а Вы когда будете делать изменения

810
02:06:02.280 --> 02:06:06.660
Михаил Непряхин: То Вы можете Всегда проверить Не сломали ли Вы что-то в этом изменении

811
02:06:06.900 --> 02:06:12.000
Михаил Непряхин: этот Же тест можно строить на все ай витлаб

812
02:06:12.610 --> 02:06:17.500
Михаил Непряхин: но Видите тут сложнее немножко а тут же нужен доктор компост может поднять

813
02:06:18.170 --> 02:06:26.330
Михаил Непряхин: а это уже надо уметь настраивать ай и если вы сами не умеете то да воп сможет Никогда до этой сдачи не дойти

814
02:06:26.470 --> 02:06:28.739
Михаил Непряхин: Там я помню поважнее есть Задача

815
02:06:29.070 --> 02:06:35.570
Михаил Непряхин: ну ничего страшного вы можете запускать зато локально этот тест и просто ну

816
02:06:35.900 --> 02:06:40.439
Михаил Непряхин: локально хотя бы убеждаться что вы ничего не поломали у вас все работает

817
02:06:41.970 --> 02:06:52.209
Михаил Непряхин: вот и тесты получаются очень читаемые потому что клиенты у вас уже заранее написаны Не надо ничего изобретать велосипеды Не надо там че то какие-то мертвые для клиентов писать в клиенты У вас уже готовы

818
02:06:54.860 --> 02:06:58.620
Михаил Непряхин: Так Давайте посмотрим Вопросы,

819
02:07:00.240 --> 02:07:08.229
Михаил Непряхин: про миграции расскажете. Потом Конечно Конечно ну просто Миграцию Не надо Рассказывать когда про поздравить Будем говорить про адаптацию Будем говорить

820
02:07:08.660 --> 02:07:10.670
Михаил Непряхин: важно в Следующий, Раз, Мы это вам делать,

821
02:07:11.360 --> 02:07:15.530
Михаил Непряхин: так а то я запускаю команды а на Что это влияет Пока Не понимаю

822
02:07:15.750 --> 02:07:25.269
Михаил Непряхин: Да Да Да ну Видите как слишком много информации Не все Сразу если гнать и быстро тоже Спешить ничего же Не отложится

823
02:07:25.560 --> 02:07:30.120
Михаил Непряхин: Поэтому тут будут такие супербазово важные вещи мы на них ведь много времени. Тратим

824
02:07:31.020 --> 02:07:37.139
Михаил Непряхин: а нагрузчное тестирование проводится только сторонними сервисами или в Голову. Есть свои. Механизмы своих механизмов. Нет

825
02:07:37.780 --> 02:07:43.569
Михаил Непряхин: ну понятно, дело что вы можете, что-нибудь такое написать ну хорошо вот смотрите Допустим Мы хотим,

826
02:07:43.800 --> 02:07:56.710
Михаил Непряхин: устроить какой-нибудь хай-вот на Создание, Профилей да ну, окей Давайте просто Возьмем это Зафигачем в цикле создадим

827
02:07:57.060 --> 02:08:04.519
Михаил Непряхин: десять тысяч Профилей просто посмотрим Сколько За Сколько времени он это сделает

828
02:08:04.710 --> 02:08:06.629
Михаил Непряхин: ну десять тысяч я думаю нормально

829
02:08:07.740 --> 02:08:13.329
Михаил Непряхин: э блин только разные надо сделать а оно ни разу не будет создаваться. Да гаишники же разные будут соки

830
02:08:13.860 --> 02:08:20.329
Михаил Непряхин: да да нормально будет и шос устрою такой небольшой нагрузчный Тест

831
02:08:20.570 --> 02:08:39.539
Михаил Непряхин: и Есть свои инструменты и как бы этого Встроенного ничего в гол Нету но если. Вы хотите, что-нибудь такое проверить то понятное дело что можете что-нибудь такое написать

832
02:08:39.560 --> 02:08:43.389
Михаил Непряхин: просто когда У вас есть в распоряжении, и клиент и сервер

833
02:08:43.650 --> 02:09:00.830
Михаил Непряхин: ну вы можете как угодно комбинировать этот клиент у нас есть гурутин в распоряжении, да ну чего-то там лишь кому похоже Что он там десять тысяч а оно Нет вот тридцать два секунды создал вот тридцать секунд работал этот создание Профиля

834
02:09:00.830 --> 02:09:10.490
Михаил Непряхин: вот ну это Же реальная база хоть, и в доктор запущенная но вот тоже как вы можете примерно оценить Сколько там чего работает поделить тридцать секунд на эти десять, тысяч

835
02:09:10.520 --> 02:09:12.230
Михаил Непряхин: понять, Сколько оно работало

836
02:09:12.420 --> 02:09:21.170
Михаил Непряхин: плюс, Вы можете Устроить параллельность допустим жгу Вы просто. Берете и это все еще запускаете в гуру тинах

837
02:09:23.780 --> 02:09:27.190
Михаил Непряхин: вы допустим в десяти потоках Хотите, это сделать

838
02:09:27.840 --> 02:09:31.469
Михаил Непряхин: здесь, вы делаете свои, эти циклы

839
02:09:36.910 --> 02:09:48.560
Михаил Непряхин: а вот каждый цикл, будет по тысячи создавать тоже будет десять, тысяч в итоге, да вот но уже параллельность будет десять, то есть это будет параллельно, еще происходить давайте поменьше дела

840
02:09:49.560 --> 02:09:52.980
Михаил Непряхин: давайте параллельно, спать так долго ждать

841
02:09:53.090 --> 02:09:58.260
Михаил Непряхин: вот и там опять же запускаете смотрите То есть в Принципе как, бы

842
02:10:03.350 --> 02:10:07.989
Михаил Непряхин: тут надо выть группу он очень быстро. Вышел отсюда ну короче

843
02:10:08.790 --> 02:10:15.689
Михаил Непряхин: без Этой группы тут Не прокатило Мы быстро. Пролетели Эти гурутины и ничего Не успели выбывать

844
02:10:15.920 --> 02:10:27.500
Михаил Непряхин: ну ключе вы, поняли как бы у нас тут в распоряжении очень мощный инструмент в виде грутин и благодаря ему мы тут можем как бы и нагрузочное тестирование тоже какое-то выстраивать в каком-то виде

845
02:10:27.880 --> 02:10:38.130
Михаил Непряхин: ну так конечно над специализированными инструментами Пользуется там любая апача какой-то инструмент либо от яндекса. Танк ну и Еще утелит куча сиявая которые вот позволяют что-то протестировать нагрузочное

846
02:10:38.570 --> 02:10:40.160
Михаил Непряхин: чтобы сделать

847
02:10:40.410 --> 02:10:54.569
Михаил Непряхин: вызовы другого микросервиса Добавляем этот микросервис как зависимость и использовать его Хтп клиент У если тот микросервис Соизволим этот Хтп клиент Не Писать туда Или Там есть пека хотя бы чтобы сгенерить этот тпыклен

848
02:10:54.690 --> 02:10:57.200
Михаил Непряхин: А если его Там Нет из пеки Нет

849
02:10:57.300 --> 02:11:04.719
Михаил Непряхин: ну вы обречены писать этот адапта сами Которого было Написано для Энтуэнт

850
02:11:04.870 --> 02:11:12.669
Михаил Непряхин: ну если он есть то да просто все просто вы его берете этот клиент внедряете как зависимость без кейс и все и пользуетесь

851
02:11:14.190 --> 02:11:26.029
Михаил Непряхин: почему использовать там слив для запуска гору тела и когда есть Твойнг, ну слушайте ну у вас? Есть группа это три строчки а мне это интеграционный тест мне тут проще поспать

852
02:11:27.060 --> 02:11:38.329
Михаил Непряхин: и то есть это в этом в группе ну Сейчас ма одна обертка появилась в Один, двадцать, пять можно было заявить Но вот У Меня за Один Двадцать четыре Это Меня заводит группу создать

853
02:11:38.540 --> 02:11:49.709
Михаил Непряхин: Это мне надо Давайте сен куинн Глуп дальше мне надо добавить Один дальше мне надо

854
02:11:51.520 --> 02:12:08.170
Михаил Непряхин: Были. Нету Придется еще Не повысить Этот гроб мне пройдет Этот механизм Прокидывать короче слушайте просто с Пяти, Секунд и все это на самом деле секунд с запасом Там надо ну десять. Или секунд то. С ней лень даже десять. Или секунд писать Секунду проще ничего страшного секунду подожду

855
02:12:08.350 --> 02:12:20.739
Михаил Непряхин: короче меньше заморочки лучше. Потому Что в противном случае вам тут потом так Что саможу венгу У

856
02:12:23.410 --> 02:12:26.910
Михаил Непряхин: да блин геморрона больше секунду поспать ну хотя.

857
02:12:26.910 --> 02:12:29.329
Илиас Эззахид: Можно кто-то слова

858
02:12:29.400 --> 02:12:42.259
Илиас Эззахид: касаемо роутеров и метлуэровства вот если Мы пишем например. Какую-то все мессы Там разные роле ну особенно, это администратор, суперадмин и пользователи и вот как разделить э

859
02:12:42.260 --> 02:12:49.520
Илиас Эззахид: аа рутинг чтобы было там в Некоторых случаях там то, кадмин имеет. Право в этом

860
02:12:49.850 --> 02:12:58.120
Илиас Эззахид: помучили в этом одессе вот запросы пут запросы и делить а там и пользователи там только гекторы

861
02:12:58.320 --> 02:13:01.090
Илиас Эззахид: как разделить на уровне раутера, ею.

862
02:13:03.420 --> 02:13:32.170
Михаил Непряхин: Ну вы просто делаете и вот здесь у вас живите, токен вы его и

863
02:13:32.380 --> 02:13:44.440
Михаил Непряхин: Там админ юзер и так далее а дальше вы делаете проверку ну если в случае мидовары

864
02:13:44.910 --> 02:13:51.460
Михаил Непряхин: то вам придется писать вот эту проверку типа внутри медовары

865
02:13:56.200 --> 02:14:06.530
Михаил Непряхин: то есть вам вам придется здесь писать Иф типа ив а эр Давайте Сейчас Сделаем вотс

866
02:14:12.400 --> 02:14:15.190
Михаил Непряхин: типа вот Мы вот Сейчас в этом роуте

867
02:14:15.360 --> 02:14:27.270
Михаил Непряхин: если Мы Сейчас в Этом роуте То распаковываете Дживити Токен и Проверяете типа и если в живите Токине Роль

868
02:14:27.990 --> 02:14:32.440
Михаил Непряхин: админ люди фо кей а на

869
02:14:32.710 --> 02:14:40.620
Михаил Непряхин: если Нет То Там Делайте Ошибку о том какая Там Второй разрешен четыреста

870
02:14:41.710 --> 02:14:44.360
Михаил Непряхин: ну Вы поняли короче Ошибку авторизации гентон.

871
02:14:45.890 --> 02:14:47.580
Илиас Эззахид: Вот подождите

872
02:14:47.780 --> 02:14:57.089
Илиас Эззахид: ну про дело в том что дживити токино ну Пейлодж же ведь, и токина он же Публичный его Можно менять Там тот кто отправляет очевидно Токин.

873
02:14:59.400 --> 02:15:11.860
Михаил Непряхин: Так ну здесь вам надо Это, Давайте Так Дойдем До Дживити токина Дойдем До живите токиное устройство как. Оно работает Там расскажу но вкратце дживити токин для этого и нужен

874
02:15:12.250 --> 02:15:13.650
Михаил Непряхин: что а

875
02:15:14.510 --> 02:15:21.129
Михаил Непряхин: как бы кто бы ни изменил. Да он Публичный но механизм его заключается в том что он подписан

876
02:15:21.290 --> 02:15:35.529
Михаил Непряхин: вы эту подпись проверяете Нет ну естественно вы вот здесь вот не просто тупо берете из живите токи на Роль и Вы тут. Проверку? Делаете то Есть Вы делаете Проверку? На Валидность подписи проверяйте Подпись

877
02:15:36.120 --> 02:15:44.690
Михаил Непряхин: человек и Ну Как там эээ сигнатуру проверяете

878
02:15:44.980 --> 02:15:55.419
Михаил Непряхин: и если она невалидная ну все как Бы вашу Ошибку отдаете даже когда вы подпись проверили вы можете быть уверены Что если там Роль админ

879
02:15:55.540 --> 02:16:04.399
Михаил Непряхин: то значит перед вами админнский токен и значит дальше вы уже можете ему доверять это как мой принцип работает живите токина

880
02:16:08.370 --> 02:16:16.559
Михаил Непряхин: ну я так прошу либо вы замечания сделали что я проверку здесь не учел. Либо живите токи но им просто не знакомо

881
02:16:21.900 --> 02:16:41.009
Михаил Непряхин: тоже доживите токина когда идем это еще я расскажу поподробнее для тех. Кто не в курсе вокруг ход но как видите если вы делаете какую-то общую милуру У вас появляются вот эти вот проверки, а в каком я Сейчас нахожусь Роуте

882
02:16:41.459 --> 02:16:43.420
Михаил Непряхин: Поэтому мне это Не, очень Нравится

883
02:16:43.610 --> 02:16:48.390
Михаил Непряхин: я бы проще бы все-таки это сделал вьюз, кейсе

884
02:16:48.850 --> 02:16:56.259
Михаил Непряхин: то есть вот эту логику я оказываюсь нужным, из кейсе то есть вот допустим представим

885
02:16:56.450 --> 02:16:59.459
Михаил Непряхин: создавать профиль может только админ

886
02:17:00.219 --> 02:17:08.219
Михаил Непряхин: отлично значит вот Мы Доходим досюда распашиваем запрос все нормально не важно Там кто перед нами попадаем

887
02:17:08.450 --> 02:17:13.279
Михаил Непряхин: Ну вот живите только надо распасть да То есть Мы Там и с заголовкой берем данные

888
02:17:13.540 --> 02:17:16.710
Михаил Непряхин: аа получаем здесь Джити токин.

889
02:17:17.309 --> 02:17:22.809
Михаил Непряхин: И из дживити токина настолько роли интересует То есть нам самое главное какая Там У Него Роль

890
02:17:24.750 --> 02:17:32.980
Михаил Непряхин: а ну Проверку надо сделать Нет прям живите весь живите токингером все весь живите Токин, пробрасывая Аа сюда Внутрь кревет профайла

891
02:17:33.200 --> 02:17:39.100
Михаил Непряхин: значит Дальше в клет профайле Мы тут получаем Наш дживити токен

892
02:17:39.990 --> 02:17:48.360
Михаил Непряхин: и ну трайс Пусть. Начинается значит здесь что Мы Делаем во Первых Мы Проверяем живие токи а на Инвалидность

893
02:17:50.370 --> 02:17:55.189
Михаил Непряхин: Там проверяется во-первых Не За экспаринг? Ли

894
02:17:55.830 --> 02:18:05.600
Михаил Непряхин: аа токен если. За эксперимент То уже все как бы и Роль Мы проверяем значит ой не Роль подпись

895
02:18:06.370 --> 02:18:09.640
Михаил Непряхин: сигн и чердада, вот подпись проверяем

896
02:18:09.930 --> 02:18:15.759
Михаил Непряхин: это все Там, в одном методе Делается за Раз, и Не за их спайден, ли Он и валиден, ли Он

897
02:18:15.950 --> 02:18:26.549
Михаил Непряхин: э если Он Не валиден, но Ошибку Отдаем так Что он валиден, он Не за экспарент все-таки дальше Мы проверяем Роль и вот здесь Мы просто делаем у нас уже есть Роль

898
02:18:26.690 --> 02:18:33.990
Михаил Непряхин: если эта Роль Не камин То Мы

899
02:18:35.930 --> 02:18:41.719
Михаил Непряхин: Мы Возвращаем Ошибку ну Там к концу. Связанным с Авторизацией Кобыль Вот и Все

900
02:18:42.760 --> 02:18:45.469
Михаил Непряхин: Вот как Бы Я бы делал так

901
02:18:48.299 --> 02:18:58.630
Михаил Непряхин: если, этих Ручек много и там Прям ну вот хочется, это все мигрывары сделать ну все равно будете страдать где нибудь ошибетесь видите как бы там же надо будет каждый путь проверить

902
02:18:58.770 --> 02:19:00.760
Михаил Непряхин: а здесь железобетонно

903
02:19:01.080 --> 02:19:08.790
Михаил Непряхин: и нафиг эти семинары вот вы вы получили на руки токен вы, понимаете что Вот если, вот здесь какая То проблема

904
02:19:09.030 --> 02:19:28.310
Михаил Непряхин: никакой там левый пользователь За джерминские права все-таки задают как надо точно понимать админ если, это на мидл варе делать ну вы можете ошибиться где-нибудь а здесь вы точно понимаете вот в дальше он тоже Не пройдет

905
02:19:28.410 --> 02:19:37.920
Михаил Непряхин: Поэтому вот рекомендую вам пользоваться вот этим и не связываться с менюварами так Еще Вопросы, есть

906
02:19:44.870 --> 02:20:01.319
Михаил Непряхин: так вообще насколько Давайте оцените насколько понятна вот эта связка что у нас есть сервер мы пишем для него клиента и благодаря этому мы дальше можем тестировать вот здесь вот как бы вот эти вот Штуки все понятны Поставьте плюски Если как поселок

907
02:20:01.530 --> 02:20:07.880
Михаил Непряхин: Или Или Есть еще здесь Вопросы, шучу и непонятно

908
02:20:10.950 --> 02:20:17.600
Михаил Непряхин: ну вот плюс-минус вот вот где где осталось мне приятно Тяжело ну и

909
02:20:20.830 --> 02:20:37.210
Михаил Непряхин: вот павел если про минус где остались пробелы, Или где что то непонятно вроде можно же сделать группу ровотов а там уже добавить медовары да да да ну можно сделать это и на группе роутов

910
02:20:37.940 --> 02:20:46.629
Михаил Непряхин: а и естественно как бы тоже вариант допустим у нас

911
02:20:46.850 --> 02:20:52.999
Михаил Непряхин: все вот эти роуты они нужны это нужна авторизация

912
02:20:53.310 --> 02:21:00.900
Михаил Непряхин: мы допустим минские права мы его здесь сделаем мид варум и закрываем только конкретные конкретные ручки этими правами

913
02:21:01.530 --> 02:21:13.809
Михаил Непряхин: так тоже Можно сделать да и если Там вы проверяете токин и он Не валиден, То Дальше Не пускать как вариант Можно и так У Меня Там, пример

914
02:21:13.930 --> 02:21:18.899
Михаил Непряхин: по-моему такое есть что-то Подобное Там, а Можно одну ручку так закрыть вот

915
02:21:23.970 --> 02:21:36.030
Михаил Непряхин: Ммм, гаи в жизни Встречается все варианты и с цифрами встречаются и

916
02:21:36.170 --> 02:21:39.479
Михаил Непряхин: бывает что эти роботы раскиданы по разным местам

917
02:21:39.680 --> 02:21:51.560
Михаил Непряхин: ну наверное вы правы нормальный способ если вы сделаете группу из роботов и закроете ее авторизацией вполне рукей да

918
02:21:51.950 --> 02:21:53.569
Михаил Непряхин: пожалуй я право соглашусь

919
02:21:55.010 --> 02:21:59.850
Михаил Непряхин: и тогда не на записке, если будет делать ээ в каждом из кейс не надо будет делать проверку

920
02:22:00.280 --> 02:22:02.540
Михаил Непряхин: ну вот например, если ручка всего одна

921
02:22:02.760 --> 02:22:11.240
Михаил Непряхин: то как Будто бы аааа админа, можно и там закрыть ну какчуть эти варианты есть и так и Так можно сделать

922
02:22:12.210 --> 02:22:23.450
Михаил Непряхин: Так протестирование Зачем нужно понятно как сказать какой я силю но и надо самому написать шубу можно.

923
02:22:23.450 --> 02:22:24.530
David R: На вопрос.

924
02:22:24.530 --> 02:22:25.070
Михаил Непряхин: Давайте.

925
02:22:25.070 --> 02:22:41.420
David R: Вот интеграционным. Тестированием в пкедже мы написали клиент и сервер клиент понятно там много всего куча всего и вроде как клиента проверяет ручке нашего, сервиса который Мы написали Вот в пакейнтерном.

926
02:22:42.270 --> 02:22:50.330
David R: А Вот сервер это же не наш сервер который Мы внутри написали я вот смотрю в паки сервер и тут

927
02:22:50.590 --> 02:23:14.310
David R: ноуб отчет непонятно и непонятно как оно Используется в интеграционном тестировании вот Этот сервер Но и

928
02:23:14.310 --> 02:23:20.050
David R: ну Это даже Не Имитация. Нашего, внутреннего сервиса вот Это я Не понял зачем Этот сержант аждите Вечер.

929
02:23:20.050 --> 02:23:23.110
Михаил Непряхин: Это просто обертка чтобы вот это каждый Раз, не писать

930
02:23:23.190 --> 02:23:36.160
Михаил Непряхин: чтобы просто создать билдер это и

931
02:23:36.170 --> 02:23:45.170
Михаил Непряхин: там рэдис когда вы создаете Там какие-то Билдеры короче Это просто Хрупер такой помощник для того чтобы сбил. Дить Сервер Но он как бы

932
02:23:45.250 --> 02:23:54.829
Михаил Непряхин: Ну Вот он вэпе участвует то есть вот если, не посмотреть вот мы когда создаем нашу архитектуру в ране вот он здесь, в конечном итоге участвует

933
02:23:54.830 --> 02:24:11.000
Михаил Непряхин: вот и

934
02:24:11.220 --> 02:24:22.050
Михаил Непряхин: а вот этот По сервер но он вообще здесь По идее Не должен Лежать он же должен Лежать библиотекой как бы отдельно да да и вообще вот это все видите вот сервер вгерметрики,

935
02:24:22.460 --> 02:24:27.289
Михаил Непряхин: да вообще все вот это это может Лежать в отдельном репозитории

936
02:24:27.530 --> 02:24:39.909
Михаил Непряхин: вот а вот клиент ну его удобнее Держать здесь же рядышком потому что оно меняться было вместе и тут типа по Солиду в Принципе это логично его Держать здесь.

937
02:24:40.610 --> 02:25:00.690
David R: Нет смысла Их как-то разделить и и и.

938
02:25:03.080 --> 02:25:21.550
Михаил Непряхин: Сложный. Вопрос это и так если. Вы Влияем. На проект посмотрите Там. Вообще черт могут с Вами это просто. И ничего не понятно Из логики структуры папок ну согласен, инвалидно может запутать ну может быть правильнее было бы его назвать

939
02:25:21.710 --> 02:25:33.560
Михаил Непряхин: и вообще даже не в пк поместить а просто на верхний уровень и назвать по названию, домена ну типа у нас там вот профиль да и тогда бы надо было лучше бы назвать этот пакет

940
02:25:33.930 --> 02:25:46.619
Михаил Непряхин: и профайл клиент вот так вот Например, и тогда вы бы увидели что ну Это вот клиент а конкретного профайла То есть ну типа как адаптер Это Ведь у нас по Сути Мадапер написали

941
02:25:46.940 --> 02:25:48.909
Михаил Непряхин: просто переиспользуемая доктор.

942
02:25:49.450 --> 02:25:59.890
Михаил Непряхин: Поэтому да ну согласен инвалидно то есть название можно было бы Получше Подумать ну вот в этом стиле У

943
02:26:04.170 --> 02:26:09.439
Михаил Непряхин: как Раз, ему надо Попробовать что. То Написать и Возможная часть вопроса полетов в Концепции ясна

944
02:26:09.640 --> 02:26:15.030
Михаил Непряхин: Ну, Понятно тут без вариантов Вы сами все равно должны это пописать то Есть я Поэтому и

945
02:26:15.630 --> 02:26:18.440
Михаил Непряхин: э Это как бы экземппол такой хороший

946
02:26:18.610 --> 02:26:28.709
Михаил Непряхин: По Которому. Ну можно что-то изменять пробовать изменять и смотреть Но если Вы сами Кот Не будете писать то конечно тут, выйти, до конца не поймете

947
02:26:28.940 --> 02:26:37.680
Михаил Непряхин: надо хотя бы одну ручку да ну был у Меня была у Меня тема такая что я давал только

948
02:26:37.920 --> 02:26:39.300
Михаил Непряхин: два

949
02:26:39.540 --> 02:26:57.840
Михаил Непряхин: две ручки криэйт и гет аделит когда нужно было написать вам самим но вам ничего не мешает удалить вот удалите везде вот пройдитесь по дт удалите какие нибудь ручки и напишите заново с нуля

950
02:26:58.120 --> 02:27:22.160
Михаил Непряхин: и и мат так что клиент может семь Диппо Жить это выглядит как отдельная программа

951
02:27:23.400 --> 02:27:33.930
Михаил Непряхин: м ну. Видеть в семье все таки не Место, ему потому что он все таки библиотека понимаете это клиент это библиотека а сия мди лежат

952
02:27:38.010 --> 02:27:48.209
Михаил Непряхин: Аа приможениями, вот сервер это приложение да вот у меня тут, Еще Одно, приложение это сиднер чтобы заполнить базу данных ведь, Он тоже Мэйн

953
02:27:48.440 --> 02:28:00.450
Михаил Непряхин: и клиента Он не Он не в моем Пакете потому что у Него нету точки запуска понимаете это просто

954
02:28:01.100 --> 02:28:02.450
Михаил Непряхин: а библиотека

955
02:28:02.580 --> 02:28:17.779
Михаил Непряхин: это пачка функций. Они объединены конечно вот одной структурой и они являются методами Этой структуры но это просто пачка функций. А они все между Собой Так то независимы

956
02:28:20.390 --> 02:28:42.449
Михаил Непряхин: и и вариант Поэтому как бы

957
02:28:43.010 --> 02:28:56.759
Михаил Непряхин: главное Попробовать Он ждут под стаей профою Клиента и и

958
02:28:57.080 --> 02:29:12.880
Михаил Непряхин: что-то Отложилось понятно Что только Посмотрев лекцию там через полгода вы уже все забудете сто процентов тут надо Это рукаминую игру вот как Домашнее задание удалите какой-нибудь метод и напишите его с нуля. И вы Прям вообще До фигачу поймете

959
02:29:13.850 --> 02:29:14.660
Михаил Непряхин: вот

960
02:29:15.040 --> 02:29:27.990
Михаил Непряхин: Ладно все тогда Давайте а Там кстати это да ну я напишу Там же У нас шестнадцатая лекция сегодня была да Там надо было оплатить следующий месяц ну кто по местам платит

961
02:29:28.210 --> 02:29:32.050
Михаил Непряхин: вот ну все тогда давайте до следующего раза до вторника,

962
02:29:32.270 --> 02:29:34.330
Михаил Непряхин: все давайте всем спасибо всем пока.

