Асинхронность в McDonalds и Python
ฝัง
- เผยแพร่เมื่อ 11 ก.ย. 2020
- Мой курс «Хардкорная веб-разработка» - course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
Telegram: t0digital.t.me
Сказать спасибо за это видео можно здесь - boosty.to/digitalize.team
Для тех, кто ещё не разобрался в том, что такое асинхронность и как она работает в Python (и не только) - поищем асинхронность в McDonalds!
/****************** about ******************/
Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
- Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
- Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
Telegram канал - t.me/t0digital
ВК - digitalize.team
RuTube - rutube.ru/channel/24802975/ab...
Дзен - dzen.ru/id/6235d32cb64df01e6e...
" - Не хочу офисным планктоном работать, выучу ка лучше Python и пойду прогать. Так что там на ютабчике свежего по теме: - McDonalds и Python, понял тебя вселенная, вопросов больше не имею"
Хахаах :)))
@@t0digital не нужен нам пайтон, в макдональдс и с русским берут
и как успехи?
Даёшь выпуск по Celery! Желательно не про то зачем нужны отложенные задачи, а про то как оно работает
как-нибудь сниму
@@t0digital Ждём=)
Тут его не жалуют особо, уже спрашивали.
Да и вообще не очень понятен ажиотаж вокруг него: большинство задач, к которым пытаются его применить, решаются кроном.
@@t0digital Ждём (2) :D
Да, было бы круто сравнить celery и cron, стоит ли вообще устанавливать и настраивать celery и redis, если на любом Linux стоит крон. Спасибо!
Кто-то: программирование это очень сложно!
Диджитализируй: представим себе кассира в Макдоналдсе...)
Мотивация, если не учится, то можно самому стать кассиров в маке
Классное объяснение, это четко показывает разницу между long-polling и django channels
Спасибо! Как всегда все четко и понятно!
Асинхронно и точка. Спасибо за то что Вы делаете ;)
Очень крутое объяснение! Спасибо большое!
Очень классно объяснил🔥
круто, все понятно, спасибо!)
Отличный пример! Спасибо
Просто и со вкусом. Спасибо!
Как всегда, лаконично и по делу, отличный пример, спасибо!
спасибо!
Спасибо за то, что ты делаешь!
Спасибо огромное за достойный грамотный контент !
Что, круто в IT, так то, что понял одно и это тебе дает понимание того, как работают некоторые другие вещи. Понимание мультизадачности операционной системы -> понимание работы асинхронных библиотек в Python.
Да, 100%!
наглядненько, спасибо!
Очень понятно, аж кофе захотелось ))
Информативно и качественно!
был бы очень рад такому, когда был новичком, супер!
Отличный контент! )
Классное объяснение, спасибо
Лайк как обычно, спасибо за видео
Спасибо!
Спасибо за видео!
Жду еще уроков по ботам в телеге))
интересная тема, отличный канал!
Спасибо!
Жду разбор асинхронности с кодом :)
Будет!
Тоже жду. Сколько не вдуплял в асинхронность, а руки боятся его писать.
@@t0digital а разве не было у вас на канале такого видео? Вроде бы вы разбирали асинхронность когда рассказывали о разнице между многопроцессорностью, многопоточностью и т.д.
@@user-dy6mq5yj4q видимо люди ждут больше кода с объяснениями, как работает асинхронность и как ей пользоваться
@@t0digital ну когда же. Очень хотелось бы какой-нибудь пример имитирующий реальную работу. Например сделать какую-нибудь бд допустим при помощи ORM Peewee на sqlite и чтобы она взаимодействовала через requests с каким-нибудь сервером, типа httpbin.org . Вот в таком примере сразу можно будет показать и работу с БД и работу с сервером, что действительно раскроет все преимущества асинхронности. Кроме того это может стать единственным практическим примером такого рода не только в рунете, но и по факту во всём интернете.
Было бы классно услышать от вас понятным (а на этом канале, похоже, иначе не бывает) языком о регулярных выражениях в питоне: где их используют в реальных продуктах, как и зачем они работают )))
А видео однозначно очень полезное и раскладывающее всё по полочкам для новичков, спасибо за контент!
Спасибо! Сделаем :)
наконец то видио, которое мне обьянило эту ассинхроность
Молодец спасибо большое
Гениально обьяснил !! )
Да согласен ,четко объяснил )
Ролик в принципе про "асинхронность" можно смотреть. Хорошая подача материала.
Спасибо, круто обьяснил
Теперь когда буду заказывать кофе или мороженное, все время буду вспоминать про асинхронность🤭
Спасибо!
Очень крутые выпуски, все кратко и по делу! Автору большой респект!👊🏾
Хотелось бы выпуск о инструментах Linux конкретно для python разработчика, что необходимо знать и какими инструментами нужно владеть чтобы обслуживать свое приложение хотя бы базово (поднятие своего сервера, деплой веб-приложения, настройки ssl и т.п).
про линукс для питон разраба плюсую, только начал к этому подходить и собираю инфу по частям из разных источников
Очень круто и наглядно, спасибо!
Как скоро можно ожидать перезапуск курса? :)
Как обычно лайк
Спасибооо!
Такое простое объяснение и так шикарно преподнесено. Жаль, я раньше об этом примере не слышал, каждый от себя объяснял. Спасибо за видео! А теперь можно парочку хороших библиотек посоветовать с асинхронностью в python? :3
пример зачетный)
Алексей как обычно, за 6 мин легко объяснил то, что другие за 30 не могут)
Спасибо:) Рад, что полезно
@@t0digital Вам большое спасибо, очень полезно!
Думаю этот чел заслуживает огромного респекта!
Спасибо!
Спасибо
Оставлю комментарий для продвижения супер канала.
спасибооо!
Спасибо за контент! Лучший в ру-нете🙃🙏🏽🙏🏽
Спасибооо🙏
Вот бы иметь такого лида как ты! Топ 🔝
Спасибо!
Да, встречался я с таким асинхронным кассиром на заправке.. С бургерами и т.д. Дико медленно ей это удавалось)
спс
Спасибо за видео! С профессиональным праздником!
С праздником!
Thanks bro for labour
Было бы интересно видео по django channels + Daphne, работа с веб-сокетами, рассмотреть как там реализована асинхронность
Спасибо за видео, коллегам покажу, а то сделали из nodejs серебрянную пулю
У меня была точно такая же идея, после прочтения вот этой книжки
Using Asyncio in Python: Understanding Python's Asynchronous Programming Features
Книжку рекомендую)
Класный пример. Респект. Изучаю сейчас aiohttp. Было бы очень интересно посмотреть на риализацию вами не сложного поиложения на данном фреймворке.
много лайков, бро
Чтобы приблизиться к пониманию нужны курсы... Когда же они будут?!))
Лови лукоса, дружище!
Спасибооо!
@@t0digital Спасибо за интересный контент, доходчивые объяснения!
У меня в последнем проекте (с++, linux) крутилось около 60 потоков на 4 ядерном бюджетном pentium. Это что то связано с сотовой связью. Это удивительно, но этот pentium на ура справлялся с поставленными задачами. Но это с++11 и вытесняющая многозадачность linux. Почти каждый поток осуществлял сетевой обмен (zeromq). Так как сетевые карты используют режим dma , удавалось очень эффективно использовать процессор.
Аналогии это хорошо. Не хватает кода с объяснениями на реальном примере. Например, задача: есть пул урлов и нужно сохранить полученный html-контент каждого сайта в текстовый файл. Сначала синхронный код, смотрим и понимаем где теряем время. Затем асинхронный код с пояснениями логики выполнения. И ещё пара примеров, в каких ещё ситуациях можно применить асинк.
Привет) Как всегда топ видео. Спасибо. Дай ответ плз - что там по поводу курсов??? а то пропустил этот моммент. Оч прошу ответ)
Привет! Все будет на канале. Скоро запуск
@@t0digital Спасибо большое. Не хочу пропустить релиз и ге записаться на курсы или не купить их. Это единственные курсы, за которые готов заплатить. И тот случай, где я их приобрету и только потом спрошу "сколько они стоят")))
Благодаря тебе начал учить программирование, устроился на фирму, начинал с чистого питона, сейчас уже на 3 языках кодю (вообще без разницы что за язык ты используешь, как говорила моё новое начальство - тебе дали знания, а синтаксис языка выбирай сам), особо без разницы что за фреймворк, учишь их в процессе работы на проекте уже и вникаешь) главное база - все остальное мелочи)
Это мой манифест небольшой тебе. Огромное спасибо за твои видео и советы. Многое как находка и очень полезное в тот или иной момент.
Жду курсов с нетерпением))
Продолжай делать видосы)
Спасибо)
Так быстро и понятно объяснил, что я покушать не успел(
Ну воооот:)!
Я конечно больше люблю пример с поездами, так как он более нагляден на нескольких ядрах, да и иногда смысл есть частично парралелить задачи в зависимости от количества ядер и потоков процессора
спасибо за такой видос и за объяснение темы асинхронности (лайк поставил), но к сожалению таких объяснений достаточно полно в интернете, примеры кода с асинх. запросами на разные сайты и т.п. Чего же в малых кол-вах, или же нет вовсе, реальных примеров с объяснениями в виде какого нибудь приложения. Находил да они есть но без объяснения не понятно. Из-за этого плохо идёт обучение по этой теме. Хотелось бы видоса на часик кода с реальным проектом на aiohttp или со связкой других aio lib с объяснением работы asyncio, event loop и как похожее написать. Было бы не плохо
Будет такой видос. Правда по fastapi, познакомился с ним поближе - понравился сильно больше, чем aiohttp. Хотя собстна веб фреймворки и сама тема асинхронности это все же разные темы. Сначала надо понять асинхронность, что это, зачем это, когда оно нужно, как писать асинхронный код, а потом уже фреймворки
@@t0digital круто. Есть канал "FastAPI Channel" там инфы уже полно по нему чувак накидал. Тоже загорелся этим фреймворком, а вот по aiohttp чет маловато инфы, как и по starlette.
@@aleksandrsadchikov3704 по aiohttp и инфы мало, и дока отстой. В пень aiohttp)
если принимаются заказы на следующее видео, то можно плз про graphQL
однажды будет видео про graphql
Хорошее видео и пример хороший, спасибо! Сними, пожалуйста, видео про fast api. Может быть, небольшой сервис с веб сокетами? Что-нибудь, что проблематично или пока что невозможно на Джанго 3?
планирую такое видео, да
@@t0digital отлично! Уже жду с нетерпением)
За видос Макдак должен занести мешок бургеров, ведро колы и мороженку🍦
Ох, от мороженки бы щас не отказался)
Здравствуйте. Во-первых, большое спасибо за Ваши видео, они весьма полезны и информативны. Во-вторых, не могли Вы показать пример, как все таки реализуется вот эта асинхронность (обращение в БД, например) на примере http запроса на какой-либо url и обработчика этого запроса? Как правильно это делает? В бизнес логике реализуется класс какой то? Или можно не зависимые методы создавать?
Спасибо! Обязательно будет такое видео
Не всегда один процессор и асинхронность хуже чем синхронность. По крайней мере в БД. В БД очень важна пакетность. Поэтому если один кассир сначала примет заказы у нескольких клиентов а потом пойдет делать несколько бургеров сразу, то отдельно взятый покупатель получит свой бургер может и позже чем при ассинхронной работе кассира, но в совокупности кассир обслужит всех куда быстрее чем синхронно
Прикольно : просто и понятно :) Теперь мир уже никогда не будет прежним :))
Отлично:) Спасибо!
Походу курс пилится;) Видосики прорежены)
Блин, вот захотелось бургер поесть после просмотра)
Так оно и бывает:) во Fridays с теннесси-соусом их фирменный бургер ммм)))
коммент для поодержки )
подскажите, пожалуйста, с помощью чего рисовалась схема с примером асинхронной варки кофе, которая в стиле "от руки нарисована"?
Draw.io
Привет! В одном из твоих видео видел компактную клавиатуру с жёлто-синими клавишами, можешь сказать название модели?
Привет! Leopold fc660m PD
Привет! Не мог бы посвятить отдельно плейлист для автоматизации на пайтоне, сейчас в линукс администрировании требуют наличие опыта написание скриптов, было бы не плохо увидеть уроки от А до Я
а что конкретно было бы интересно посмотреть по автоматизации на пайтоне?
@@t0digital думаю дело не то что хотелось бы увидеть, а увидеть уроки что да как и что приходиться автоматизировать обычному Linux админу в продакшене, даще на примере той же вашей компании
Когда начнётся курс? Вроде говорили конец августа
Дорабатывается ещё. Выйдет 1 модуль в сентябре. Вся информация будет на канале.
Хорошая реклама Макдональдса
Продвижения ради коммент.
Спасибооо!
Надо четыре слова)
Секс для глаз и ушей, крайне качественно снято.
3:05 - рецепт бургера
А можно вставлять лучшие комментарии с прошлого видео?)
Можно:)
@@t0digital запихните меня туда,за идею)
наверно по мак учитывае пару кассиров выглядит так
int cassir(work);
{
cas1 = asinchron
cas2 = asinchron
}
привет. а как быть в таком случае?
Мы проанализировали скорость обращений к БД и решили, что будем работать синхронно, т.к. в асинхронности нет смысла, - время обращения к БД малое.
Работаем синхронно, все хорошо, но тут на сервер БД прилетает со стороны сильная нагрузка и БД начинает отдавать ответы на наши запросы ощутимо дольше.
Если мы работаем синхронно, то время ответа "кассира" "клиенту" сильно увеличивается и как тогда быть с новыми "клиентами" ? Они придут, подождут в очереди, возмутятся "почему приходится так долго ждать? пойду в КФС / уйду вообще". В итоге получаем снижение качества обслуживания.
Как выпутываются из ситуации в этом случае? Автоматически переключаются на асинхронный режим работы ?
А кроме как похода в бд или в сторонии апи , где ещё применима асихронщина?
Везде, где есть значительное время ожидания. Ожидание ввода от пользователя, когда на фоне надо что-то делать. Парсеры - послать и обработать много запросов куда-то. Почти все веб приложения. Работа с файлами
Не хватает примеров где процесс ожидает, а где нет. С бд и внешним подкючением всë понятно. Говорят что это работает на операциях ввода-вывода, но я как то гуглил, что то списка этих операций не нашел. Например в этот список вроде как входит запись и чтения из файла, но разве этот процесс долгий, только если есть необходимость выгрузить весь файл сразу в память. Так же не хватает примеров библиотек, потому что ты такой на радостях, ассинхронный код крутой, открыл свой проект в джанге, помучался и понял что это работать не будет. Просто основы в сети найти не проблема, а вот понять где и когда использовать проблема. Про асинхронность думаю уже года 2,но всë еще не использую
Якраз сьогодні читаю про coroutines і yield, yield from. Тяжко дається, бляха-муха. :)
А как лучше забирать данные, полученные при асинхронной обработке?я правильно понял, что при обработке запроса формируется поток запроса к стороннему сервису,а респонс возвращается ещё без данных?
покажу в следующих видео, да
Вопросик. В ayncpg есть защита от sql инъекций, или об этом нужно самому позаботиться? А pydantic это умеет?
Pydantic не имеет отношения к БД, его можно использовать и без базы. Asyncpg защищает от инъекций, если правильно им пользоваться, как и другими библиотеками. Общая практика - не вставлять в запросы сырые данные, все через параметризованные аргументы. То есть:
name = "Bob"
row = await conn.fetchrow("SELECT * FROM users WHERE name = $1;", name)
вместо:
row = await conn.fetchrow(f"SELECT * FROM users WHERE name = '{name}';")
@@t0digital Ого, спасибо большое за ответ.
@@t0digital скажи пожалуйста, как это защищает от такого?
name = "Bob; DELETE TABLE users"
row = await conn.fetchrow("SELECT * FROM users WHERE name = $1;", name)
в базу уйдет такой запрос:
SELECT * FROM users WHERE name = 'Bob; DELETE TABLE users';
он ничего не удалит
@@t0digital Спасибо) в документации почитал, там то ли написано не было, то ли я очень поверхностно прошелся. Точнее DROP а не DELETE)))
Лайк и какой-нибудь коммент!
Здравствуйте, возник вопрос как интегрировать сторонние API с Python
через requests или aiohttp шлем запросы, парсим результаты, используем данные - как-то так
{комментарий}
Ребята, хочу добавить, смотрите внимательно видео, хорошо учитесь, пишите качественный код.. чтобы потом не отмечать свое 30-тилетие в макдональдсе..
и не кричать: "Свободная касса!"
Автор насчет "варит кофе" А кто это варит? Я правильно понимаю это ОС? Ведь не сам же интерпретатор все это выполняет??
Уточните вопрос, не понял
@@t0digital Пока интерпретатор последовательно выполняет код, кто выполняет асинхронные действии? Операции ввод/вывод, запросы.
А жонглировать помидорками, пока идешь за кофе - это уже мультитрэдинг?
Леша, кофе в Маке - это дно :) Уж лучше крафтовый...
Ыээ, лучшее вообще объяснение. Хехе. Препод твоё видео посоветовал посмотреть. Теорию почитал и там так сухо и в то же время размыто написано, а тут с первых секунд понятна логика асинхронности. М-да, вот бы все так умели объяснять за пару минут, а не расписывать непонятную воду размером с учебник.
Я так понимаю многопоточное это когда много кассиров
применительно к питону несколько кассиров это многопроцессность. Если бы несколько касс были многопоточностью, то из-за GIL в каждый момент могла бы работать только одна касса, остальные бы блочились
+
В чём отличие asycio от threading?
th-cam.com/video/JIp14T9bvvc/w-d-xo.html
Тоже самое что многопоточность в жаве?
Не, асинхронность и многопоточность это разное. Есть видео на канале
А тред в макдональдс это что?) и мультипроц