Михаил Непряхин: И всем. Привет так видно Смешно опишитесь Пожалуйста
Михаил Непряхин: так оно спасибо
Михаил Непряхин: а так мана значит сегодня им сегодня У нас Лекция
Михаил Непряхин: уже более как Сейчас будут лекции более практически живым смотреть конкретные решения, примеры, как писать приложение
Михаил Непряхин: вот в прошлый Раз, больше теоретически говорили, про архитектуру вот сегодня уже на конкретном примере значит вот здесь вот в
Михаил Непряхин: лекции. Пятнадцать У нас Сейчас пятнадцатый рецепт вот уже такое полноценное предложение
Михаил Непряхин: значит домен у нас профайл то есть это какой то сервис профилей
Михаил Непряхин: это не модульный Ну такой это не монолит это подразумевается что это микросервис и
Михаил Непряхин: микросервис в котором только один домен но вот собственно профайл
Михаил Непряхин: и видно значит вот поле с кейсом какие ну люди даже вот по контролерам какие У нас Есть ручки
Михаил Непряхин: У нас четыре ручки значит это создать профиль удалить профиль получить, профиль и обновить профиль это и
Михаил Непряхин: потом добавим еще ручку получить, все профили с Магинацией но
Михаил Непряхин: Она получает слишком сложно и сильно все усложняет пока Что вот на простом круге будем разбирать как вообще приложение строится.
Михаил Непряхин: А значит Предлагается обучаться Именно По вот этому шаблону но когда вы Поймете принципы
Михаил Непряхин: и ну как-то уже будете понимать зачем Мы вообще делим Код на части
Михаил Непряхин: То можете постепенно отказываться От каких-то Вещей Которые вам не нравятся например могут вам не нравиться для того что они
Михаил Непряхин: ну как бы
Михаил Непряхин: вот например, нагет профайл, у нас вот в дто всего лишь одно поле а я все равно использую для того метео для того чтобы получить. Профиль
Михаил Непряхин: я Все равно использую и просто и
Михаил Непряхин: но одно, в реальной жизни если. Вы Понятие где-то нужно для того Или Не нужно От этого вы делаете Или Не делайте
Михаил Непряхин: То же самое например, с интерфейсами вот здесь вот аа
Михаил Непряхин: диай он как бы такой более Классически правильный он через интерфейсы значит сервис у нас на текущем этапе он там постепенно вот меня усложняется То есть Мы Там кафку добавим ну вот пока вот как бы минимальный набор У нас с рэдисом который
Михаил Непряхин: по-моему даже Не задействован по-моему нигде Не используется да то есть он тут просто может просто есть вот а вообще Сейчас используется только; позгресс
Михаил Непряхин: а у нас тут уже сервис с реальной базой
Михаил Непряхин: и у нас есть вот четыре метода, для работы с
Михаил Непряхин: андомина, нашем то есть у нас вот наклеит профайл две ручки ну а остальные тут вот один к одному как и ручки репя на
Михаил Непряхин: нагет апте делит вот и соответственно от этого интерфейса в теории можно избавиться и напрямую работать в базе данных
Михаил Непряхин: да и и Еще можно избавиться от конструктора, на сущности
Михаил Непряхин: значит тут, смотрите у меня здесь вот в папке домен
Михаил Непряхин: а файл профайл и основное дто
Михаил Непряхин: это вот оно ой не твой основной основной инстинкт основная основная модель
Михаил Непряхин: вот называется профайл тут сойди с полями ну классические поля на создание обновления удаления ну вообще как бы Сейчас по сути Требования всех современных баз данных чтобы эти три поля были
Михаил Непряхин: а делить этот если у вас данные Нельзя удалять потому что зависит от домены часто данные нельзя удалять Ну Там по закону и либо наоборот Иногда по закону надо удалять короче по дефолту Мы данные не удаляем а просто помечаем
Михаил Непряхин: софт делит такой так называемый мы помещаем Что поле. Было удалено а на самом деле оно Осталось но если пользователь запросит то мы можем по-настоящему удалить
Михаил Непряхин: По закон тут поля а ведь имя Причем, оно типизировано сразу вот отдельным типом
Михаил Непряхин: Можно, конечно видеть вот этот вариант Можно, его так с Теньгами Держать
Михаил Непряхин: а можно типизировать дополнительно я вам показываю пример степизации для того чтобы вы просто понимали что так можно
Михаил Непряхин: вот ааа будьте вы это использовать в реальной жизни Или Нет ну Там потом решите потому. Что, когда, вы типизировать начинаете поля То м ну, Иногда в коде начинают. Встречаться проведения этих типов
Михаил Непряхин: потому. Что стринга это Не То же самое чтонейм и Их иногда приходится конвертировать
Михаил Непряхин: то же самое с возрастом Ведь у нас возраст план винтовый но мы его используем как отдельный отдельный Тип
Михаил Непряхин: Тайп Меймстринг, это типа волейболишек, да на типу Волей обыск Подытошку
Михаил Непряхин: вот и ээ статус У нас и нам
Михаил Непряхин: опять Же Только Ради, того чтобы
Михаил Непряхин: ну показать. Как с Ним работать что с ним вообще можете Столкнуться вот на статус
Михаил Непряхин: смотрите какой интересный статус значит Так то Он Винтовый то есть Он Тоже. Отдельно типизирован ну. Халява или обжиг
Михаил Непряхин: и используется йота
Михаил Непряхин: и грубо говоря вот здесь У нас изначальный статус он один Раз, указывается а дальше он потом просто плюс один делается ну вот и ешка подсказывает что тут, будет один два три-четыре вот а нон принято на левом делать
Михаил Непряхин: и здесь конструктор который принимает стрингу проверяет какой статус несет нас типа янам может быть в этих четырех статусах ну либо о нон если ничего не. Совпало не возвращает уже этот статус
Михаил Непряхин: и также мы статус
Михаил Непряхин: под из такого митя у нас интовый дефолтно можем превратить в стенгу нужно вот так вот ввернуть в треннгу, и Таким образом с ним Работать Это, артефакты. От. Линтера
Михаил Непряхин: линтер Пока Там слишком загружат Голову. Просто я не Стану очищать эти Теги
Михаил Непряхин: но линтер ближ к концу Мы посмотрим на стройки и Там основныелинтеры ну их Там около. Около. Сотни линдеров
Михаил Непряхин: вот у нас есть такой агрегатор. Линтеров вовселенд и вот Там
Михаил Непряхин: Мы можем с помощью файла конфига очень гибко управлять, какие мылинтры в каких случаях Хотим, включить отключить а это просто исключение когда Мы Не, Хотим, какое-то глобальное правило менять а вот точно Хотим, отключить конкретный Линтер
Михаил Непряхин: этот эта Команда что мы не хотим, линтить этот кусок кода
Михаил Непряхин: а это какой винтер мы хотим, исключить
Михаил Непряхин: а вот ну флаг какой то тут, варифает
Михаил Непряхин: и Встроенная структура у нас здесь То, есть у нас тут,
Михаил Непряхин: вернее у нас композиция То, есть если у нас вот Так То, это мэмэйдинг встраивание вот у нас тут композиция у нас в структуре Есть Еще другая структура вот она с эмейлом и с телефоном,
Михаил Непряхин: Зачем так ну просто чтобы завести лишнюю таблицу в базе данных чтобы побольше было таблиц чтобы показать пример то, есть это синтетический пример как вы должны понимать это просто Демонстрация,
Михаил Непряхин: как Еще У нас большая проблема что Нет реальных приложений
Михаил Непряхин: а на чем То учиться надо вот Поэтому это такое близкое к Реальному Написанному. Приложению Ммм
Михаил Непряхин: значит здесь У нас вы можете Увидеть джейсо Монтеги ну в общем-то У нас Мы с режиссером работаем если. Без этих Стратегов
Михаил Непряхин: То у нас просто поля в Рисоне будут вот так называться если Мы не Хотим? Чтобы они назывались. Как поля в структуре Мы можем кастоно указать как они как они будут называться.
Михаил Непряхин: Если у нас прочерк то это поле. Не участвует в джейсоне вопрос врисований Не будет
Михаил Непряхин: дальше У нас есть еще дополнительные Стратеги От авлитатора
Михаил Непряхин: простите У нас вообще в гошке много разных валидаторов вот один из вариантов это выледеет авалидатор в десять.
Михаил Непряхин: То есть уже десятая версия
Михаил Непряхин: и вот можно с помощью Интегов указать что поле обязательное, что его минимальное значение три
Михаил Непряхин: ну Это, речь идет. О Количестве если Это, Стринг, имен то Это, речь О Количестве букв то есть от трех букв до шестидесяти четырех букв
Михаил Непряхин: и про возраст тут он минимальный восемнадцать максимально Сто двадцать то же поле обязательное Ну а если Не Указаны остальные поля соответственно не обязательное
Михаил Непряхин: и Мы его здесь вылидаться что это имейл. А на Телефон если сто шестьдесят четыре. Это стандарт если Там википедии посмотрите ну короче суть в том что это Плюс с плюсом Начинается и Там в зависимости от Страны код Страны Но У нас Плюс семь в России
Михаил Непряхин: свой собственный а
Михаил Непряхин: вот значит это просто Штука для валидатора он тут, стоит и имеет один Раз, Создается и потом Переиспользуется Поэтому так вот ну он вообще и
Михаил Непряхин: довольно популярный но так выглядит странно
Михаил Непряхин: вот оно часто используется можно встретить
Михаил Непряхин: чаще всего в проектах горных вы будете иметь. Дело только вот
Михаил Непряхин: структурами то Есть только с моделями Но и как вариант Еще можно работать,
Михаил Непряхин: и даже вот без этих вот типов то есть классическая модель это вот просто здесь Стринги инты и все и больше ничего Нет то есть создается она путем просто Создания, структуры и заполнения ну и дальше перекидываться Там между слоями
Михаил Непряхин: если Мы хотим, м работать чуть более Поъективному
Михаил Непряхин: То можно создавать эти структуры через конструктор и конструктор будут получать поляну
Михаил Непряхин: и ну вот собственно делать за нас То чтобы мы сделали это руками но мы же тут могли бы ошибиться а здесь мы можем конструкторы это все прописать
Михаил Непряхин: написать тесты на это дело то есть как бы чуть более строже получается и мы точно не Забудем влидацию то есть видите Здесь сразу в конструкторе Происходит Валидация
Михаил Непряхин: ну чаще конечно вы будете встречать когда она делается отдельно. То есть этого есть у профайла у меня метод влидей
Михаил Непряхин: и чаще всего как это выглядит руками просто создается структура заполняется поля а потом дергается метод влидей
Михаил Непряхин: вот но через конструктор это, чуть более надежнее но опять. Же это,
Михаил Непряхин: скорее Не правило то есть как правило все-таки конструктора, Не бывает но люди более продвинутые. Которые приходят с других Языков, каких-то хороших. То они любят Создавать объекты через конструктора
Михаил Непряхин: единственное это такой компромиссный вариант.
Михаил Непряхин: Что У нас Поля все Видите Они публичные и вот так По-настоящему Подиуму
Михаил Непряхин: Полеты должны Быть приватные и доступ к Этим полям должен Быть Через гетто и сеттеры
Михаил Непряхин: Но дело в том что как Бы типичное гожное апии оно
Михаил Непряхин: очень простое как правило То Есть Мы Не делаем черт Суперсложного у нас логика Не какая-то развесистая
Михаил Непряхин: плюс Мы используем объекты как бы
Михаил Непряхин: в баундет, контексте то есть в ограниченном контексте и Поэтому как правило совсем совсем Подичному делать
Михаил Непряхин: и ну как будет не имеет, смысла оно усложняет код
Михаил Непряхин: оно будет Выглядеть! Немножко странно для читающего потому что ну когда вы делаете приватные методы это и тестировать становится сложнее ну в общем там Появляется множество различных сложностей
Михаил Непряхин: а
Михаил Непряхин: Но если вы привыкли до этого работать в таком, стиле то вы можете в Принципе попробовать и посмотреть как оно будет заходить ну я рекомендовал Бы все-таки Делать эти поля публичные
Михаил Непряхин: То есть вообще как бы этот метод вот этот способ организации кода называться это анимичные модели
Михаил Непряхин: вот а вот Если бы у нас все поля были приватные и вот мы тут же используем конструкторы то у нас получается более богатая модель, наверняка ведь такой термин богатая модель вот здесь подход нечто средний между Нимичной и богатой
Михаил Непряхин: и плюс еще если Мы понимаем что конструктор нам больше мешает чем приносит пользы То Мы даже от конструктора, отказываемся
Михаил Непряхин: вот и
Михаил Непряхин: ну короче вот тут, как-то вотвалидируются они но Таким образом оно просто само Там подтягивает вот эти влидой Тэги и Там Не в Инвалидацию,
Михаил Непряхин: и здесь уменьши Метод проверяющий, Не удален ли профиль
Михаил Непряхин: просто проверяется поделей итет если делиттеет Не пустой значит Профиль Удален Не Мы его Не Показываем ну Например? Там в Методе гет
Михаил Непряхин: вот здесь же в доменной модели У нас есть ошибки
Михаил Непряхин: ошибки принято Делать просто переменными глобальными и есть вариант опять же более м если Мы Хотим,
Михаил Непряхин: такой поиграть в более серьезный энтерпрайз, еще можно перед ошибками добавить номер ошибки если, там Придумать какую-то свою систему
Михаил Непряхин: ну вот этих вот наименований этих ошибок и Везде добавить коды ошибок к а это
Михаил Непряхин: как вы тоже можете считать Что У вас есть. Такая опция То есть. Если вы очень часто общаетесь с Пользователями и Они Вас задал бы тем что Они могут нормально ошибку Скинуть Или Еще чего-нибудь то Циферки в ошибках Они Всегда Помогают ну найти, то место где эта ошибка произошла
Михаил Непряхин: вот но дефолт на это не принято дефолтно принято просто как то Там на английском Языке Писать Что за ошибка и ее показать.
Михаил Непряхин: А и значит можете здесь
Михаил Непряхин: да Извините а и
Михаил Непряхин: здесь значит рядом с файлом с Моделями вы можете Увидеть файлик который называется также с нижним, подчеркиванием Тест
Михаил Непряхин: значит так принято писать юни тесты в гоу Все и
Михаил Непряхин: лучше всего если вы назовете Пакет Тоже. С Нижним подчеркиванием, тест
Михаил Непряхин: для того чтобы тестировать Только Публичный Эльпий
Михаил Непряхин: это полезно потому что приватный или пиа Нет смысла тестировать ну вот он здесь в Принципе есть публичный, то есть только вот это Мы не увидим
Михаил Непряхин: вот и ну короче говоря такой лайфхак если, вы назовете Дайм вот этот пакет как-то по-другому
Михаил Непряхин: как угодно По другому то Есть если, будут отличаться От
Михаил Непряхин: в Других файлах как он назван тогушка даже не скомпелируется
Михаил Непряхин: ну вот единственное исключение для тестов можно через нижнее Подчеркивание назвать так пакет тестов
Михаил Непряхин: и оно нормально будет работать, просто как Будто, бы мы находимся в другом пакете
Михаил Непряхин: и Таким образом Будем смотреть на Наш пакет как бы извне вот здесь
Михаил Непряхин: юни тесты юни тесты когда Дойдем Там до теста потом посмотрим ну
Михаил Непряхин: короче Они начинаются с теста здесь сигнатура, Всегда, типичная вот этот. Пакет эстинг, т вот А дальше идут тесты у нас есть пакет тестифай шикарный хороший для тестирования и потом когда протесты будем говорить и про юни тесты и интеллекционные мытачуют посмотрим
Михаил Непряхин: также в доминиении Есть У меня тут вторая таблица Она с пропертями с какими-то свойствами ааа
Михаил Непряхин: здесь что тут Про Файлайди Теги
Михаил Непряхин: с майей Стегов короче просто какие-то надуманные надуманные какие-то вещи чтобы создать Еще одну таблицу в базе данных
Михаил Непряхин: и тоже видите У нее свой конструктор вот этот данный принимает дает уже сбил, жену готовую готовую модель
Михаил Непряхин: Так ну статус и Мы Посмотрели
Михаил Непряхин: подождите как бы когда вы знакомитесь, с приложением вы все равно Всегда, Начинаете замена то есть что у нас за домен как бы по моделям домена ну более менее уже понятно Что с Ним Можно делать
Михаил Непряхин: Так посмотрим как выглядит база данных Которыми он полностью дело складывает Так Баз, данных Подрублено
Михаил Непряхин: Так Вот У нас получается Здесь
Михаил Непряхин: аа три таблицы вот основные профили находятся Здесь свойства вот эти какие то надуманные свойства дополнительные для профиля
Михаил Непряхин: и таблица с Миграциями ну промиляции тоже отдельно. Поговорим
Михаил Непряхин: Раз, надо поднять доктор, компост чтобы подрубиться на базе чтобы это Сделать Здесь есть файлик доктор, Композ, куинн
Михаил Непряхин: а доченьком позе ну вот у нас проброшен подлес закомментировано
Михаил Непряхин: эп наше приложение то Есть если мы захотим запустить наше приложение внутри доктора композа
Михаил Непряхин: то Мы это просто раскомментируем и у нас тут доктор композиев и доктор файли все там уже правильно прописано
Михаил Непряхин: просто приложение запустится. Внутри доктор хамза но как мы уже делали до этого
Михаил Непряхин: По дефолту мы наше приложение разрабатываем просто локальном Для науков? Костен
Михаил Непряхин: о Зависимости запускаем в доктора композитора
Михаил Непряхин: Какие у нас есть зависимости ну Вот нам, нужен полос ну тут указан на один пароль и каким. Портом он торчит наружу
Михаил Непряхин: нам, нужен радис ну тоже соответственно какой это сдукер
Михаил Непряхин: затокиркома бо от скачиваться с доктором хаба скачивается образ робби тоже каким, портом мог бы торчать наружу Юай
Михаил Непряхин: м-м для погреб У нас Ева Есть Виды Е если У вас в скот То тоже Есть планы Там подрубиться, посмотреть базу,
Михаил Непряхин: Ну короче говоря с Юаем для погреб Проблем, Нет
Михаил Непряхин: для радиса Мьювай Какой То нужен Поэтому для разницы используется Юай
Михаил Непряхин: и он какой-то Там просто элементарный вот решается на этот порт и просто чтобы можно было посмотреть в каком значении у нас какие перемены находятся,
Михаил Непряхин: и здесь сразу, же Проброшено обрубили эти вещи
Михаил Непряхин: темпо хранятся. От рейсы в прометелоси метрики
Михаил Непряхин: и графаны все это связывают и ну в общем-то это юай для того чтобы смотреть эти метрики логи и трайсы вот я тут просто заранее их все проббросил чтобы они были ну если, вас сильно Тормозит с ними можно просто закомментировать оставить только на редис и пользы
Михаил Непряхин: друзьям тут как бы стараюсь показывать ну вот сразу.
Михаил Непряхин: Как выглядит боевое приложение Поэтому тут весь джентльменский набор сразу. Же идет
Михаил Непряхин: так зачем ставить режиссантек на острах Домина, если она использует если Использовать то лапат
Михаил Непряхин: ну смотрите Ммм Ну как бы вопрос хороший
Михаил Непряхин: Вообще как бы есть две школы значит первая школа, говорит что никаких, Стратегов в доменных моделях
Михаил Непряхин: а почему так говорится, ну для того чтобы как бы Не замусоривать типа Это ж какой-то мусор гитарты факты ну от ногу так Построен Да То есть как бы в гоу удобно работать. С моделями когда они у них есть тяги
Михаил Непряхин: и когда я работаю для того
Михаил Непряхин: я и Везде мбежу к себе, просто этот профайл а у Него уже все стратеги есть то есть если, бы у меня здесь арктиков не было то тогда бы пришлось создать
Михаил Непряхин: гто упрям вот здесь внутри ну То Есть просто, Повторить вот это все То Есть мне пришлось бы создать для того объект ну Там вот что то типа
Михаил Непряхин: что-то типа того и вот здесь уже были бы прописаны все эти Стратеги и мне пришлось бы делать Мапинг, из датышной Модели в Доменную и обратно короче Это дополнительный код
Михаил Непряхин: и если Мы начинаем отвечать на вопрос зачем ту
Михаил Непряхин: он ну там доводы не такие серьезные
Михаил Непряхин: а как доводы в противовес а в противовес доводы так сильно удобнее когда у вас и
Михаил Непряхин: вот ну если Вы прям Я под приверженец Что все Раз, для того
Михаил Непряхин: Ну просто. Вы будете писать Больше кода Но если Вы понимаете зачем это нужно ну Он тогда Окей если. Вы не Можете. На этот вопрос ответить зачем ну то
Михаил Непряхин: Делайте Так Проще лучше, а и
Михаил Непряхин: Вот значит чтобы поднять доктор, компост есть вот в мейк файле команда
Михаил Непряхин: ну здесь сразу же тоже вот какие-то такие из жизни Команды которые могут потребоваться ну? Вот то что касательно доброй композы поднятия вот они об даун
Михаил Непряхин: ну? И запуск тестов
Михаил Непряхин: видите вот здесь добавлен фоуни тест ну? Потому что есть папка тест если бы этого не было то ошибка получалось бы не получалось запустить тест
Михаил Непряхин: они с покрытием сразу Выводят на какой кавр: команда запуска интеграционных тестов
Михаил Непряхин: Установка программки для Накатывания миграции используется Не играет
Михаил Непряхин: у нас вообще Две популярные программки до эмиграции От эмиграции и Гуз Новыми играют все-таки популярнее
Михаил Непряхин: и вспомогательные Команды для создания миграции Накатывания миграции Вверх, Откатывания миграции Вниз
Михаил Непряхин: и Команды генерации Так как в гоу довольно часто Используются какие-то генераторы. То можно этой командой запускать все генерации. Чтобы отдельно. Их Там Не прогонять таммолки разные создавать клиенты Там Серверы генерировать вот можно это Делать Этой командой
Михаил Непряхин: и команда для Установки мокри а мокарь это библиотека для генерации моков просто дойдем потом посмотрим все
Михаил Непряхин: вот нас Сейчас интересует ап надо поднять на доктор компост вот Заходим папку занятиями делаем мейкап
Михаил Непряхин: и Запускается доктора компост у меня уже выкачены были все зависимости
Михаил Непряхин: ну вот Поэтому он просто просто запускает
Михаил Непряхин: и я оставляю я его не запускаю в режиме демона, то есть у меня тут Нет Д он просто Запускается и работает потом я нажимаю контракт он все закрывает
Михаил Непряхин: и значит что тут Интересного есть ну. Во-первых понятно что Поздравля Давайте на Позднем посмотрим Поздравляю вот Сейчас проверим
Михаил Непряхин: обновилась а
Михаил Непряхин: чтобы подрубить подгорю просто Делать вот выбираете здесь По грю и указываете там около, хост порт, юзер Паспорт, и дэйт бэйс
Михаил Непряхин: все из все из драком постфайла вот они тогда просто все указываете и оно работает так начнет первая таблица
Михаил Непряхин: ну вот эта доменная модель которую мы только что смотрели вот она просто здесь
Михаил Непряхин: эта таблица тоже заполнена одним значением вторая таблица со свойствами
Михаил Непряхин: вот она Тоже тут заполнена какие то вымышленные свойства
Михаил Непряхин: и таблица с миграциями это Просто Номер эмиграции и что все ок, найти, поведение штана чистая все нормально
Михаил Непряхин: а дальше что у нас Еще есть рэдис
Михаил Непряхин: ну вот можно посмотреть на радио сиари вот он поднялся на порту Восемьдесят, Восемьдесят, один
Михаил Непряхин: окку хост Восемьдесят, Восемьдесят, один ключе когда Мы Там с рейсом будем, работать вот можем здесь увидим ключики Которые Мы добавили
Михаил Непряхин: в Принципе Очень Простой ай
Михаил Непряхин: М-м ничего Лишнего. Темпа У него, Нет ю а Я потому Что и У прометелса Есть юай у темпа юали митрофана
Михаил Непряхин: прометелса юай
Михаил Непряхин: не знаю единственный или нет Разглядел да есть вот он вот я здесь Можно посмотреть в метрике а но опять же это про метролся дойдем
Михаил Непряхин: диметрик и уфаны вот Триста три тысячи первый порт почему-то трактичным оказался занят
Михаил Непряхин: какой-то фигню я так и не понял что это такое но уж не стал разбираться
Михаил Непряхин: вот и здесь можно будет смотреть метрики боги тоже все бом смотреть оно уже там наполовину Все настроено
Михаил Непряхин: вот Поэтому Всякие настройки оперобили те вот находятся вот здесь Папка в зломбилити и здесь отпрометусы настройки
Михаил Непряхин: от темпа настройки ну? Это просто
Михаил Непряхин: у меня тут уже один Раз я Там вспомню Что чадаю пишу и потом забываю Что тут значит и чтобы разобраться опять только счетом репети
Михаил Непряхин: графа она тут, даже борт, настраивается и вот тут все настройки даже барда
Михаил Непряхин: а дата соусы да что графана спрометрилась он работает из темпа в общем это потом Дойдем до обзеро билеты и очень подробно об этом всем Поговорим
Михаил Непряхин: пока пока касаться не буду да так дальше
Михаил Непряхин: Что тут Еще на верхнем Уровне есть
Михаил Непряхин: а ну понятно дело Гомо от файл как без него с гусамами всеми
Михаил Непряхин: довольно много зависимостей как видите ну вот такой типовой Проект, примерно столько зависимости имеет ааа
Михаил Непряхин: доктор файл такой же который вы Увидели до этого я вам уже его Показывал более-менее боевой
Михаил Непряхин: ну здесь еще добавляются безопасниками какими-нибудь какие-нибудь вещи типа чтобы Мы работали Не от рута а от пользователя ну и вот пожалуй из Такого Серьезного все что тут, Меняется ну как бы с этим можно работать
Михаил Непряхин: мокари это для генераций Моков. Файм настроек тоже тут
Михаил Непряхин: невозможно это запомнить просто один Раз настраиваться потом если что-то надо изменить и помочь Сейчас в репетиции
Михаил Непряхин: Ноги ты гнор тут в общем-то тоже ничего необычного.
Михаил Непряхин: Дальше Павел у нв значит файл нв
Михаил Непряхин: Это Переменное окружение Которое использует наше приложение когда запускается
Михаил Непряхин: Ну Вот минимально нам нужно как, у нас называется приложение его версия По сим веру от блогера то Есть Вот у Меня тут Я Всегда делаю себе настройку прийти консоль Для того чтобы видеть логи
Михаил Непряхин: Сейчас покажу как вот Если, я запускаю Сейчас запустим приложение
Михаил Непряхин: мне Сейчас прийти консоль включено в логи вот такие человеческие красивые чтобы Удобно было нужно Нажать сразу в Строчку перейти ну и в общежитии, они раскрашены
Михаил Непряхин: а но на проде-то это Не, нужно на пороге. Нужны жизнь свои налоги Поэтому здесь просто на пороге. Отключается
Михаил Непряхин: вот ты Еще супер запустим
Михаил Непряхин: ой ты видите вводят жизнь со налоги вот и многие люди страдают вот так вот зачем-то смотрят на логи вот но Это неудобно Поэтому для разработки я Всегда, Делаю этот важок чтобы Можно Было нормально По-человечески Слогами работать
Михаил Непряхин: вот а Ну, это уровень Логирования У Меня, самый низкий Дебаг, и Там По возрастанию инфо
Михаил Непряхин: и Ворнинг, ирар и фатал фотоу сразу закрывают Приложение это настройки Для таисов Ммм
Михаил Непряхин: ну опять же поговорим когда правдера Перейти вам говорить
Михаил Непряхин: это настройки для пазгри взятые из доктора. Композа и настройки рейса тоже взяты из Только композа да
Михаил Непряхин: так как здесь у вас могут быть
Михаил Непряхин: пароли реальные ну как то что, реальное ну обычно используют окружение либо локальное ну вот как здесь мы Сейчас. Запустили либо вы можете подключиться
Михаил Непряхин: под впном к вашим деф средам либо, где в контур губернетиса ой не убирайтесь а ну там Нас база интересует возможно где в
Михаил Непряхин: базе погреб подключиться, либо, можно кьюатовской базе подключиться, ну там
Михаил Непряхин: в стыджовой базе левиафской встречу ад это вот типа среда, между делом и продом
Михаил Непряхин: и здесь у вас будут реальные логины по роли к этим средам то Есть вы допустим не запускаете? Локальное приложение но подключаетесь к кафке тестовой и к позлее тестовой
Михаил Непряхин: кризис вы можете соответственно подключиться и у вас вы занимаетесь разработкой а данные меняются
Михаил Непряхин: в тестовой позгреве Или в тесторикавке Или в тестом рэдисе и вы таким образом как бы не тратите время на депой вы локальностью разрабатываете
Михаил Непряхин: и смотрите как У вас Там на Реальных базах все работает
Михаил Непряхин: ну Или допустим сперва вы на вокальные все проверили потом здесь, пароли поменяли на юартовские Там настырьовые Поэтому удобно
Михаил Непряхин: во Первых Раз, здесь могут быть пароли принято файл. И нв делать вгитый гно
Михаил Непряхин: я его вам тут специально оставию чтобы Проще было это все дело запускать Но в жизни он игнорируется ну как, бы я так и сделал я добавил, просто я Не удалил, этот файл Поэтому он здесь остался
Михаил Непряхин: вот а принято просто делать копья этого файла
Михаил Непряхин: удалять пароли если они тут реальные есть ну там типа как-нибудь продолжить
Михаил Непряхин: как-нибудь вот так У делать, или просто пустым наставлять и когда будете запускать приложение оно вам не даст допуститься оно вам скажет что У вас не указан этот пароль и Поэтому вы это не забудете
Михаил Непряхин: и просто делать копию и есть конфликт для стоит джан вот вы его там создаете а ив китгнор добавляете
Михаил Непряхин: и у вас соответственно он не уезжает никуда у вас здесь Всегда, актуальный. Пароль и все Что надо
Михаил Непряхин: а вот чтобы у вас тоже был
Михаил Непряхин: ну припозиторе он где Вы Там экземппом называете
Михаил Непряхин: вот и его Уже в гитаре не добавляете его уже добавляете соответственно на этот Мгид ну. Только здесь по роли надо Будет убрать чтобы они туда. Не Попали здесь еще бывают часто сертификаты откавки Поэтому тут, такие длинные бывают перемены прямо
Михаил Непряхин: с реальными сертификатами кавказскими ну и соответственно Тоже. Не, надо Вги добавлять
Михаил Непряхин: вот и в принципе, вот с Этими Файлами я Иногда довольно удобно работать на и
Михаил Непряхин: да даже гиту бывает Можно подключиться Только через вулкан
Михаил Непряхин: рабочий вариант который вам выдадут на работе.
Михаил Непряхин: Ну и значит Про конфигурацию да значит как конфигурировать наше приложение но ценности вариантов в конфигурации же много
Михаил Непряхин: то есть у нас есть какие то переменные и мы Их просто должны как то Внутрь бросить
Михаил Непряхин: значит самый. Правильный самый. Лучший способ Делать это Через переменное окружение ну вот собственно как здесь, все показывают в лучшую практику
Михаил Непряхин: а те перемены которые имеют какой-то понятный дефолт Мы
Михаил Непряхин: Раз, посмотрим как это дело делать мы прямо Там в коде их и указываем
Михаил Непряхин: а суда выносим в конфигурацию то что обязательно надо указать или то что важно или то что мы хотим, посвятить
Михаил Непряхин: эээ как именно будет конфигурироваться ваше приложение вот это у всех по Разному, то есть либо там это
Михаил Непряхин: в гитла Пайпайне ся там будете Прописывать либо это
Михаил Непряхин: Иногда в доктор Файлах что-то Делают, Иногда вот так как вы Видите Делают, через дот января файл в общем
Михаил Непряхин: это бывает По-разному но суть в том что лучше если это Сделано Все равно через Переменное окружение Не Важно каким, способом
Михаил Непряхин: а как Делать не очень Хорошо через ямглы через томулы
Михаил Непряхин: а через джинсы он через джинсы он форматы вот Это Делать не очень. Удобно ну Джисон конечно вообще не встречается но вот я Мол и то Мол встречаются
Михаил Непряхин: особенно, ямал любят а и конфигурации яблоко бывают Очень большие Очень длинные плюс есть иерархия
Михаил Непряхин: когда у нас приложение подключается то у куба
Михаил Непряхин: а куб Же будет запускать приложение да в губернетис и у Него Тоже есть переменное окружение он их может перезаписать то есть я тут Указал одну
Михаил Непряхин: Но важнее та которая будет в кубе Поэтому она Перезапишется
Михаил Непряхин: а плюс У нас Еще Есть Внутри приложения Тоже перемена и она Тоже имеет, какое-то значение дефолтное
Михаил Непряхин: Но соответственно иерархия такая что которая внутри приложения. У нее наименьший приоритет которая вот здесь Мы Там своим образом каким-то настраиваем типа через файл тут января следующий приоритет и самый высокий приоритет у куба
Михаил Непряхин: вот какой куп какую переменную куб там себя прописал такая имеет приоритет
Михаил Непряхин: если вы еще к этому всему добавляете яму конфигурацию то вы ну большой шанс запутаться Сложнее все это искать понимать как это чего работает Поэтому желательно всю конфигурацию писать из одного места потому что как бы вариантов это еще можно из разных мест все конфигурировать
Михаил Непряхин: вот и не использовать яму то есть яму это ну плохая Практика это и
Михаил Непряхин: где Находится конфик который уже Вот приложение Он Находится Вот здесь файли конфигура в пакете конфигура конфига
Михаил Непряхин: ааа значит я делаю его на верхнем уровне исключительно для того чтобы тот кто залез в сервис быстро, его нашел
Михаил Непряхин: и его могут искать Много кто ваш, коллега а Де вопс
Михаил Непряхин: Так хорошо кто угодно кто-то из эксплуатации кто кто кто тушит пожары когда вас Нет на месте Или ночью
Михаил Непряхин: и важно чтобы человек Быстро нашел этот файл конфига и посмотрел какие Там переменные окружения в дефолте установлены
Михаил Непряхин: ну и
Михаил Непряхин: и соответственно на верхнем уровне где нибудь тоже будет как То конфигурироваться ну не обязательно через Год Января через Пайплайн
Михаил Непряхин: файл тоже там будет Список этих Значений вот примерно то же самое только на его Месте
Михаил Непряхин: а Так михаил в этом Проекте Используется чьи или сценарные Цифры чьи ну. Как бы смотрите Серверта используется стандартный
Михаил Непряхин: Но Роуд используется чи Поэтому тут на Ваш, вопрос роутор чей Да
Михаил Непряхин: Да я рекомендую вам Использовать чироутер Потому Что
Михаил Непряхин: мы Сейчас. Поговорим еще Про это
Михаил Непряхин: так вот значит основной конфликт вот он живет в этом месте структура называется. Конфликт
Михаил Непряхин: и это вспомогательная структурка потому что нельзя отнести конкретно к какому-то пакету вот Поэтому она тут отдельно сделана
Михаил Непряхин: здесь у нас как вите тоже есть стратеги но они уже используются другой библиотекой они уже не, адресованы ведь нквд конфликт это такая библиотека
Михаил Непряхин: и вот она которая с Помощью этого тега
Михаил Непряхин: стратега берет переменное окружение из Этой перемены и помещает собственно с поля
Михаил Непряхин: флаг реку означает. Что, перемены обязательны для заполнения если мы вот здесь забудем а указать эту переменную,
Михаил Непряхин: и запустим приложение то мы получим
Михаил Непряхин: видимо надо чтобы вообще ее нет да то мы получим от этой библиотеки
Михаил Непряхин: аа довольно хорошая довольно хорошая ошибка что Вот такой то ключ пропущен назначение ну и Вот как бы я запуститься не могу
Михаил Непряхин: есть другая хорошая библиотека Ммм которая мне очень Раньше. Нравилась клин январь
Михаил Непряхин: действительно Классная Библиотека Она как То написана изящнее поудобнее и пользоваться чем вот Этой
Михаил Непряхин: но к сожалению она не пишет вот этого человеческого нормального Названия то Есть здесь Эги похожие вот на переменную ну короче
Михаил Непряхин: плюс минус функционал тот же самый,
Михаил Непряхин: вот но к сожалению Дурацкая. Ошибка то есть Рута библиотека Не пишет какое поле пропущена и это просто ужасно то есть если вы Получаете, Ошибку
Михаил Непряхин: У вас в Ошибке Она пишет Что Конкретное поле какое-то Незаполненное а мне Не надо полю мне какая перемена и окружение-то Не указано вот а эта библиотека позволяет это сделать вот Поэтому мне
Михаил Непряхин: нравится эта библиотека больше
Михаил Непряхин: и третий фрожок есть у нее то есть вот это знак кое какая перемена окружения это что она Обязательно ну если его Нет значит не Обязательно
Михаил Непряхин: а третий важный это дефолтное значение вот например, У позгри выглядит конфликт так здесь Нет Фортного значения Мы еще чего-нибудь Найдем хотя Это про сервер
Михаил Непряхин: вот значит вот конфиг Этотп, Сервера дефолтное значение порта восемьдесят восемьдесят
Михаил Непряхин: и соответственно Разума дефолт уже указано не надо его Определять вот здесь файли но если Мы хотим? Таки поменять его на другом парте запустить то мы просто ее добавляем и говорим что Ну, там
Михаил Непряхин: восемьдесят один восемьдесят один порт и она переопределится то есть дефолтное значение перетрется
Михаил Непряхин: вот и благодаря вот этим вот дефолтным значениям мы экономим много на конфликтах начнут
Михаил Непряхин: вряд ли мы часто будем, менять порт приложения зачем его конфигурировать как-то отдельно он Дефолт Ему задаем Мы все и живем с этим если что Да Мы Можем переопределить но этот дефолт нас устраивает
Михаил Непряхин: а дальше значит угожно в
Михаил Непряхин: укошника общика Это беда с организацией кода у типичного гошника беда с организацией кода Конфигов
Михаил Непряхин: Почему то Конфиги Делают. Отдельно от пакета, к Которому конфликт относится это прямо, вот типичная проблема.
Михаил Непряхин: Посмотреть Лучшая практика это помещать файлы конфигурации
Михаил Непряхин: в пакете к которому они относятся
Михаил Непряхин: логично суперлогично но вот это прям беда то есть у нас есть пакет с настройкой хтп, сервера
Михаил Непряхин: он Живет в пкк вот это такое серо и файл, конфига тоже живет
Михаил Непряхин: в этом же пакете хотят про сервера то есть вот настраиваться? Хотя и По сервер
Михаил Непряхин: вот файм конфига от него то. Же самое с спасгрой. Значит вот у нас есть конструктор Для создания Соединение
Михаил Непряхин: видите как бы Находится в пг потому Что Соединение с сгрой Мы создаем Часто а этот Кот никогда Не меняется чтобы Не копировать его Мы просто сделали небольшой пакетик где все необходимо поместили
Михаил Непряхин: и конфиг для создание соединения он Находится здесь же рядышком живет и пакет принимает этот конфликт Это во-первых
Михаил Непряхин: конструктор вернее принимает этот конфликт во-первых это избавляет чтобы здесь очень Много пробрасывать разных значений у нас мы Всегда, конфликт пробрасываем и все просто
Михаил Непряхин: витя, даже вот у меня вот вот это такой сервер казалось бы тут, общая одна строчка в конфеде но смотрите я все равно пробрасываю конфликт здесь есть та же самая история как с дто ну просто чтобы не думать, чтобы не думать, так проще. Ну и мало ли я добавлю сюда потом какие-нибудь Э еще
Михаил Непряхин: какие-нибудь тайм-ауты и Мне Не, надо Будет здесь ничего Сигнатуры менять нигде Не, надо Будет ничего менять вот я просто взял и добавил. Если, это как бы просто удобно
Михаил Непряхин: и так далее свой конфликт у блогера он живет файли блогера витя здесь тоже Дефолт и есть духовный уровень ира вот Политика консультант выключена
Михаил Непряхин: а тезиса тоже настройки и от хтп клиентов
Михаил Непряхин: вот и здесь небольшой конструктор для Него значит я вот Этой строчкой
Михаил Непряхин: сперва загружаю то что у Меня файля дот янва
Михаил Непряхин: и потом я уже проверяю переменное окружение
Михаил Непряхин: и если Там переменные окружения совпадают с теми которые были То они Перезатираются То есть они будут измененными. Строчками Это еще другая библиотека голдуд инвэ она вот просто портит ей инфаймы и превращает их в переменное окружение
Михаил Непряхин: как бы уже внутреннее а так гриба голодеет янга воротажа
Михаил Непряхин: про Сортировку импортов Давайте сразу. Поговорим значит значит есть У нас такое явление как сортировка Импорта это и во-первых
Михаил Непряхин: можно об этом особо Не Париться а им ты просто Там, доверять пакет чаще всего
Михаил Непряхин: ну если конфликту придется руками Разруливать но чаще всего вы просто Автоматически и оно само забавляется
Михаил Непряхин: и принято вверху помешать из стандартной библиотеки Пакеты потом помещать этот фронт пожди Так называемый фред парни ферд пади
Михаил Непряхин: короче вывод
Михаил Непряхин: е потом Идут Пакеты которые уже принадлежат нашему приложению Там, и
Михаил Непряхин: Можно настроить китаяшки начинают настраиваться. Виды е ну вот Конкретно в голландии
Михаил Непряхин: аа вот обнимается Импорт. Его здесь можно натыкать
Михаил Непряхин: как оно будет Выглядеть. То есть есть разные стили. Можно вот в таком силе с сатаном в таком разное вот натыкать в разный конфликт мне больше нравится так и принято по жизни тоже обычно так
Михаил Непряхин: это и Что бы оно Еще Автоматически сортировалось есть и
Михаил Непряхин: вот ну даже если, там бардак если, там темлить до вас не докапываться то вообще пофигу на самом деле а Раньше чего-то там все Парились по этому поводу Сейчас по-моему уже отпустил и всех ну. Не отсортированно ничего страшного
Михаил Непряхин: а если не использовать город январь только и на конфликт как загрузить перемены
Михаил Непряхин: а тогда вам придется их указать в
Михаил Непряхин: ну либо есть куча Способов да
Михаил Непряхин: аа вдруг рафаэль их можно указать вот здесь и как бы они пробятся в приложении
Михаил Непряхин: аа их Можно указать в гитлабе. И они на этапе сборки добавятся, и Можно указать в кубернетисе
Михаил Непряхин: и а как они в губернаторы попадают тоже тысячу способов
Михаил Непряхин: ну чаще всего либо из файла Гитлаба либо из хельсин Позитория и Нет Одинаковых Конфигов и
Михаил Непряхин: вот Но какой-то способ он все равно Предложит, как Это сделать То Есть, ну я вам предлагаю прямо на Тупую в Простую вот прям берите из точка ен Вафайла
Михаил Непряхин: и и ну и какие Области. Дня секреты у вас строятся, локальным Боту проблемы будут
Михаил Непряхин: в проектах чаще используется стандартный лентор. Реформатор. Или какие свои правила и библиотеки подтягивают и стандартный линдер Там
Михаил Непряхин: все выключено Там почти нет лидеров айлик с линтерами
Михаил Непряхин: я вам потом дам ну там он такой увесистый большой большой линтер а форматор
Михаил Непряхин: можно ли использовать либо стандартной голыхнутые либо. Более продвинутый гоуфунд гуфунд Это
Михаил Непряхин: короче Голая Фмте на максималках. Я Еще Использую с экстра флагом
Михаил Непряхин: ну вот Настройки такие чтобы оно работало а устанавливается оно заходится Гоуфунд
Михаил Непряхин: это круче От. Чувака который в угле разработал и вот Он написал более строгие Голые хмты
Михаил Непряхин: вот Он Так устанавливается, говен стал. И соответственно он оказывается, У вас в папке Голубин
Михаил Непряхин: здесь вот есть примеры Что он делает более строже третий случай он фиксит
Михаил Непряхин: лишние Стволочки и вот видите умирает ну, прочу много чего делать я его использую вместо гоффм т е вот у меня, тут, включен конечно голос фмт
Михаил Непряхин: но его можно вот выключить и вот Будет просто этот был фунт
Михаил Непряхин: какой аналог тоже должен быть в Этом то есть при каждом сохранении файлы оно автоматически накатывается, ну типа вот стандартный формат Например вот Он где Строчку Не Удалит Я контр вас, нажимаю
Михаил Непряхин: Ведь он удаляет Если У меня он не включен включен стандартный Сейчас Проверим
Михаил Непряхин: митя не Удаляется строчка вот Поэтому стандартный
Михаил Непряхин: мне не очень нравится А вот этот более строгий вот он соответственно где это умирает автоматический
Михаил Непряхин: а если есть не трофейсы которые импровизируются в разных монолях.
Михаил Непряхин: Их ставить в папку типакома или написать Заново там где используется
Михаил Непряхин: Не То что, Заново просто где используются интерфейсы пишутся там где используется ну папку Коман лучше Не Называть
Михаил Непряхин: как бы короче можете Сразу, забыть про название Коман утиилс липс покэ хелперс круче
Михаил Непряхин: думайте лучше над Названиями как как Назвать Пакет Куда его поместить Пусть. Лучше это будет пакет всего лишь с одной Функцией
Михаил Непряхин: но название пакета, будет Правильное хорошее красивое чем это будет какой-то Коман или хелтер.
Илиас Эззахид: Да.
Михаил Непряхин: Да.
Илиас Эззахид: И У нас интерфет который Используется в разных пакетов разных Модуля
Илиас Эззахид: эээ его Писать в отдельную Папку Не Видел. Не в названии коман а Или прямо, Писаться прежде чем его использовать Там где он используется я Не помню Там кто-то Вырастет, Книгу
Илиас Эззахид: сто наших какой-то был такой вопрос где там есть хуже чем? Интерприз там где он его не указывал.
Михаил Непряхин: Ну да? Интерфейс короче Ну давайте Дойдем При этом Рассуждать Не совсем в тему, Принцессы короче Ну
Михаил Непряхин: первый ответ. Используется пишется интерфейс наги используется Но если он используется в многих. Местах то тогда создавайте пакет
Михаил Непряхин: и его используете, везде Ну, то Кома она Не называйте называйте как-то по-человечески ну Вот Это же Не трофейс Не комана так ведь, он же чего-то конкретного интерфейс ну Вот назовите пакет и
Михаил Непряхин: у нас название пакета является, частью имени я не говорю нью клиент рэдис да
Михаил Непряхин: ведь, я так не пишу почему потому что есть уже редис в названии пакет вот здесь
Михаил Непряхин: Поэтому относитесь к названию, пакета как к части имени и называете ником она назвать осмысленно
Михаил Непряхин: так они не конфликтуются если стандартные продукты форматора стоять Они идут по очереди срабатывают Поэтому Не конфликтуют Поэтому как, бы я Не парюсь в итоге-то все равно вот этот работает но на производительность, может немножко кажется но у меня тут очень мощная машина
Михаил Непряхин: у меня тут Э тридцать два я едра с гиперторейдингом Поэтому тут ничего Не Тормозит естественно Но если вас начинают тормозить то отключить Но вообще Не конфликтует
Михаил Непряхин: и так хорошо с конфигом конфедерации Закончили
Михаил Непряхин: да Давайте отдохнем Давайте Отдыхнем пару Минуточек и дальше дальше продолжим
Михаил Непряхин: так дальше дальше надо начали. Немножко, прессовать
Михаил Непряхин: а так ну смотрите значит у нас приложение состоит вот если, по кодовой базе смотреть да то есть у нас есть часть и не цивилизационная
Михаил Непряхин: инициативу и Там какая То часть Это пакель По Кг
Михаил Непряхин: По Кг У нас что-то что Можно Переиспользовать
Михаил Непряхин: нам да создание Коннекшенов в кафке
Михаил Непряхин: к погресу кризису Ну, и вообще какие-то любы Которые Мы Переиспользуем Вот и Часть. Э
Михаил Непряхин: с логикой сама логика То Есть Там! Это а хендлеры
Михаил Непряхин: с обработкой логиков с обработкой логики то. Есть Которые ждут какое-то событие ну там сервер Мы Ждем запрос и там по цепочке Идем да там ну хендер он же контролер
Михаил Непряхин: а контролер У контроля развивает виз кейс
Михаил Непряхин: ну юс кейс там уже работает с доменом и с адаптами
Михаил Непряхин: вот значит ну чтобы вот это вот всю эту историю архитектуру собрать из этих всех слоев,
Михаил Непряхин: а нам нужна Инициатива и вот Мы вначале приложения ну понятно Что конфликт Мы как-то получаем То есть Нам хоть как. Нужен конфликт Поэтому Мы про Это Посмотрели То есть конфликт Мы как-то получаем в нашем случае из файла точка н
Михаил Непряхин: а дальше Мы собираем то есть создаем вот если нам нужен рэдис Мы создаем коннекшн градису
Михаил Непряхин: а если, нам нужен поиск Раз Мы создаем коннекшн повоз в лесу,
Михаил Непряхин: а ну и дальше смотрят какие еще зависимости о зискейсе ну вот у нас Это все зависимости только Ради бога дальше создаем Наш юзкейс структуру в котором. Все будет крутиться
Михаил Непряхин: и дальше мы запускаем хтп сервер
Михаил Непряхин: и собственно говоря все он уже работает до тех пор пока Мы не выключим
Михаил Непряхин: не получим Команду, на выключение и дальше это все грозит дауном Свернем
Михаил Непряхин: вот Сейчас посмотрим вот на Эту часть на Собирание. Этих этих всех архитектурных слоев
Михаил Непряхин: так ну. Пряможение начинается в семьди да семь ди апп это вот наше приложение У Меня есть Еще одно, приложение ну это просто
Михаил Непряхин: сидер для Засеивание базы данных ну с какими То Фейковыми, данными чтобы с ними было Интересно, работать
Михаил Непряхин: вот Поэтому у нас запускается приложение здесь из мэйном
Михаил Непряхин: что у нас здесь Мы видим
Михаил Непряхин: во Первых у нас здесь есть интересный Импорт на библиотеку отбера автомакс прокс
Михаил Непряхин: дело в том что у нас
Михаил Непряхин: есть ну до версии один двадцать Пять эта проблема, актуальна версия один двадцать пять по фиксиле Ну вот пока что там текущая версия все сидят либо на один двадцать три либо Один двадцать четыре мне Здесь тоже Один двадцать четыре Вот то есть эта проблема как бы еще актуальна
Михаил Непряхин: короче говоря когда Мы без Этой Опции запускаем наше приложение
Михаил Непряхин: то. Вот сколько Есть в системе ядер процессора
Михаил Непряхин: аа со стольким го макс проксом он запускается ну в моем случае у меня тридцать два с гиперддингом,
Михаил Непряхин: вот у меня гомакспрокс тридцать два
Михаил Непряхин: ну в моем, случае вот эта надпись это от Этой библиотеки
Михаил Непряхин: и оно так является тридцать два но если бы я в кубе запускал
Михаил Непряхин: то в кубе бы смотрелась эта библиотека смотрит не на то сколько Физически есть, ядров процессора
Михаил Непряхин: а на значение дипломента какие У нас ремиты
Михаил Непряхин: и если Там указано полпроцессора или Один, процессор то эта библиотека поставит голмакспрокс вот в это значение и это правильно то есть здесь будет ничего не один
Михаил Непряхин: потому Что когда у нас в губернасе ресурсов мало ну ты по одно, эндро, а здесь будет тридцать два или девяносто шесть вообще тут сколько угодно же Может быть да сто двадцать восемь ядер сколько Там до сервера
Михаил Непряхин: то получится ситуация, когда у вас каждое ядро. Будет работать
Михаил Непряхин: микро время и у вас приложение будут жестко трогать
Михаил Непряхин: и чтобы этого не происходило вот придумали вот это вот в умере вот эту штуку которая будет смотреть на реальные ресурсы в кубернетизиса и гомакспрокс составляет правильно
Михаил Непряхин: почему с Нижним подчеркиванием потому что если вы видите такую Историю что библиотека нижняя подчеркиваю значит что библиотека Этот Импорт. Он Не Используется в коде то есть его Реально Нет
Михаил Непряхин: но как черт побери Он включается если вы, видите такую Историю то знаете что Там под капотом есть блок и Нид
Михаил Непряхин: если Помните Там на первом где то занятие Или на втором Мы про это говорили,
Михаил Непряхин: значит Что есть У нас такая функция и Нет она срабатывает до функции. Мэйн
Михаил Непряхин: и Там Своя мойка если У нас много линитов То они Там в какой-то иерархии срабатывают ну короче говоря Вот Мы лок когда Вот этот Вот видим Вот этот Вот
Михаил Непряхин: А это Вот он отсюда, происходит этот лок
Михаил Непряхин: из этого Нет блока и он соответственно Там внутри, ставит
Михаил Непряхин: он минимальный. Гол, макс прокс один может поставить цену То есть, меньше одного он Тут не ставится А так в остальном вот он Смотрит на Тут на квоту и Ну Тут эта магия
Михаил Непряхин: А вот так А
Михаил Непряхин: дальше значит обычно функции мейн Мы Делаем только инициаторы. Эээ блогера метрик У пантелейметра его что-то такое в центре Там
Михаил Непряхин: а Функцию Запускаем из другого пакета
Михаил Непряхин: зачем это нужно для того чтобы сделать тесты потому что такой подход. Благодаря какому подходу он позволяет
Михаил Непряхин: а сделать интеграционные тесты
Михаил Непряхин: потому Что если У нас главная функция вот У нас опран в ней Запускается наше приложение если оно Находится в другом пакете. Но главное чтобы не в мэрии
Михаил Непряхин: то мы Сможем его запустить можем сделать Импорт, и запустить из Любого места
Михаил Непряхин: а Функция мейн она не импортируемая то есть Мы и не можем достучаться в этот пакет из другого места
Михаил Непряхин: и Поэтому в пакете мэйн не приняли и не принято ничего хранить кроме вот минимальной Там какого То минимальной интеллигенции ну о чем Мы здесь занимаемся
Михаил Непряхин: Мы конфиг партиям ну Видели да Мы тут партиями из файла и нв а потом из перминых окружения
Михаил Непряхин: Конфеты получили если не Получилось то Мы делаем фатальный лог
Михаил Непряхин: то есть прекращаем приглашение прямо здесь Сейчас фатау он внутри имеет ос Э, кситван
Михаил Непряхин: и значит что Вот в этом месте приложение просто обрубается и заканчивает Работу
Михаил Непряхин: Поэтому если вы хотите, Там что-то как-то изящно Завершить. То фатал не делайте
Михаил Непряхин: но здесь не имеет смысла Продолжать приложение если Мы не смогли спросить конфликт Поэтому фатал
Михаил Непряхин: а дальше Инициативу Блогер уже с Этим конфигом с паршиным
Михаил Непряхин: Создаем какой-то Контекст базовый про Контекст Пере дойдем Потом поговорим Инициативу и
Михаил Непряхин: о антидемократии правоохранительные органы Тоже потом Идем Поговорим ну? В антилеметре это стек для работы
Михаил Непряхин: с метриками и логами и трейсами
Михаил Непряхин: Есть такая библиотека Проект Опенсорная цель которого объединить это все вместе
Михаил Непряхин: и в дефере мы клоузем закрываем этот выполн телеметры потому что у него там собираются метрики, логи и Трейсы и
Михаил Непряхин: если хотите. Что-то Делать быстро. Делайте это в Бочах соответственно округ телеметры накапливает этот Бач с Этими данными и Периодически сбрасывает
Михаил Непряхин: и он может просто Не успеть сбросить если. Не будет Корректного завершения. Поэтому важно Завершить его Корректно с дифером
Михаил Непряхин: вот Поэтому здесь Есть метод закрытия и дальше запускается само наше приложение
Михаил Непряхин: значит оно Находится в пакете эп,
Михаил Непряхин: которая уже Вот Находится здесь вентерна
Михаил Непряхин: мы ведь это закроем Вот и теперь Уже говорим про интерну
Михаил Непряхин: а разве Не Черно ли вот У нас есть свои
Михаил Непряхин: архитектурные Которые призваны Разграничить, ответственность Кода Которые призванные По и
Михаил Непряхин: каким-то признаком разделить и разложить код по разным папкам ну по каким признакам мы в прошлый Раз, говорили
Михаил Непряхин: значит эээ начиная это все и вот как бы есть архитектурные свои вот Они Здесь контролеры юскейз и скей используют дто и домены и адаптаторы вот а эп
Михаил Непряхин: а просто для того чтобы ну папка и сверху была и и одной функции запуска
Михаил Непряхин: и Инициатива то есть вот эта вся штука она находится вот здесь вот всего лишь в одном файле леп
Михаил Непряхин: и так исторически сложилось я вот так делаю если Вдруг на верхнем уровне у меня много Доменов
Михаил Непряхин: то здесь соответственно появляется еще логика по и
Михаил Непряхин: вот аа здесь у меня домен один Поэтому сборка июс кейс Один, то есть у меня один из есть на все приложение соответственно мне просто надо собрать один этот одну эту структуру из кейса
Михаил Непряхин: а уже методы этого плюс кейса они и будут служить конкретными ручками конкретными кейсами
Михаил Непряхин: значит ну что Мы здесь делаем ну вот не пробрасываем конфик файл соответственно Мы его
Михаил Непряхин: а уже там получили сверху и инициативу съемка некшн на базе данных а когда его получили здесь
Михаил Непряхин: позже про это поговорим почему так
Михаил Непряхин: для того чтобы сделать универсальные функции чтобы все мои функции они работали и в транзакции и без транзакции ну то есть мы креативно если я в транзакции, их вызываю Они работают транзакции, вот как бы здесь есть и
Михаил Непряхин: вот и дальше рэй дисконнекшн Мы делаем
Михаил Непряхин: А и ну все то есть в нью-йорке, У нас всего лишь Две зависимости это позгрессы Ради снова соответственно мои хинджекти то есть вот как бы и здесь происходит депардье инженекшн руками
Михаил Непряхин: а потому что Внутри а действительно интерфейсы принимаются в дискейсе вот они описаны
Михаил Непряхин: вот но на вход. Функция принимает конкретные реализации но тут они превращаются в интерфейс и уже используются как интерфейс на трагедии кейса
Михаил Непряхин: вот дальше оно в метре я здесь создаю метрики для Хтп сервера
Михаил Непряхин: и запускаю ну вот Сперва Инициативу на У Меня Там Чароутер так делаю вот создаю этот Роутер
Михаил Непряхин: как, и Конкретно
Михаил Непряхин: ну можно было все внутри роутера воде изнутри сделать Но я сюда добавил. Вещи которые есть в любом приложении
Михаил Непряхин: это само. Создание структуры роутера мидвуара с восстановлением но был как-то вопрос что а что если в запросе Мы паникуем чтобы все приложение не упало
Михаил Непряхин: вот здесь используется медовара которая будет ловить эти паники
Михаил Непряхин: и две Ручки лифереди это Ради насливной пробы для губернетиса они тут у меня суперпростые. Просто отдают статусный контент Это Двести четвертый статус выгружен. Просто заголовок что все ок Это как статусок Но только без Иглов
Михаил Непряхин: Нет и и отдельно Я указываю
Михаил Непряхин: данные для апи по каким, ручкам У нее будут торчать Апе и как бы вот сама настройка роутера она происходит здесь а это уже вызывается, стандартный Хтп сервер
Михаил Непряхин: а с переданным внутрь а роутером который Я настроил
Михаил Непряхин: на этом моменте У нас запускается Внутри гутина и обслуживают наши запросы
Михаил Непряхин: и вот как бы здесь уже начиная с этого момента у нас поднят Дтп сервер и он ждет когда Анопорт Восемьдесят Восемьдесят продлил запросы пишем что приложение поднялось
Михаил Непряхин: и и Дальше нам нужно как то получить сигнал
Михаил Непряхин: а либо контрвце когда Мы сами запускаем ну Или Там стоп нажимаем Он здесь тоже конкурс и отправляют с его
Михаил Непряхин: это интерокт ну Он Там под капотом сигинт это одно и То Же ну что же за синдрог делать можете
Михаил Непряхин: а так делать какч вы так и так увидите
Михаил Непряхин: вот и этот сигнал это от куба куб посылают что пора закрываться
Михаил Непряхин: и дальше мы блокируемся в этом месте то есть над этим мы здесь создаем канал а чтобы слушать сигналы здесь мы заблокировались
Михаил Непряхин: и все и мы работаем
Михаил Непряхин: то есть вот здесь мы блокируемся до тех Пор пока приложения не будет постром сигнал что мы закрываемся если он Помнят Что Мы Закрываемся Пишем Что получили сигнал закрываем хотя При Серверх, в первую очередь для того чтобы не получать новые Запросы
Михаил Непряхин: после этого закрываем рэдис позволю себе, закрываем последнюю очередь ну просто, чтобы она Там успела все отправить
Михаил Непряхин: компьютерного базового Всегда, самое важное и пишем лок что, Мы остановились Окей
Михаил Непряхин: а вот значит если, Будет добавляться кафка сюда добавится Еще Инициатива Кафки коннекшена и если, Будет консенсумер То он тоже вот еще сюда добавится Мы еще еще одну гурцу поднимем которую будут кончимер принимать
Михаил Непряхин: а но в целом как будто но почему нет какого-то френворка потому Что вот это руками написать по количеству. Кода столько. Же Сколько Требуют френборки
Михаил Непряхин: значит какой вопрос Мы решаем да Мы Хотим? Решить вопрос вот с Этой инъекцией зависимостями то есть
Михаил Непряхин: есть у нас какая то структура мы тут ви кейс ее называем да которая в которую мы
Михаил Непряхин: заталкиваем зависимостью у нас две зависимости от традиции от возраста
Михаил Непряхин: мы их делаем трофейцами ну типа По чистой Архитектуре как бы как как положено вожди Пензен-сейнджер
Михаил Непряхин: вот эту вот видишь как бы есть библиотеки Которые ну типа автоматизируют
Михаил Непряхин: какие это библиотеки ну во-первых это от умер.
Михаил Непряхин: Дик что ли называется да умер дик а на рефлекшине
Михаил Непряхин: есть тут, пример как она выглядит но это не таки вот когда я вижу библиотеку в Которой даже Нет экземпляров вот здесь в людьми
Михаил Непряхин: То Я такую Библиотеку, сразу не хочу использовать
Михаил Непряхин: а когда Я не вижу папки экземпал то Тоже, сразу Руки опускаются Ну Допустим Фарма экземп уяснит. Ну спасибо есть
Михаил Непряхин: семь лет назад
Михаил Непряхин: короче говоря оно вот Там с помощью провайда здесь все в функциональном стиле инвока вот этого там
Михаил Непряхин: короче оно вот тут есть сайт,
Михаил Непряхин: есть даже доклады но они конечно вообще там в докладе
Михаил Непряхин: доклад типа на час просто как работает с Этой библиотекой плюс когда вы залазите все равно Никогда ничего Не понятно, короче встречал. Я проект написанный вот на таком диая ну вон ужасно Выглядел никто Ни фига ничего Не понимал переписали просто вот на такой классический простыдяй
Михаил Непряхин: ну и есть. Еще одна альтернатива которую тут тоже Пытались сделать но Код генерации От Гугла,
Михаил Непряхин: о Гого Гоу Диай как Же называется-то Голэнд Диай луговый
Михаил Непряхин: тоже короче в проекте одном дьяволе делали потом поняли Что фигня все выпили
Михаил Непряхин: короче Там по количеству, кода получается ну вот Мы тоже вот позанимаемся нечто такой же историей подобной но только в своем синтаксисе, со Своими особенностями,
Михаил Непряхин: и Это дает профит
Михаил Непряхин: только тогда когда у нас Вот Мы Вот в рамках одного приложения Работаем с десятками репозиторов с десятками какими То зависимостями, с десятками каких, То Сервисов Которые руками писать
Михаил Непряхин: и вот Мы Категорически отказываемся не можем Делаются небольшие, изменения и вот если у нас такая компания как гугл То, это как бы ну наверное Там имеет Оправдание,
Михаил Непряхин: Но Так Вот к Слову сказать когда Вот эти Вот Вещи делаются на код гения То они Ужасно читаются потому Что Кот Ген красивым изящным быть не может если Человек не писал как бы вот этот самый под лучше читаться чем когда
Михаил Непряхин: это сделано на коде генерации
Михаил Непряхин: и эээ если про другие Языки, говорить то Френворки, Всеобъемлющие такие Как джанго питония Или Там Спринг, джаве они Рождаются в двух рук этого
Михаил Непряхин: что есть вот это вот
Михаил Непряхин: понимание У всех что депендиненсийн Джексон. То есть когда мы Не из глобального склопа получаем
Михаил Непряхин: какие-то зависимости а когда они в конструкторы приходят то есть вот когда мы в конструкторы получаем в зависимости возраста называется Депенсин Джексон что это хорошо и правильно
Михаил Непряхин: вот Но в гоу эти все подходы Не прижились и в Голову, Мы этот Везде пишем руками вот
Михаил Непряхин: м понятно, ли здесь до Сих. Пор То Что я Рассказывал Не появилось ли У вас тут какие-то вопросы? Товарищи фронтендеры и
Михаил Непряхин: фикс да я тут-то вот а
Михаил Непряхин: я ошибся уберфик ну он короче говоря Это эволюционировал, вот этот вот который убердик он эволюционировал, вот этот фикс Там подходы похоже используются примерно есть вы здесь Да Блин все равно Нет Примера Да них вообще конечно паразиты
Михаил Непряхин: а и при папке к замкам Нет ну Что Же, За люди Экзам пол три года. Назад короче говоря это те же Яйца вид в профиль короче Та же самая хрень
Михаил Непряхин: ну Ошибся Я Не Дико а фикс просто Мы убира Две библии и таня другая они используют Один и тот Же подход
Михаил Непряхин: Так Так Так Так а Что произойдет если, Мы сигналы не создадим просто приложение Завершить работу
Михаил Непряхин: аа некорректно закроются коннекшины то есть Мы же подняли запрос к базе данных так подняли
Михаил Непряхин: если Мы резко Возьмем и умрем То Мы этот коннекшн Не Закроем он конечно сам закроется но Там же есть тайм-аут а Какой Там тайм-аут может быть минута может быть пять минут может быть десять минут Мы упорсты Бом этот. Коннекшн а он будет висеть а его никто Не будет использовать использовать
Михаил Непряхин: и с кафкой то же самое с кризисом уж Не так актуально то есть Чтобы эти коннекшины ни подвисали важно их закрывать
Михаил Непряхин: тут ну и просто когда вы правильно закрываете вы ведь текущую обработку запроса
Михаил Непряхин: дожидайтесь то есть вот пришел запрос от человека
Михаил Непряхин: у Него он еще в процессе он работает у нас большой может быть рпц у нас там много запросов приходит если. Вы возьмете и Обрубите приложение То Человек получит Пятисотку
Михаил Непряхин: а Поэтому Мы же хотим, просто Сперва перестать получать новые запросы.
Михаил Непряхин: Текущая все корея к Нам работать Завершить ответить ее и тогда Завершить работу
Михаил Непряхин: так как меняется организация особенно, ран когда у нас ехать отпять в рпц но и того же Из кейс
Михаил Непряхин: Да ничего ничего Не меняется То же самое То мы-то посмотрим Мы сюда же Добавим Крписью
Михаил Непряхин: на следующей, операции Или Там Через следующую операцию сюда же добавим сюрприз посмотрим Как это будет увлечь но ран тот же самый
Михаил Непряхин: мы просто в рамках, одного сервиса у нас будут Два сервера и их этот пейджерписи никаких Проблем
Михаил Непряхин: Так а если требуется несколько соединений с базой данных Например, повышается нагрузка ну во-первых у нас Всегда несколько соединений с базой данных Мы не Один, коннекшн Понимаем
Михаил Непряхин: Мы Понимаем пул Коннекшенов вот здесь вот поднимается
Михаил Непряхин: а ведь и называется Библиотека певикс пул поднимается пул коннекшенов
Михаил Непряхин: сколько я Там штук в восемь может быть больше Там есть какие дефолтные настройки
Михаил Непряхин: наверное так Быстро. Их Тут, не Найду,
Михаил Непряхин: М нет ну тому
Михаил Непряхин: четыре дефолт макс конс четыре вот там поднимается четыре коннексона,
Михаил Непряхин: ну их Поверьте мне хватит своих из головы Хватает Там многие, думают два четыре коннекшина господи Мы тут на Голову. Мы тут используем пул. Нам никакой погбаунстер ничего не надо у нас вообще-то Все из коробки Поэтому Это Все нормально работает вот четыре коннекшена поднимается и Мы их Пели Используем
Михаил Непряхин: Так Например, повышается Нагрузка на приложение и хочется открыть дополнительное соединение или это уже лучше делать на уровне скелинга контейнеров
Михаил Непряхин: ну вообще да лучше это делать на уровне скелинга Контейнеров но если надо просто ресурсов докидываете просовите как Бы
Михаил Непряхин: вот у нас и так в пуле
Михаил Непряхин: в четыре коннекшена как увидели дефолт Поднимается
Михаил Непряхин: чтобы хорошо их утилизировать и четыре коннекшина у нас должно быть голмакспрокс четыре
Михаил Непряхин: то есть у нас должно быть четыре потока выделено чтобы это все переваривать Хорошенько
Михаил Непряхин: если их Нет Четырех То хоть вы Там заоткрываетесь эти количества
Михаил Непряхин: на этих соединений У вас перформансы Не будут
Михаил Непряхин: Поэтому проще Делать поднимать Еще контейнеры либо. Накидывать ресурсы и
Михаил Непряхин: так а почему почему же из кризиса Инжектем не репозитории а интерфейс и непапоинтер
Михаил Непряхин: а не ну мы как Раз таки мы
Михаил Непряхин: смотрите вот здесь вот пг пул
Михаил Непряхин: ну он тут чуть-чуть другая архитектура чтобы из странтациями работать ну вот вот в связи с клиентом да вот смотрите здесь клиент вот он указатель
Михаил Непряхин: и Мы вот здесь вот прокидываем указатель то есть у нас там редис клиент по указателю
Михаил Непряхин: но здесь сигнатуре, у нас энтрофейс ну потому что там снаружи к нам кидают
Михаил Непряхин: по указателю структуру коннекшн он пеншу по указателю вот как по другому то он же в одном интернете вот а здесь мы его повышаем в интерфейс и дальше во всем. Юскейсе, Мы работаем только Вот с Этими методами
Михаил Непряхин: Ну в Случае родиться вот Этими методами вот а в Случае позори ты Там тоже полном интерфей есть разглянем
Михаил Непряхин: вот у меня тут нею тоже нетрофизию вот тоже звездочка ой интерфизика указатель тоже указать ро звездочка подлец то есть сюда приходит указатель но сигнатурия
Михаил Непряхин: зачем мне Здесь указатель мне важно чтобы он удовлетворял вот этим вот интерфейсом а он удовлетворяет и все и оно все собирается оно превращается и уже на уровне из кейса ведь у меня импортов Нет общаюсь я ни им порчу ни редис ни позгрыз
Михаил Непряхин: э у меня от них не только не трофейсы и я дальше в приложении работаю только с интерфейсами
Михаил Непряхин: вот это вот есть
Михаил Непряхин: депен дэнси инжекшн оно уже депенэнси инвершен оно же инъекция зависимостей оно же вот как бы реализует вот этот Паттерн чистой архитектуры и Так далее, То есть вот Это вот этот вот краеугольный камень
Михаил Непряхин: а пирамидион короче вот который в центре стоит на чем держится, вся архитектура
Михаил Непряхин: что Мы получили все зависимости какие нужно и извне нам больше ничего не надо
Михаил Непряхин: и мы их получили в виде Абстракций
Михаил Непряхин: ну так я тут называю интерфейса для удобства то тут, Еще модно Репозиториями Называть вот Это Я не Люблю и
Михаил Непряхин: а и Репозитория Это конечно соответственно
Михаил Непряхин: по вот Я вот Так вот Не Люблю Называть Потому Что Я хочу вот туда посмотреть и Понять ага Поигры сага рэдис
Михаил Непряхин: вот и Новая вот Поэтому и
Михаил Непряхин: вот я ее я от интерфейс это не нереальный объект это вот этот трофейс так
Михаил Непряхин: мне как фанту нормально я уже много попрактиковался с вашей архитектурой а после практики все понятно и снова захожу
Михаил Непряхин: а с диай дело имевший мангуляры ну вот отлично но вот кто с Диагнозом дела Не имел вот Тем может Быть сложновато Но Важно Не знать как Это называется Важно вот на Уровне пользовались смотрите У Меня супер
Михаил Непряхин: классные примеры вот прямо вот вот учиться она вот супер вот просто вот если, вы здесь разберетесь а вы здесь нуп,
Михаил Непряхин: не сможете не разобраться вот просто один Раз, пройдите всю цепочку разберитесь и вы поймете а когда вы поймете
Михаил Непряхин: вам вот эта вот компоновка
Михаил Непряхин: оно вам может не нравиться, да вот вам может не нравиться, название может не нравится вам может не нравиться, что оно вот разбито вот так вот что видеть его допустим все в сиюзкейсы вот они все здесь все дто то него здесь
Михаил Непряхин: все контролеры они вот здесь вот вот у Меня получается что клеит профайл логика Она Разорванная да то Есть вот я здесь
Михаил Непряхин: Начинаю клевет профайл потом я Прыгаю Э сюда
Михаил Непряхин: здесь У меня улыбка креть профайла чтобы вот эти вот детошки вот я Прыгаю сюда посмотреть их
Михаил Непряхин: и в доминие я Прыгаю вот еще сюда чтобы это все связать то есть видя как бы я вынужден прыгать
Михаил Непряхин: но и
Михаил Непряхин: это хороший пример для обучения потому что очень много сервисов написанные вот по Этим принципам чтобы вы когда в них попадали вы разобрались
Михаил Непряхин: а во-вторых и
Михаил Непряхин: а вы потом когда это поймете вы можете все в одном, пакете это написать ну вы вот можете взять пакет написать вот это Там и
Михаил Непряхин: а типа вертикаль Слайсинг, сделать Или даже неважно как называется Важно что вот оно типа Пуфичем Лежит, то Есть вот Можно взять фичина резать по разным пакетам а Можно взять Фитчи положить, каждый в свой пакет
Михаил Непряхин: но Почему Мы начинаем с этого
Михаил Непряхин: потому что если вы начнете фичи складывать все в один пакет вы быстро, потеряетесь и у вас все смешается
Михаил Непряхин: Поэтому на начальном Этапе лучше научиться эээ железобетонно разделять эти Вещи прям пакетами Ну как бы вот все уже физическое разделение да а уже потом когда поймете ну, там уже что-нибудь подумаете придумаете и это
Михаил Непряхин: свои. Какие-то правила изобретете но по крайней мере, здесь правила Они простые понятные и Они
Михаил Непряхин: ну? Короче вот любые джуны когда им объясняешь Эти, правила и даешь пример Они уже фигни не Пишут они уже Пишут такой Кот который потом с Ним Можно что-то сделать Можно чего-то Порывачить, чего-то там перекомпоновать
Михаил Непряхин: вот а если им говорить ааа сказать эти принципы и сказать ну вот пишите все в одном пакете
Михаил Непряхин: только разделите хотя бы на файлы то есть вот на файлы разделите чтобы отдельный контроль был отдельно для того чтобы отдельно из кейс был
Михаил Непряхин: ни фига не пишут фигню потому. Что Там когда нету Физической границы между пакетами ну все как бы Там, Те как бы
Михаил Непряхин: и и плохо получается вот Поэтому Мы учимся на таком, примере
Михаил Непряхин: так а если, много Из кейсов То всем быдеки дать через, полли сню а да ну грубо говоря вы
Михаил Непряхин: вот У вас много чего Там много из кейсов да вот допустим у вас много доменов много из кейсов
Михаил Непряхин: ну вот вы создали один Раз, коннекшн
Михаил Непряхин: и ну там пробросили его везде
Михаил Непряхин: здесь у Меня не очень хороший пример с Игры потому что я вам сразу показываюсь транзакциями да чтобы и
Михаил Непряхин: на транзакте объяснять но то есть я как бы немножечко тут такой патроны использую Не прямолинейный
Михаил Непряхин: мммм Не то Что магический Но ведь и Не прямой Так вот если, бы его не было вот я просто, сюда бы передал
Михаил Непряхин: а вот этот паспортрю а если, б было много много есть кейсов ну вот еще один бурю из кейс вот я тоже бы сюда его передал то есть, каннекшн я создал один раз выигрыш у Меня в приложении один Коннокс на базе данных ну, как видели там четыре штуки
Михаил Непряхин: и я эти коннекшины просто использую разных изкейсов и соокей
Михаил Непряхин: база данжа одна вот я книга ночусь
Михаил Непряхин: а то что я там к разным таблицам буду иметь доступную все нормально
Михаил Непряхин: ну хорошо да ответ дам да так часто пишут свой динамичный депрессий Джексон. Рождественский
Михаил Непряхин: можете там попреки вас что, нибудь подписать но так мне Делают. Обычно
Михаил Непряхин: когда вы начинаете динамично писать на гоу то получается пайтон Поэтому как бы со строгой типизации
Михаил Непряхин: Эээ туда этот подход он
Михаил Непряхин: проще проще с этим работать как бороться с не У понятых энтрофейцев в идеале Исследовать Последней
Михаил Непряхин: Чего Разве Не трофей да Не собирается ничего У вас просто ничего Не соберут вы сразу упадете вы быстро вы быстро очень быстро обнаружите что вы не пробросили какую-то структуру такой проблемы вообще нет
Михаил Непряхин: а я фронтейнеры у окна на Самом деле с Похожими Концепциями сталкивался Работал также на вранье тут просто надо за То прорубить немного на другой реализации
Михаил Непряхин: Так я долго назад по-вашему Не Замучивал Штурман но Тогда У вас сборы позиторы Еще если, я Не ошибаюсь ну да я-то даже позициям же Называл ну Видите короче времени. Не стоит на месте и
Михаил Непряхин: и это уже версия десятая пятнадцатая Конечно тут уже отполированно отшлифовано все максимально уже проверено в Бою много Раз, хочу за это рабочий вариант
Михаил Непряхин: так Есть Хорошие, ресурсы для изучения возраста вроде. И знания немного вроде кашу горе
Михаил Непряхин: ну да смотрите значит Ну во-первых поздравить надо просто Скривиться Если вы искали знаете То в Принципе уже из-под Горой все
Михаил Непряхин: Проще потому что Там Позволяю От классического скреже недалеко ушла. Вот ну и Есть Несколько Ресурсов ну там типа
Михаил Непряхин: Эль Тренажер как, называется на Степике Есть Так мне нравится
Михаил Непряхин: я вот недавно к собесу М готовился
Михаил Непряхин: Блин Нет Нет Ну вот есть такой короче тут, че То бесплатно потом За Деньги тут, типа собеса собранные за задачки но мне не очень нравится а есть ну, картины на еду так что он не гуглится
Михаил Непряхин: там как Раз, пропагандирующего
Михаил Непряхин: блин Дач это Как ты
Михаил Непряхин: вот по-моему тогда Нет анна карча Найду Скину Есть тренажеры найди Удобное изучение Так и
Михаил Непряхин: ну Окей ты очень много у тренажеров очень много а так на Ютубе все что отпоздали с профильшину Это
Михаил Непряхин: я не такой как коммерческий Проект, у них прополитарный свой возраст Но у них очень много материалов про обычный процесс Поэтому внутреннее устройство подлиса лучше, всего у них и еще у влада тайна Недавно тоже высшего Про устройство базданных меджу Понравилось
Михаил Непряхин: У Него Там Есть бесплатный урок
Михаил Непряхин: и Я думаю Что Там Платное тоже У Него неплохо
Михаил Непряхин: короче я смотрю и вообще все что Есть Вот Если, я чего-то пытаюсь в чем-то разобраться я просто Вот подряд все смотрю смотрю смотрю-смотрю читаю до тех Пор Пока
Михаил Непряхин: понимаю Что ну Все недостаточно вот но Там минимально для работы достаточно просто. Тренер Хоть пройти
Михаил Непряхин: Так ну вот короче когда мы создали вот эту нашу архитектуру У нас соответственно Ммм готов
Михаил Непряхин: эюз кейс который мы пробросили, в роутер
Михаил Непряхин: и да он соответственно ждет запроса и обрабатывает их вызывает методы из кейса и все работает
Михаил Непряхин: значит поговорим немножко. Про роу тогда я уже сказал что я использую чи Роутер а почему От пятой версии
Михаил Непряхин: почему чи значит во Первых самое главное преимущество чьи что Он вот вот Там вот минимальное вот чего не хватает в стандартном сервере стандартный сервер неплох
Михаил Непряхин: ну стена к Народу тормятся, но там вот Чуть Чуть вот не Очень удобно а вот как Раз, чьи вот эти вот проблемы решают
Михаил Непряхин: сохраняя при Этом обратная совместимость со стандартным роутером
Михаил Непряхин: и очень много мидов вар написано то есть когда вы работаете с чили у вас все мидлвары Что есть они к вам Всегда подходят вам не надо там думать, искать какую-то конкретную медувару потому Что Сигнатура. Сохраняется как у Стандартного роура у вас есть респонсрайтер и Рекест
Михаил Непряхин: вот потому Что чин например, это Чью джин у Него тут аа свой Контекст он меняет эту синатуру
Михаил Непряхин: и и
Михаил Непряхин: он минимальное Количество зависимостей имеет То есть если вы посмотрите Там Чароутер то у него совсем мало зависимости как виде и так зависимостей много
Михаил Непряхин: в Целом и
Михаил Непряхин: аа Тенденция такая что. Ну, хочется снизить количество зависимостей чем меньше зависимости от тем лучше ну потому что чем больше зависимости тем больше вероятна Штатам какая нибудь эээ кунь бокдора какая нибудь это
Михаил Непряхин: что нибудь где нибудь заложено и в серьезных компаниях Всегда есть ограничения на количество библиотек которые вы можете использовать есть библиотеки которые тоже использовать не можете
Михаил Непряхин: вот ну Я думаю Джин в таких, компаниях ээ разрешен Чаще всего тем не менее
Михаил Непряхин: вот а учи Например, Зависимостей ничего
Михаил Непряхин: то есть чи Написан на стандартной Библиотеке у нее независимости по Этому кругу
Михаил Непряхин: ну и плюс вот пакет пакет куча куча Готовых мидоввар вот это все медовар на разные случаи жизни
Михаил Непряхин: а джинн это самый популярный робот на гол, и конечно
Михаил Непряхин: часто встречаются в проектах восемьдесят четыре звезды да и
Михаил Непряхин: конечно если уже в проекте он есть деваться Некуда приходится использовать ну видеть очень много контрибьюторов и написан не очень красиво не очень хорошо по большому счету он каких, то Проблем и не решает то есть
Михаил Непряхин: я думаю что
Михаил Непряхин: добавляет обертку свою заставляет разбираться в нем заставляет Изучать его а взамен ну по мне так ничего не дает то есть Поэтому
Михаил Непряхин: джинсы по доброй воле по своей воле лучше не использовать есть еще эко
Михаил Непряхин: или эча я не знаю как то сказать эконом
Михаил Непряхин: вот тоже популярный тридцать три звездочек ну он такой скорее Мертвый все тоже встречается на недавно на проектах ну вот мне совсем он не нравится уж Ммм
Михаил Непряхин: как бы они все похожи у них у всех Есть мимо вары У всех Есть какой-то какая-то возможность принять конкретный запрос и как-то его Отродить То Есть как бы там задача
Михаил Непряхин: большая
Михаил Непряхин: Э, Так Сейчас посмотрим вот короче вот и смотрим вот эту вот настройку самого роутера вот я эту Передю в него метрике Передаю из кейс потому что ручка когда будет вызвана она будет Вызывать Из кейс
Михаил Непряхин: а ну Моя рекомендация как Организовывать роутинг
Михаил Непряхин: Удобно ну как Бы Удобно когда Вы в одно, место, зашли и увидели все роты просто. Удобно
Михаил Непряхин: Поэтому рекомендуется вот у меня, допустим тут первая версия сразу делаю то Есть я сразу по папкам вью вот вы один дьявол, для того чтобы потом добавить папку в Едва и просто легче это все менеджеры менеджеры
Михаил Непряхин: здесь же у меня сразу проброшена Ручка для метрик это техническая, Ручка и можем. Перейти по окон хост
Михаил Непряхин: Восемьдесят Восемьдесят метрикс вот и здесь будут в метрики а на
Михаил Непряхин: никаких основных метрик нет это просто все встроенные дефолтные метрики которая изронта я могу вернуть Информацию и можно посмотреть По памяти По использованию памяти По стеку
Михаил Непряхин: и оно сразу передается Графану идет, мне тут, Можно сразу можете зайти в микрофон и посмотреть Эммм
Михаил Непряхин: а чего в черном где ничего не обновляется
Михаил Непряхин: не успел еще попасть смешат под дождем честной возобновится вот так
Михаил Непряхин: вот Поэтому вот эта ручка это для прометриуса для сбора метрик
Михаил Непряхин: дальше идет роутинг уже конкретно по папе
Михаил Непряхин: эээ ну так как у меня здесь приложение такое чтобы Вы если, что, могли запустить в губернаторся
Михаил Непряхин: то я здесь для Ингресса сразу прописываю длинный этот робот отмечали вот ну части, здесь ведь чаще здесь бывает просто
Михаил Непряхин: ну так вот так вот эй пья и все вот у меня здесь Еще какой-то профикс ну и
Михаил Непряхин: дальше мидл вары относящиеся к Этому роу
Михаил Непряхин: мидулвара с блогером чтобы все запросы. Блокировались мид увара с метриками чтобы автоматически запросы. Отправлять метроки и раисами чтобы автоматически террористы поднимались и
Михаил Непряхин: создавались, дальше пачка тот касвый один здесь уже сам роутинг
Михаил Непряхин: постовая ручка принимает ну, обрабатывает принимает запрос рот вот это уже это ньюс кейс ой контролер
Михаил Непряхин: у которого здесь в один находится здесь у меня вызов конкретных контролеров и вот когда приходит запрос на ручку профайл по пост то мы попадаем вот в этот Контроль
Михаил Непряхин: а если и попуту то лабдей если пакету ну уже не другая Сигнатура. Но Она такая же как Уделита То либо в гет либо вдлит
Михаил Непряхин: Так чудом кстати Появились Нет
Михаил Непряхин: так-то как Будто. Бы а Нет метро когда метрик Нет Есть же вот смотрите метрик Нет почему потому что. Я запустил
Михаил Непряхин: Ммм приложение локальное
Михаил Непряхин: а метрики они собираются только когда преображение запущено внутри композа ну ладно Потом, дойдем до метрик запустим вот так вот посмотрим зато троицы собираются
Михаил Непряхин: так вот локально можно работать
Михаил Непряхин: так вот допустим нам пришел запрос на клиент то есть первый у нас запрос чтобы создать Профиль вот мы сюда попали на ручку на эту вызывается
Михаил Непряхин: вот клеет профайл контролер который обрабатывать запрос
Михаил Непряхин: значит какая у него, ответственность у него, ответственность просто принять запрос в формате который удобен пользователю и
Михаил Непряхин: вызвать из кейс и отдать запрос который удобен пользователю ну и соответственно вот мы видим что ну тут, контекст получаем создаем структуру в дт он
Михаил Непряхин: в которой мы запрос получим для того и здесь вот ее наполняем то есть из боди запроса о боди у нас он врезан
Михаил Непряхин: мы этот же сон парсим и вот сюда в эту структуру помещаем то есть у нас вот запросы будут Выглядеть! Таким образом,
Михаил Непряхин: дальше эту игрушку передаем в ньюс кейс
Михаил Непряхин: Ну Виски сядут А позже посмотрим если все хорошо
Михаил Непряхин: Рэнд Рим Джисон говорим. Что статус сок если Ошибка Рэндрим тоже Врисон но
Михаил Непряхин: с помощью вот метода. С ошибкой
Михаил Непряхин: и говорим Что Ну Помечаем Что Это четырехсотка статус метро Крест и какой то комментарий значит счастую Дернем пуцмана
Михаил Непряхин: значит для того Чтобы с Эти, мапии покрутить вот У Меня здесь есть папии Хтп и и работает
Михаил Непряхин: вот и в откроет профайл но между же загружена и если мы тернем вот мы получаем двести ок
Михаил Непряхин: и айди ю Иде созданного заказа
Михаил Непряхин: потому что вот здесь У нас есть кейс У нас аутпут
Михаил Непряхин: мы отдаем Детошку сьюзен кэлвин созданного заказа
Михаил Непряхин: есть ли У нас какая то проблема некорректно допустим номер телефона Мы эээ без плюсов отправили
Михаил Непряхин: он влидацию не пройдет, но четырехсотка
Михаил Непряхин: и пишет да Что по валидации е сто шестьдесят четыре вот влиться не пошла
Михаил Непряхин: а Так ну вот мы Окей мы или создали можем теперь его в гете вызвать то есть здесь в гетто пробрасываете вот получаем вот То что, Мы не создали
Михаил Непряхин: да но в базе, у нас поместились этому. Из база взяли
Михаил Непряхин: вот ну и то же самое если Мы тут какую-нибудь ошибку сделаем под несуществующей ее иди то Мы получаем четырехсотку Треквест фейлят и юрий инвалид
Михаил Непряхин: а вот и вот Этой вот логикой логикой То есть в каком формате вот а ответ.
Михаил Непряхин: В каком формате бывают запрос У нас в формате такой запрос какие ошибки Мы Будем, видеть
Михаил Непряхин: и в каких статусах будут ответы газета отвечает контроль
Михаил Непряхин: и все больше он ни за что не отвечает
Михаил Непряхин: и как видите Тем не менее какая то логика есть то есть видите все равно на один экран логики есть
Михаил Непряхин: обреет обновление оно все однотипно но все одинаково мы принимаем запрос из дресона, его превращаем в структуру вызываем лиз кейс отдаем в том формате которым удобно пользоваться
Михаил Непряхин: но тем не менее это логика которой. Она выделяется на фоне всего остального и она
Михаил Непряхин: вот вычленяется таким образом, и помещается в контроле вот таким образом, получается контролер
Михаил Непряхин: вот ну а контролер вызывает весь кейс ну тут дальше про с кейсы уже можно говорить
Михаил Непряхин: и Еще когда будете дергать
Михаил Непряхин: ну тут уж дальше на следующих, органах будем говорить послезавтра значит Но когда будете запускать Еще Интересно Можете посмотреть ну во Первых и ольге смотрите да чего у нас в рогах то сидите воги тоже красивая раскрашенная двухсотка Мы Там дернули Какой метод Там четырехсотка Что случилось
Михаил Непряхин: и у меня здесь уже проброшены везде трейсеры просто заходите в графану вот сюда в экспор
Михаил Непряхин: Темпа но тут уже вот видите выбрано и вот две Круглые, Скобочки вот Так вот запускаете и видите трассировку этих Наших запросов Которые Мы Только что делали
Михаил Непряхин: короче говоря здесь удобно посмотреть Так Сейчас как-то да
Михаил Непряхин: осмеле
Михаил Непряхин: шазном телефон так что, тут, Делал Давайте вот на разные запросы открой
Михаил Непряхин: короче здесь для Фонтендеров кстати довольно понятно что, это Аналог
Михаил Непряхин: консоли в браузере когда мы можем
Михаил Непряхин: ну изначально руками мы конечно должны настроить все свои.
Михаил Непряхин: А потом мы можем сделать вот такую трассировку ну это называется трейс и и
Михаил Непряхин: Нет микро секунды восемьсот девять метров секунды он ответил и это и есть по Сути все время нашего выполнения
Михаил Непряхин: ну Зелененькая ведь как все Успешно а вот ошибка была над ошибкой Это я Дергнул четырехсотка видите
Михаил Непряхин: Мы дошли только до дюс кейса в Нью-йорке
Михаил Непряхин: Чуд Какие То Есть У меня Нет тут ничего Интересного Нет
Михаил Непряхин: ну короче говоря Тут, Ошибка была валидацией Наверно Да шемлин нус Бэтриквест была Ммм
Михаил Непряхин: нет у Меня Тут ошибка не указана какая им наша думаю
Михаил Непряхин: так Что сам рожон естьдет Или нет
Михаил Непряхин: Хэттеп роуд был такой вот конкретно какой Мы дергали Конди, Это просто отработай ивент здесь ничего интересного
Михаил Непряхин: ну, да Ну, вот можно Еще прямо в Эту Ошибку Еще бы туда можно записать просто здесь не записана Ошибка конкретно
Михаил Непряхин: ну вот этот удачный запрос был нагет
Михаил Непряхин: водитель уже отмели секунду занял. Вот одну секунду занял доставал
Михаил Непряхин: а из базы это уже видно что все время запроса это вот этот запрос и занимал да и здесь
Михаил Непряхин: а здесь уже одессек ильи труда Создавал а вотценить вот этот запрос на кредит профайл.
Михаил Непряхин: То Же вите интересно да что дергали мою ручку пост одиннадцать или секунд она отрабатывала и и
Михаил Непряхин: а видно что у нас запрос происходит в транзакции и
Михаил Непряхин: два Вызова по с Грибыла два адаптара с вызовом позгры на клеет Профайла и кричит Проперти и вот Там Один триста занял второй и Триста занял
Михаил Непряхин: э микросекунд и вот Таким образом, когда у вас большая какая то сложная иерархия вызовов вы можете вот здесь тоже это увидеть то есть Этот, рейтингом, м заниматься полезно
Михаил Непряхин: это Действительно ну там в дебатах Очень, сильно помогает о единственное здесь где здесь есть кейс называется в криете что он меня пропустил. Что ли
Михаил Непряхин: точно я здесь пропустил вот смотрите я смотрю такое Что я юс киста чуть Не, вызывает У Раз транзакции идет так-то еще Освоить из кейса нужен
Михаил Непряхин: потому что он здесь руками делается я просто забыл. Его добавить вот Сейчас давайте добавлю чтобы чтобы видеть что рискис вызывает вискис криет профайл ну вот и все и перезапустим приложение
Михаил Непряхин: и Вызовем кредит профайл открыть профайл Вызовем
Михаил Непряхин: и оно быстро, очень попадает на самом деле в базу шасмы
Михаил Непряхин: шиф центр
Михаил Непряхин: на освин нет еще Не попал вот попал
Михаил Непряхин: вот видите, вот я добавил, Строчку вот и теперь, мы видим вот у нас вызвался контролер а
Михаил Непряхин: с постовой ручкой дальше Мы вызвали из кейс
Михаил Непряхин: влюс кейсе у нас произошла транзакция
Михаил Непряхин: и в транзакции Мы сделали два запроса в базе данных вот
Михаил Непряхин: короче У очень-очень Сильная штука вот эта с Темпа Ну там как запрос и писать как это все делать тоже потом Там Дойдем посмотрим
Михаил Непряхин: просто как Вы знаете что оно Тут есть из Коробки и если Вы что-то Там сложное Тут будет экспромтировать то можете ну здесь тоже нормально так вот вот видите вот юскей с созданием профиля что здесь происходит
Михаил Непряхин: ну его вызывают во Первых контролях да вот Мы только что смотрели контролер вот Мы в контрольноре запрос получили Гессон обработали вот из кейс вызвали
Михаил Непряхин: вот он здесь создали конструкторе новый профиль там внутри эволюции сделали
Михаил Непряхин: и насчет свойства создали вот эти какие-то мифические,
Михаил Непряхин: и дальше в транзакции от меня, транзакции выполняются две операции значит это я Создаю Профиль и Создаю свойство
Михаил Непряхин: и дальше Возвращаю в вто
Михаил Непряхин: к стилю Такому Гошному Все равно Ведь надо Привыкнуть потому что ну по-хорошему ведь если, бы Не обработка ошибок
Михаил Непряхин: то и
Михаил Непряхин: спасибо дизайну нельзя немножечко дурацкий без Этой обработки ошибок то есть вот Не смогли они никак по-другому сделать кроме как вот так вот
Михаил Непряхин: и приходится вот это вот глазами и и
Михаил Непряхин: ну как бы, постепенно привыкаешь и перестаешь вот эта парсеть вот но поначалу какое то время уходит на то чтобы вычленять нужное а нужно здесь собственно оно вот что дергается позгресс интрофейс от пользоваться вот конкретно вот этот метод
Михаил Непряхин: и здесь Тоже, вот конкретно этот метод то есть тут, можно перейти вот мы видите только с энтрофейсом отозли работу
Михаил Непряхин: вот ну и все собственно говоря а дальше ну там дело, техники как там мандапторы пишутся тоже в следующий раз посмотрим
Михаил Непряхин: и протесты тоже в следующий раз уже поговорим
Михаил Непряхин: так ну все я думаю на сегодня хватит давайте вопросы, вопросы, ответим а мне агитируют вайбер Ну,
Михаил Непряхин: по мне так чем, Лучше да здесь еще файбер
Михаил Непряхин: это это из последнего хайберт по-моему самый Новый двадцать семь, тысяч звездочек
Михаил Непряхин: особенно меня умиляет когда они на Бинчмарке вот это вот что-нибудь Там вот а У нас Там бинчмарк Файбер Мы Там всех рулем дай господи где тут чи ну где то, будет не очень высоко вотчи да типа вы таки смотрите на эти проценты о боже мой как бы насколько там файмер быстрее
Михаил Непряхин: ну а
Михаил Непряхин: понимаете чтобы роутер стал узким местом ведь это вот очень синтетические тесты вот самый у нас фаст Этой тупой еще тоже быстрый и файмер
Михаил Непряхин: ну вот эхо нджин чии стандартный роутор идут вообще сравнивать или Нет короче говоря
Михаил Непряхин: метод это какая то знаете знаете такая история типа какою язык программирования круче да вообще пофигу оса ну самым медленным будет база данных
Михаил Непряхин: а и все и хоть что у вас там хоть какой у вас там будет, файбер не файбер
Михаил Непряхин: как бы вы из разницы не почувствуете тормозить бонзы вот а
Михаил Непряхин: плюс все Решается дополнительным. Инстанциям и Поэтому вот эти все проценты короче заперфомы Ради перформанса точно смысла Нет
Михаил Непряхин: Ради чего Ради апии ну может быть если, вам нравится можете пользоваться. Файбером вот я тоже все это новомодное пробовал для себя остановилось иначе и если, на проекте уже чего-то есть ну? Тут вариантов Нет приходится это использовать То что уже завезли
Михаил Непряхин: Говорят самое быстро и почитал экзамен по плечу и показался понятней
Михаил Непряхин: Ну. Короче самое Быстро это Все фигня полная раз самый, быстрый раз самый, быстрый нравится писать Ужасно
Михаил Непряхин: Поэтому просто поднимаете еще Один инстаграм на Гоу
Михаил Непряхин: и все и вся эта быстрота нивелируется и там и там в итоге будет самый медленный возраст так что,
Михаил Непряхин: неподс
Михаил Непряхин: я возможно Прослушивал название Вы один это для какого-то версии Или просто пример это не пример смотрите у Меня тут ну понятно что, Весь сервис пример Но это продакшн рэди Кот
Михаил Непряхин: и и это а
Михаил Непряхин: очень удобно что вы можете потом в Два вот вы добавляете папку в Два здесь очень Там в три клика подключаете этот
Михаил Непряхин: в два версию и у вас Одновременно и вы один версия работает и в два версии Работают потом постепенно вы вы один депрессия едите у вас остается только версия в Два короче это просто удобный способ, организации кода то есть вот этим Я Рекомендую вам пользоваться версионировать и пиар
Михаил Непряхин: Так легко переписать Ошибки в Редей в Десять фальсифицировать например,
Михаил Непряхин: Кубы линды Избы Десять Специфически влидал Здоровья в целом его показал потому, что он иногда встречается на проектах я чаще предпочитаю руками писать валидатора
Михаил Непряхин: ну там есть заготовленные какие-то для емемов влидации регулярки где можно там выдрать откуда нибудь для телефонов всю страну я пишу руками
Михаил Непряхин: мне в десять мне очень нравится
Михаил Непряхин: потому, что в десять заставляет себя изучать вообще если библиотека вот вы начинаете пользоваться
Михаил Непряхин: и она заставляет вас изучать Свое, содержимое
Михаил Непряхин: и вы прям Постоянно вот шагливо шаг вправо были надо идти в документацию вот мне такое не, нравится, плохая библиотека на мой взгляд вот вы в десять именно такая
Михаил Непряхин: то есть вы вот эти вот Теги без документации Не напишете ну Сейчас час же пяти, конечно Там вручаю да может вот Но Там возможностей очень очень много
Михаил Непряхин: Но вот даже вот смотря На Это Ипя Это вообще Не очень По-ному, Но Так приходится Делать Потому что Там Так устроено вот Но с другой стороны
Михаил Непряхин: если у вас прямо вот очень большие развесистые апии вот эти вот Структуры То. Вы десять выручает. Потому, Что Вы можете Очень лаконично вот Это, вот все описать и где То Это, удобно Поэтому вот Так вот в Арсенале Иметь, Вы десять. Неплохо
Михаил Непряхин: Поэтому показал но это Не То что там вот обязательно только вы десять нет я руками все выледаться пишу
Михаил Непряхин: Так как к Трейсингам при запуске тестов
Михаил Непряхин: У, вас здесь кейс и Там трейсер Не, мешает Тестам ну а
Михаил Непряхин: э смотрите значит в семь Ди вот Мы на раннем этапе, растенько Не царили вот в этом месте
Михаил Непряхин: и у меня в трейсинге. Есть Копт Сайлент мод
Михаил Непряхин: я тесты пишу ну вот если, надо что-то протестировать я обычно таким образом пишу значит какой-нибудь сайлент Мод делаю и инициативу нооп трейсер
Михаил Непряхин: и если я Энд поинт Не передал у меня включается сайлент мод то же самое. И с блогером делаю
Михаил Непряхин: ну, у блогера и так это очень легко. Видите рейтинг тут в целом Две строчки надо написать Что савиник могут включить Поэтому я тут отдельно сделал а у трейсинга в интеграционных тестах вот просто одна строчка
Михаил Непряхин: вот у сани моту блогера вы так Включается просто озеролок на лоб делаете и все и у вас логи не выводятся
Михаил Непряхин: а вот этот интеграционный Текст я вам показываю ну потом Дойдем до пенсионного тест тоже тут отдельно. Это искусство как Их писать как Их спускать Воты вот Поэтому тестам не мешает потому что, включен сарин вот и все работает да вопрос хороший
Михаил Непряхин: так если У сервиса есть вып принтерфейс где хранить чтим Шаблоны папкавое в корне проекта
Михаил Непряхин: здесь уже очень по Разному покажи пример
Михаил Непряхин: Я Раз спецпроект уже пишу с своей мордой Я там на будь страпе просто делаю я не фонтейнер я где-то такую Быстро Могу усилить то есть там реакт я уже все это занимаю охтангуляр рекомендую с ректором ну целеком смотрел. И вью смотрел. Но Нет я не могу
Михаил Непряхин: Это мир. Фронттента не для Меня я понял. Что я лучше буду писать на гастролях.
Михаил Непряхин: И где именно? Хранить шаблоны вот Провод открытый и потом посмотрим порассуждаем про Это
Михаил Непряхин: вот оно можно и вэб можно его охранить как бы торжок
Михаил Непряхин: а как в чили включается Х дпс и где Хранение сертификаты м
Михаил Непряхин: смотрите Но вопрос Тоже конечно хороший ну во Первых про сертификаты
Михаил Непряхин: этотпс Нужен Только для Джерси Потому что Он Там брент По-другому Не работает
Михаил Непряхин: и То Там Тоже. Отключается Это Кстати. Проживание сертификаты по сути вот такого произноса нужно только кафки и и
Михаил Непряхин: ну публичная, а если вы говорите публичное приватное ну вообще для этого отдельные сервисы пишут По управлению и и
Михаил Непряхин: а По моему Там уже Сейчас Можно
Михаил Непряхин: Можно его включить ну да его Можно включить
Михаил Непряхин: но Мы этим Никогда Не занимаемся
Михаил Непряхин: потому что Наш сервис наружу Никогда Не торчит
Михаил Непряхин: А Всегда Есть праксирующий там Ин джинкс какой-нибудь Анвой там хапкси короче тцедера что угодно но так чтобы Наш сервис торчал наружу ну как бы Нет так такого так никто Не делает вот Всегда есть какой-то барьер какой-то проксирующий сервис
Михаил Непряхин: например ин. Джинкс Которые хорошо умеют ротировать сертификаты Которые хорошо умеют поддерживать эти все там
Михаил Непряхин: Протоколы все Это У Него кашируется оптимально работает тайм
Михаил Непряхин: гошной напишено написанной Наси у тындлинг себя Поставляют и с эстетической конфигурацией
Михаил Непряхин: такой он Еще из Начала двухтысячных
Михаил Непряхин: вот ну повсеместно используют бензинцы наше все вот и Поэтому вот он Это очень хорошо умеет делать а уже после инженкса, у нас Внутренняя Среда у нас Нет кого, защищаться Внутри Поэтому сертификаты Не нужны У нас все работает просто. По Обычному Х Дтп
Михаил Непряхин: в протокол. Поэтому ну Там У чата Дрэппи может Конечно спросить там как Настроить х дтпс Но это даже Не счи Связано это Связано просто. С настройкой роутера ну То есть вот там обычно этот рой не с роа а сервера вот у нас есть сервер
Михаил Непряхин: и вот там у нас есть Транспорт у сервера и
Михаил Непряхин: плюс вам надо как. То Это все Будет ротировать а м Есть да, значит если вы этим интересуетесь то
Михаил Непряхин: как. Там называется сервисы Которые те сертификаты обновляют
Михаил Непряхин: забыл. На какой-то популярный сервис который обновляет сертификат Ну вот Которым всем пользуется бесплатный э
Михаил Непряхин: У Него просто забиваете голланд и эйти типиэс
Михаил Непряхин: хлец Плецинг, грипп да лец ингрид экземппо как нибудь вот Так вот
Михаил Непряхин: и там просто есть готовые примеры как это дело. Настроить А
Михаил Непряхин: Тут такой учет. Исхода Не, гуглтся Ну круче как То так гуглится вот и там короче просто конструктор
Михаил Непряхин: вы просто берете и Копируете оттуда и даже. Не пытаетесь Там понять как Это работает То Есть Там такой сложный конфикт Но главное Что он Там Автоматически обновляется с помощью Лясин клипа
Михаил Непряхин: но в целом я вам не рекомендую этим заниматься Гораздо Проще подрубиться либо, через месяц Это сделать
Михаил Непряхин: Если Вы прямо для себя перед Проект, пишете либо, ну Сейчас конечно уже неактуально достал этот Ммм
Михаил Непряхин: Сейчас все заблокированы сейпишники клауд флерата Раньше, самое простое было сделать с помощью клаудвера
Михаил Непряхин: вот ну Можете попробовать в Какие то примеры следствием Клипта Так я фронт в отдельном проекте
Михаил Непряхин: Так неспециализм да главное короче все Так задержались
Михаил Непряхин: короче значит домашка такая Вы попробуйте У себя запускайте Ну вот вот как я сказал да запустите значит
Михаил Непряхин: доктор компост
Михаил Непряхин: а кстати у меня тут еще миграции были уже накачанные чтоб миграции накатить вот микроэтап еще делайте то есть как бы Две команды это
Михаил Непряхин: э, Компост надо запустить и эмиграцию надо запустить вот и ну, вот посмотрите На вот вот здесь вот На панельку посмотрите На графану на эти трейсы
Михаил Непряхин: по и
Михаил Непряхин: эээ запустить этот посман и вот тоже, Там Эти, все запросы подергайте посмотрите как оно в базе данных будет создаваться.
Михаил Непряхин: Вот и чтобы в следующий Раз, уже ну как бы более-менее ориентироваться. В проекте вот и дальше мы здесь будем говорить про тестирование про миграции
Михаил Непряхин: и дальше про то как генерировать вот из этого апию и сервер и Клиент,
Михаил Непряхин: вот ладно на сегодня все значит Один, здесь было интересно фонтанеры все все поняли сын давайте пока.