- 83
- 179 725
Павлин Шарит - ИТ вместе с Николаем Павлиным
Russia
เข้าร่วมเมื่อ 15 ธ.ค. 2019
Меня зовут Павлин Николай, я CTO в стартапе Nova, мы разрабатываем hardware и software решения в области здоровья и охраны труда.
Так же я преподавал в университете, но времени на очные занятия стало не хватать и я решил делиться своим опытом здесь.
d24883c4-4a2d-47cf-b0ad-0e077a117d92
91ccaa6f-716b-4e2e-b9e7-b20cd4d126ea
Так же я преподавал в университете, но времени на очные занятия стало не хватать и я решил делиться своим опытом здесь.
d24883c4-4a2d-47cf-b0ad-0e077a117d92
91ccaa6f-716b-4e2e-b9e7-b20cd4d126ea
Python Logging: Правильное Логирование за 20 минут
🔍 Большой чек-лист деплоя Python приложения: t.me/pavlin_share/176
🚀 FastAPI шаблон: t.me/pavlin_share/179
В этом видео я расскажу про правильное использование логирования в Python.
Начнём с разбора того, почему print() не подходит для логирования в реальных проектах. Поговорим про отсутствие временных меток, уровней важности и проблемы с отладкой.
Затем разберём как правильно настроить logging в Python проектах. Покажу базовую настройку логгера, форматирование сообщений и работу с разными уровнями логирования.
Рассмотрим продвинутые техники: настройку через YAML конфигурацию, создание цветного вывода в консоль, ротацию логов по размеру и времени, а также отправку логов во внешние системы.
В конце обсудим вопросы безопасности и разберём лучшие практики. Расскажу про защиту чувствительных данных и типичные ошибки, которые допускают разработчики при работе с логированием.
0:00 Вступление
1:00 Почему print это плохо
4:17 Основные части логгера
10:10 Свой форматтер
13:00 Конфигурация с помощью словаря и файла
19:20 Передача логов в внешнюю систему
🚀 FastAPI шаблон: t.me/pavlin_share/179
В этом видео я расскажу про правильное использование логирования в Python.
Начнём с разбора того, почему print() не подходит для логирования в реальных проектах. Поговорим про отсутствие временных меток, уровней важности и проблемы с отладкой.
Затем разберём как правильно настроить logging в Python проектах. Покажу базовую настройку логгера, форматирование сообщений и работу с разными уровнями логирования.
Рассмотрим продвинутые техники: настройку через YAML конфигурацию, создание цветного вывода в консоль, ротацию логов по размеру и времени, а также отправку логов во внешние системы.
В конце обсудим вопросы безопасности и разберём лучшие практики. Расскажу про защиту чувствительных данных и типичные ошибки, которые допускают разработчики при работе с логированием.
0:00 Вступление
1:00 Почему print это плохо
4:17 Основные части логгера
10:10 Свой форматтер
13:00 Конфигурация с помощью словаря и файла
19:20 Передача логов в внешнюю систему
มุมมอง: 1 566
วีดีโอ
Ускорь Написание Промптов
มุมมอง 1.3Kหลายเดือนก่อน
🔍 Большой чек-лист деплоя Python приложения: t.me/pavlin_share/176 🚀 FastAPI шаблон: t.me/pavlin_share/179 💻 GitHub: github.com/Afaneor/ultimate-prompt-generator?tab=readme-ov-file В этом видео сделаем универсальный генератор промптов
Делаем DRF сериалайзеры: полный гайд
มุมมอง 654หลายเดือนก่อน
🔍 Большой чек-лист деплоя Python приложения: t.me/pavlin_share/176 🚀 FastAPI шаблон: t.me/pavlin_share/179 💻 Мой GitHub: github.com/Afaneor/ В этом видео вы узнаете всё о сериализаторах в Django REST Framework (DRF) - от базовых понятий до продвинутых техник! Мы рассмотрим, что такое сериализаторы, как с их помощью обрабатывать данные и строить мощные API. В каждом разделе видео мы погружаемся ...
Проект на FastAPI от А до Я | Шаблон ДЛЯ СТАРТА
มุมมอง 2.5Kหลายเดือนก่อน
👉 Большой чек-лист для деплоя приложения: t.me/pavlin_share/176 👉 FastAPI шаблон: t.me/pavlin_share/179 👉Проект, который мы написали - github.com/Afaneor/prompt-share-backend В этом видео мы пошагово покажем, как создать API для сервиса промптов с использованием FastAPI - от идеи до готового решения. Вы узнаете, как проектировать API, писать код с Pydantic для валидации данных и как тестировать...
FastAPI: Идеальный Шаблон для твоего Проекта
มุมมอง 1.9K2 หลายเดือนก่อน
👉 Большой чек-лист для деплоя приложения: t.me/pavlin_share/176 👉 FastAPI шаблон: t.me/pavlin_share/179 В этом видео вы узнаете, как за несколько минут развернуть полноценное FastAPI-приложение с готовым шаблоном. Мы подробно рассмотрим настройки, организацию проекта, и лучшие практики для быстрого старта разработки. Узнайте, как сэкономить время на рутине и сосредоточиться на создании функцион...
Я Написал Клон Hamster Kombat! ПОЛНЫЙ РАЗБОР ПРОЕКТА
มุมมอง 9652 หลายเดือนก่อน
👉 Telegram: t.me/pavlin_share/ Предыдущая часть - th-cam.com/video/FS0WXXpeEI8/w-d-xo.html В этом видео я показываю как пошагово запустить клон игры hamster kombat в виде telegram mini app. Мы разберем и frontedn и backend части приложения 0:00 - Всутпление 0:10 - Что разберем 2:00 - Скачиваем, то, что пригодится 3:50 - Клонируем репозитории 4:30 - Поднимаем бекенд 4:30 - Поднимаем ngrok 8:40 -...
ПЕРЕСТАНЬ использовать requests в своих проектах [Upper Junior]
มุมมอง 1.8K2 หลายเดือนก่อน
👉 Telegram: t.me/pavlin_share/ В этом видео я расскажу, почему использование requests в ваших проектах не самая лучшая идея. Откройте для себя новый модуль httpx для более эффективной работы с запросами в Python!
Исправляем самую распространенную ошибку в Git
มุมมอง 5313 หลายเดือนก่อน
👉 Telegram: t.me/pavlin_share/ В этом видео поговорим с вами о git. Как правильно делать коммиты и почему именно так. Я уверен, что вы сталкивались с ситуацией, когда вы возвращались к своему проекту, но понять, что там было сделано было очень сложно, потому что сообщения, которые вы оставляли в commit message были непонятные. В видео мы рассмотрим подходы, которые позволяют этого избежать. 0:0...
Postgres в твоем браузере [Any]
มุมมอง 6993 หลายเดือนก่อน
👉 Telegram: t.me/pavlin_share/ Почитать про WASM - developer.mozilla.org/ru/docs/WebAssembly В этом видео мы познакомимся с развертыванием postgres на клинетской части приложения - непосредственно в браузере. Мы посмотрим на сервис postgres.new и pglite. 0:00 введение 1:20 postgres.new 3:45 pglite 5:40 пример 1 7:30 пример 2
Прощай GIL [Middle]
มุมมอง 3.1K4 หลายเดือนก่อน
👉 Telegram: t.me/pavlin_share/ Рассмотрим самое ожидаемое изменение в python 3.13 - возможность отключить GIL. В этом видео мы с вами рассмотрим что такое GIL, как можно обойтись без него сейчас и какой производительности получится добиться в новой версии питона.
РАСКРЫВАЮ РЕАЛЬНЫЕ ЗАДАЧИ PYTHON-РАЗРАБОТЧИКОВ | ЭКСПОРТНЫЕ ФОРМЫ
มุมมอง 7264 หลายเดือนก่อน
👉 Telegram: t.me/pavlin_share/ В этом видео мы с вами посмотрим на реальную задачу python-django разработчиков, которые они решают каждый день. Мы посмотрим на постановку задачи, и способ ее решения с помощью openpyxl библиотеки.
Замени свой терминал на Warp [Any]
มุมมอง 2K4 หลายเดือนก่อน
👉 Telegram: t.me/pavlin_share/99 Скачать Warp (реферальная) - app.warp.dev/referral/24YGMR В этом видео мы расскажем о том, почему стоит заменить ваш текущий терминал на Warp. Вы узнаете о ключевых функциях, таких как рендер Markdown, работа с текстом как в IDE, использование AI, разделение на блоки и окна, а также о возможности создания команд через Workflows. Погрузитесь в мир современных воз...
FastStream - убийца Celery? [Any]
มุมมอง 1.7K4 หลายเดือนก่อน
👉 Telegram: t.me/pavlin_share 🎥 Чтобы не пропустить ничего важного и всегда быть в курсе, подписывайтесь на мой канал и активируйте уведомления! 🔔 Статьяна хабре от автора библиотеки - habr.com/ru/articles/822505/ github - github.com/Afaneor/simple-faststream-example В этом видео разбираем библиотеку faststream, ее сильные и слабые стороны, в каких проектах она может пригодиться, а где лучше из...
Как создать serverless Telegram-бота на Python
มุมมอง 9324 หลายเดือนก่อน
Как создать serverless Telegram-бота на Python
BACKEND для Hamster Kombat | Django [ANY]
มุมมอง 9505 หลายเดือนก่อน
BACKEND для Hamster Kombat | Django [ANY]
Создаем свой Hamster Kombat | Проектирование [ANY]
มุมมอง 1.7K5 หลายเดือนก่อน
Создаем свой Hamster Kombat | Проектирование [ANY]
Фишки f-строк о которых ты не знал [Junior]
มุมมอง 6236 หลายเดือนก่อน
Фишки f-строк о которых ты не знал [Junior]
Зачем нужны select_related и prefetch_related [Upper Junior]
มุมมอง 5896 หลายเดือนก่อน
Зачем нужны select_related и prefetch_related [Upper Junior]
Как восстановить docker после блокировки | Зеркала [Any]
มุมมอง 3.7K6 หลายเดือนก่อน
Как восстановить docker после блокировки | Зеркала [Any]
Кэширование в Python | Redis [Upper Junior]
มุมมอง 7966 หลายเดือนก่อน
Кэширование в Python | Redis [Upper Junior]
Добавляем логин через telegram в web-приложение [Upper Junior]
มุมมอง 1.6K6 หลายเดือนก่อน
Добавляем логин через telegram в web-приложение [Upper Junior]
Осваиваем Celery: Задача с реального Django проекта
มุมมอง 1.2K7 หลายเดือนก่อน
Осваиваем Celery: Задача с реального Django проекта
РЕАЛЬНЫЕ рабочие задачи на django | Создание модели и API
มุมมอง 1.8K7 หลายเดือนก่อน
РЕАЛЬНЫЕ рабочие задачи на django | Создание модели и API
Используй эти структуры данных из модуля collections [Upper Junior]
มุมมอง 7507 หลายเดือนก่อน
Используй эти структуры данных из модуля collections [Upper Junior]
Как работают словари в Python | Хэш-таблицы [Any]
มุมมอง 2.1K7 หลายเดือนก่อน
Как работают словари в Python | Хэш-таблицы [Any]
Разрабатываем ИТ продукт с нуля | Бизнес модель и требования [Any]
มุมมอง 6397 หลายเดือนก่อน
Разрабатываем ИТ продукт с нуля | Бизнес модель и требования [Any]
1 billion row challenge на Python [Any]
มุมมอง 1K7 หลายเดือนก่อน
1 billion row challenge на Python [Any]
Выучи Python Классы На Примере Автобатлера [Junior]
มุมมอง 1.4K8 หลายเดือนก่อน
Выучи Python Классы На Примере Автобатлера [Junior]
Минимальный уровень Django для первой работы [Junior]
มุมมอง 1.3K8 หลายเดือนก่อน
Минимальный уровень Django для первой работы [Junior]
Разберись с SOLID на Python примерах [Upper Junior]
มุมมอง 3.1K8 หลายเดือนก่อน
Разберись с SOLID на Python примерах [Upper Junior]
Что нужно знать перед изучением фастапи?
Минимально достаточно понимать код, который написан в документации и примерах
@nikolaypavlin спасибо. А асинхронку насколько глубоко и хорошо надо понимать ? Если можно соизмерить как-то )
Спасибо за видео - очень полезно!
а можно жит?
подписался, вот оставляю комментарий.
а если к делу, то отличный контент
Остается только оплатить ChatGPT =)
Можно ли использовать Ваш аппарат людям с кардиостимуляторами?
К сожалению у нас еще не было возможности провести исследования на безопасность и точность измерений при наличии кардио стимулятора, чтобы ответить этот вопрос.
Очень интересно) а какие подводные камни присутствуют? (из явных)
Не совместить с некоторыми библиотеками - основной нюанс
Вам только говно варить а не разробатывать медицинские приборы😂
Спасибо за видео. Очень классно. А по graphQL strawberry будет видео (обработка ошибок если что-то не найдено или нет прав, авторизация, регистрация, пагинация данных при запросе и т.д.)?
Бро как ты такой красивый терминал сделал?
Замени свой терминал на Warp [Any] th-cam.com/video/L_thDzg1LRg/w-d-xo.html
Боже, я 5 суток изобретал велосипед. Искал по всем бтуб видео. И гайдам по инету. А тут случайно наткнулся и такое сокровище! Спасибо за контент, такой нужный. Подписался тут и в тг
А можно ссылку на гит?
UPD нашел
Позвольте Вопрос. У меня есть приложение на джанго. Я его хочу использовать как телеграм приложение. Пытаюсь сделать вход в приложение через телеграм. Что бы юзер использовал тг аккаунт, как аутентификацию. Уже 5 сутки мучаюсь, не могу это реализовать. Есть у Вас идея, как можно это сделать? Может простейших код у вас есть? Или вы делали что-то похожее?
Автору вопроса помогло вот это видео: Я Написал Клон Hamster Kombat! ПОЛНЫЙ РАЗБОР ПРОЕКТА th-cam.com/video/6mj9x5bx6z0/w-d-xo.html
Очень крутое объяснение! Всё наглядно, понятно и структурировано. Спасибо
было бы ещё круто эти файлы на гитхаб залить и ссылочку дать. т.к. веду свой конспект и было бы удобно вставить это туда
Мелочь, а приятнААА)))
Вот вы сказали в самом начале 1.py что это метод, а не функция разве? Я начинающий и хотелось бы понимать..
@@maksimvasilyev4684 без таймкода сложновато, но концептуально - метод это функция у класса/объекта Но это все про формальные обозначения, я бы не назвал это чем-то важным
Гениально! Спасибо тебе большое, жаль дать пока не чего...
Обратная связь - это очень ценно
Прекрасная подача, все достаточно кратко и по делу. Первый раз столкнулся с логами и благодаря этому видео все смог настроить
Отличное видео! А вот эти все манипуляции с логами не ресурсно затратны? Мне казалось в бэкенде каждый байт экономят: вместо f строк - .formating и тп
Не знаю откуда предополжение, что f-строки медленнее, мне казалось, что уже давно не так, для себя пруфанул это вот так: import timeit # Исходные данные для подстановки name = "Alice" age = 30 city = "Wonderland" occupation = "Software Engineer" * 100 # Короткая строка def f_string_short(): return f"{name}" def format_string_short(): return "{}".format(name) # Средняя строка def f_string_medium(): return f"{name} is {age} years old and lives in {city}." def format_string_medium(): return "{} is {} years old and lives in {}.".format(name, age, city) # Очень длинная строка def f_string_long(): return f"{name} is {age} years old, lives in {city}, and works as a {occupation}. " def format_string_long(): return "{} is {} years old, lives in {}, and works as a {}. ".format(name, age, city, occupation) # Количество повторений для точности измерений repetitions = 1_000_000 # Бенчмарк results = { "f_string_short": timeit.timeit(f_string_short, number=repetitions), "format_string_short": timeit.timeit(format_string_short, number=repetitions), "f_string_medium": timeit.timeit(f_string_medium, number=repetitions), "format_string_medium": timeit.timeit(format_string_medium, number=repetitions), "f_string_long": timeit.timeit(f_string_long, number=repetitions), "format_string_long": timeit.timeit(format_string_long, number=repetitions), } print(results)
В целом оверхед на логи безусловно есть, но это то, что позволяет отлаживать ход программы + можно гибко настраивать уровни логирования, как в виедо смотрим и в проде выводить только ошибки и ворнинги, а много дебага только у себя локально
@@nikolaypavlin Проблема с f строками достаточно проста, она интерполируется каждый раз даже если не будет записана в лог, а еще в документации прямо написано про отложенную интерполяцию записей в таком стиле logging.info("The value of x is %d", x), в асинхронном коде так и вовсе прикол что по факту записываются слегка неточные логи из за гэпа между реальным созданием f строки и непосредственной записью в ту же ёлку или clickhouse Касательно производительности вопрос к памяти в целом, зачем каждый раз создавать объект f строки, если на уровнях выше debug или даже info они будут куда более редкими. Это что то типо best practices если я вообще правильно помню. В вашей бенчмарке отложенной интерполяции нету да и важно наверно это только где внешние системы логирования аля grafana
Отличное объяснение, все четко и понятно. Мне как начинающему бекендеру было все ясно
После создание роутеров v1 и v2 в свагере мы так же можем увидеть и users. Как избавиться от этого дублирования? 10:30
Для этого и создаются v1 и v2, чтобы и там и там были доступны endpoint-ы В v1 мы сохраняем предыдущий контракт (формат апи) А в v2 модем учесть новые изменения
@nikolaypavlin когда мы делаем route.include(some_route) route.include(some_route2) и дальше подключаем в app, то у нас всегда будет набор эндпоинтов дублироваться?
Видос имба, хотелось бы что-то похожее про вьюсеты и роутеры(+как делать вложенные эндпоинты с ними)
привет запиши ролик или инструкцию как на сервере запустить чтобы не на своей локальной машине. я не особо с докером дружу буду благодарен и не только я наверное.
Я правильно понял, что под капотом есть обобщенный метапромпт, который используется как промпт при обращении к llm для генерации уже результирующего конкретного промпта?
Абсолютно верно
А как использовать данный промпт в браузере? Просто скопировать его?
Можно скопировать метапромпт и подставить в него задачу свою
Ещё!
содержание вашего канала очень полезное для начинающих(для меня каждая тема вашего видео - рай), спасибо за старания. Особенно спасибо за объяснения паттернов,ибо смотреть англоязычные видео с корявым переводом от Алисы огромная боль
Кастомной точно буду пользоваться 👍
Приветствую. Спасибо тебе огромное за твои труды, информация легко воспринимается. Пагинация, насколько я понял часто используется. Для профи это конечно задачка простая и он ее может кастомно решить для себя в удоном ему формате. А вот для новичка, который решил окунуться с ходу в FASTAPI не особо просто разобраться в этой кухне, т.к. примеров именно с FASTAPI я пока не нашел. Если будет возможность запиши ролик реализации пагинации на реальном примере для вывода табличных данных из БД (sqlite) в фронт с применением JINJA2 с обычным текстовым оформлением или если есть навык в bootstrap. Уверен, ролик будет иметь спрос, т.к. ничего подобного я пока не нашел.
Самое забавное, когда я учил классы, я без всяких гайдов осваивал ооп создавая свой автобатлер . Сражались у меня гладиаторы ))
Лайк за крупный шрифт!
ты индус?
Как сделал вывод?
@@nikolaypavlin да столько всего вообще, а потом ещё твоя фраза: "Да я думаю это не большой проект"
@@АксёновАлексей-ш9ч тогда зачтем, как комплимент, в плане трудолюбия, но на ютубе, на самом деле все небольшое, как видишь пишется все за час, из готового шаблона уж точно
Вот сейчас звук идеально настроен)
Нужно было привыкнуть к этому сетапу в плане настройки, теперь без косяков получается
Сейчас в проекте пробую использовать django-ninja+django-ninja-extra получается приятнее чем DRF, ИМХО
Свои плюсы точно есть, но видел на реддите рассуждения, что там производительность достаточно низкая, возможно уже пофиксили, потому что был тред на гит хабе
Классный видос, классный канал, спасибо!!!
Вообще один из лучших каналов которых я видел.... Не заслуженно мало лайкосов. Спасибо вам за такой качественный материал. !
отличный ролик
Начал смотреть видео 7 минут мне кажется что автор уже гений просто какой-то, шрифты в описание проекта всё ещё можно прочитать, Я предлагаю присмотреться к китайским иероглифам, а редактор кода на экране можно ещё сильнее уменьшить.
Программная оболочка хорошая, пока только есть моменты связанные с достоверностью показателей ЭКГ, давления и пульса, меня настораживает компактность прибора, от пальцев измерить давление это уже из области медицинской фантастики, давление мериться на предплечье, рука должна быть рядом с сердцем, а вот от сканера двух пальцев информация на выходе будет вряд ли точной и достоверной. А алгоритм может нарисовать всё что угодно, как и наручные часы Galaxy Watch, где датчики есть, но вот пульс достоверно они не могут измерить, в отличие от тонометра.
На самом деле в плане ЭКГ это давно известная технология снятия ЭКГ I-отведение, т.е. оно не такое подробное как двенадцати канальное, когда вам закрепляют электроды на запястья, ноги и тд., но нам видны аритмии и другие отклонения. Соотвественно пульс насчитывается на основе ЭКГ (время между R пиками (ударами сердца)), а вот давление это наш уникальный алгоритм. Он основан на сопоставлении сигналов ЭКГ и ФПГ (центральный датчик, так что пальцев необходимо прикладывать 3) он схожий с датчиками в пульсоксиметре, т.е. просвечивает сосуды и на основе данных роста, веса ЭКГ и ФПГ (то есть мы знаем, когда кровь пошла по сосудам) мы рассеиваем давление программно
@@nikolaypavlin будут погрешности в расчётах, на тонометре к примеру я могу точно отслеживать свои показатели давления, это точный медицинский прибор, мне не нужно искать среднеарифметическое значение из 3 разных показаний, но а в целом прибор интересный, по крайней мере Программное обеспечение хорошее с алгоритмом.
Только сейчас узнал , что в пакет в файл __init__ можно __all__ .... Как-то вообще не сталкивался , удобно
Что-то новое, это радует!
Добил ))) ждём фронт и аутентификацию Борна )
В ру сегменте это один из самых качественных контентов по теме. Спасибо
Интересный проект. Хорошо было фронт на Vue. Ну и повторю просьбу про GraphQL на Fast API+ docker+ redis.
Принимается, будем делать
Почему Брендон Фрейзер учит меня FastAPI
Спасибо большое за видео
Го видео про архитектуру
Вот спасибо, сейчас закрепим)
А почему вы выбираете tortoise вместо алхимии? Спасибо за видео!
Очень схожий с Джанго интерфейс для работы, что мне гораздо привычнее
@@nikolaypavlin спасибо!
Тебе уже говорили, что ты похож на Элвиса Пресли? :D
Добавляем в копилку схожестей, но пока хедлайнер Брендан Фрейзер