Асинхронный сервис под нагрузкой «раздувается» по памяти: создаются тысячи задач через asyncio.create_task, но нагрузка на CPU низкая. Как ограничить параллелизм и удержать память?
Ввести backpressure: использовать ограниченную очередь/семафор (asyncio.Semaphore, asyncio.Queue) или TaskGroup с лимитом; батчировать работу, await-ить завершение перед запуском новых задач, таймауты/отмена подвисших тасков, и не хранить ссылки на завершённые задачи (во избежание удержания памяти).
Библиотека собеса по Python
Библиотека собеса по Python
Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇
Forwarded from Proglib.academy | IT-курсы
Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности
На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как спроектировать CLI-утилиту с подкомандами, автокомплитом и хорошей тестируемостью?
Постройте команды как чистые функции и свяжите их через Typer/Click; типизируйте параметры (Typer читает type hints), включите генерацию completion-скриптов, не делайте тяжёлую работу на уровне импорта. Пакуйте через pyproject.toml и console_scripts, логируйте в stderr. Тестируйте CliRunner/subprocess с фикстурами и золотыми эталонами вывода.
Библиотека собеса по Python
Библиотека собеса по Python
Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇
Forwarded from Proglib.academy | IT-курсы
Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science.
В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.
Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки
Please open Telegram to view this post
VIEW IN TELEGRAM
У вас есть Python-сервис, который обрабатывает асинхронные запросы через asyncio. При нагрузочном тесте задержки начинают расти, хотя CPU и память почти не используются. В чём может быть причина и как её решать?
Скорее всего, внутри event loop есть блокирующие операции (синхронные вызовы к БД, файлам или тяжёлые вычисления). Их нужно вынести в отдельный процесс или поток (ProcessPoolExecutor/ThreadPoolExecutor) либо заменить на асинхронные аналоги библиотек.
Библиотека собеса по Python
Библиотека собеса по Python
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.
— когда дорогая модель действительно нужна, а когда хватит дешёвой;
— сколько стоит один прогон и куда уходят токены;
— какие задачи можно отдавать субагентам;
— как настроить маршрутизацию моделей;
— что проверять в AI-коде перед merge.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как спроектировать безопасную плагинную систему без «грязных» импортов?
Определите стабильный интерфейс (например, Protocol), открывайте плагины через importlib.metadata.entry_points() по своему namespace, проверяйте версию/метаданные и оборачивайте инициализацию в таймаут/изоляцию. Недоверенные плагины гоняйте в отдельном процессе с IPC (gRPC/stdio), ошибки — в карантин, ведите allowlist/подписи и телеметрию.
Библиотека собеса по Python
Библиотека собеса по Python
👁👁 Тестовый собес на Python с разработчиком из Яндекса
[+ ответы на 50 сложных вопросов в подарок]
14 октября в 19:00 (МСК) приходи посмотреть открытое онлайн-собеседование на Python-разработчика.
Интервьюер: Хачатур Саркисян – разработчик из Яндекса, работает с высоконагруженными сервисами, Kafka и микросервисной архитектурой.
На эфире нет сценария ↓
Кандидат – случайный разработчик, который не знает вопросов заранее.
На обычном собесе ты не знаешь, что думает интервьюер, пока не придёт фидбек. На этом эфире Хачатур проговорит всё вслух:
А в конце ответит на твои вопросы.
Эфир проходит в рамках менторской программы от ШОРТКАТ для разработчиков, которые хотят повысить грейд, ЗП и прокачать скиллы!
Участие бесплатное 🔥
🎁 За регистрацию дарим файл с ответами на 50 сложных вопросов с Python-собеседований.
Зарегаться на эфир и забрать подарок можно в боте → @shortcut_py_bot
Реклама.
О рекламодателе.
[+ ответы на 50 сложных вопросов в подарок]
14 октября в 19:00 (МСК) приходи посмотреть открытое онлайн-собеседование на Python-разработчика.
Интервьюер: Хачатур Саркисян – разработчик из Яндекса, работает с высоконагруженными сервисами, Kafka и микросервисной архитектурой.
На эфире нет сценария ↓
Кандидат – случайный разработчик, который не знает вопросов заранее.
На обычном собесе ты не знаешь, что думает интервьюер, пока не придёт фидбек. На этом эфире Хачатур проговорит всё вслух:
— какие вопросы и задачи он даёт кандидатам в бигтехе;
— что в каждом ответе засчитал бы, а что нет – и почему.
А в конце ответит на твои вопросы.
Эфир проходит в рамках менторской программы от ШОРТКАТ для разработчиков, которые хотят повысить грейд, ЗП и прокачать скиллы!
Участие бесплатное 🔥
🎁 За регистрацию дарим файл с ответами на 50 сложных вопросов с Python-собеседований.
Зарегаться на эфир и забрать подарок можно в боте → @shortcut_py_bot
Реклама.
О рекламодателе.
❤1😁1
Почему defaultdict.get не создаёт значение?
Что выведет этот код и при каком обращении появится ключ? Проверено на CPython 3.12.14 и 3.13.1.
Результат: None, затем пустой словарь, затем 0 и словарь {'api': 0}. Метод get не вызывает __missing__ и не обращается к фабрике int. Доступ через квадратные скобки вызывает __getitem__, а при отсутствии ключа — __missing__. Фабрика создаёт 0, значение записывается в словарь.
Документация
Библиотека собеса по Python
Что выведет этот код и при каком обращении появится ключ? Проверено на CPython 3.12.14 и 3.13.1.
from collections import defaultdict
counts = defaultdict(int)
print(counts.get("api"))
print(dict(counts))
print(counts["api"])
print(dict(counts))
Документация
Библиотека собеса по Python
Forwarded from Библиотека программиста
Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?
Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.
В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.
Please open Telegram to view this post
VIEW IN TELEGRAM
Выходные — хороший повод заняться тем, на что вечно не хватает времени. Например, освоить новый навык или углубиться в знакомую тему.
Вот несколько сочетаний:
Можно выбрать и другие курсы — под свои интересы и цели.
Please open Telegram to view this post
VIEW IN TELEGRAM