fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

Библиотека собеса по Python | вопросы с собеседований

Библиотека собеса по Python | вопросы с собеседований

رفتن به کانال در Telegram

Вопросы с собеседований по Python и ответы на них. Учиться у нас: https://clc.to/VcaMmg По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot

نمایش بیشتر
5 857
مشترکین
-224 ساعت
-117 روز
-4430 روز
آرشیو پست ها
Как реализовать exactly-once обработку событий в Python-сервисе с Kafka (consume → обработка → запись в БД/другую тему) при возможных падениях сервиса? Строим at-least-once + идемпотентность. Варианты: Transactional outbox: пишем результат и outbox-запись в одной БД-транзакции; отдельный паблишер надёжно читает outbox и шлёт в Kafka, после чего помечает запись. Или Kafka EOS: confluent-kafka с enable.idempotence=true и transactional.id; оборачиваем read-process-write и commit offset в одну Kafka-транзакцию. В обоих случаях делаем операции идемпотентными (ключи/версионирование), коммитим оффсеты только после durable-записи результата, храним processed keys (или используем upsert). Библиотека собеса по Python

Как корректно завершить FastAPI/asyncio-сервис без потерь данных: остановить фоновые задачи, закрыть соединения (DB/HTTP/Redis) и не зависнуть на выключении? Обработать SIGTERM/SIGINT через lifespan (@asynccontextmanager или app.router.lifespan): пометить приложение как «not-ready», перестать принимать новые задания, отправить отмену всем фоновым задачам (хранить ссылки/TaskGroup), дождаться их с таймаутом (await asyncio.gather(..., return_exceptions=True)), корректно закрыть пулы (await pool.close()), опустошить/дренировать очереди. Критичные операции обернуть в asyncio.shield/идемпотентность, прокидывать CancellationToken/timeouts, логировать незавершённые таски. Библиотека собеса по Python

🔥 Не пропустите событие осени для AI-комьюнити 24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты:
🔥 Не пропустите событие осени для AI-комьюнити 24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта» 😤 Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт: — почему ИИ-агенты сейчас на пике инвестиций — чем они отличаются от ChatGPT и обычных моделей — цикл агента: восприятие → планирование → действие → обучение — живое демо простого агента — как бизнес уже получает ROI до 80% ⚡️ Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире. ⏰ Мест мало, регистрация закроется, как только забьём комнату

В FastAPI-сервисе каждые ~60 сек появляются p95/p99 всплески латентности. Профилирование показывает короткие стопы event loop во время циклических сборок мусора CPython. Как диагностировать и сгладить проблему, не «просто отключая GC»? Включить телеметрию GC (callbacks, gc.get_stats()/get_threshold()) и пламеграфы (py-spy) вокруг пауз; найти источники циклов (крупные графы объектов, замыкания/кеши) через tracemalloc/objgraph. Снизить аллокации и циклы: __slots__, иммутабельные структуры, orjson, реюз буферов. Настроить GC: поднять пороги gc.set_threshold(...), вынести gc.collect() в фоновую периодику/idle-хуки, для hot-path — локально отключать циклический GC на время обработки и снова включать. Проверить, что паузы ушли и p99 сгладился. Библиотека собеса по Python

CPU-bound пайплайн распараллелен через multiprocessing, но под нагрузкой стал работать медленнее: рост RSS, высокий overhead и низкая утилизация CPU. Как диагностировать и починить? Померить накладные расходы на IPC/пиклинг (профилировщики, замеры времени map/submit). Укрупнить задачи (batch/chunksize), передавать большие данные через shared memory (multiprocessing.shared_memory, NumPy shared arrays / mmap) вместо копий, инициализировать тяжёлые объекты один раз в initializer воркера. Ограничить число процессов до числа ядер, избегать возврата больших результатов (писать в общий sink). Библиотека собеса по Python

Почему NumPy предпочтительнее Matlab, Octave, Idl или Yorick? NumPy — высокопроизводительная библиотека с открытым исходным кодом, которая обеспечивает сложные математические и научные вычислительные возможности. Она поддерживает следующее: ⚡️Мощные функции для выполнения сложных математических операций с многомерными матрицами и массивами. Операции с ndarrays NumPy примерно на 50% быстрее по сравнению с операциями с встроенными списками с использованием циклов. Эта эффективность очень полезна, когда массивы содержат миллионы элементов ⚡️Предоставляет синтаксис индексации для легкого доступа к частям данных в большом массиве ⚡️Предоставляет встроенные функции, которые помогают легко выполнять операции, связанные с линейной алгеброй и статистикой ⚡️Для выполнения сложных вычислений с использованием NumPy требуется всего несколько строк кода Библиотека собеса по Python

⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI 24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале. Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».
На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского. Подробности рассказываем в гс выше — включай, чтобы не пропустить.

Какие отличия между модулем, пакетом и библиотекой? Модуль — это отдельный файл на Python, который можно импортировать в скрипты или другие модули. В нем содержатся функции, классы и глобальные переменные. Пакет — это коллекция модулей, объединенных в одной папке для обеспечения единой функциональности. Пакеты импортируются так же, как и модули. Обычно они содержат файл __init__.py, который сообщает интерпретатору Python, что папка является пакетом. Библиотека — это совокупность пакетов. Библиотека собеса по Python

Какие отличия между модулем, пакетом и библиотекой? Модуль — это отдельный файл на Python, который можно импортировать в скрипты или другие модули. В нем содержатся функции, классы и глобальные переменные. Пакет — это коллекция модулей, объединенных в одной папке для обеспечения единой функциональности. Пакеты импортируются так же, как и модули. Обычно они содержат файл __init__.py, который сообщает интерпретатору Python, что папка является пакетом. Библиотека — это совокупность пакетов. Библиотека собеса по Python

📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным. Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта». 🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций. 🔹 Чем они отличаются от ChatGPT и обычных ботов. 🔹 Как работает цикл агента: восприятие → планирование → действие → обучение. 🔹 Живое демо простого агента. 🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%. Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏 👉 Регистрируйтесь через форму на лендинге

FastAPI + SQLAlchemy 2.0 (async). Под нагрузкой растёт latency, пул соединений к БД забит, запросы «висят». Как диагностировать и починить без тупого увеличения пула? Включить метрики/логирование пула (в т.ч. pool_size, overflow, время ожидания), найти долгие запросы (slow query log/EXPLAIN) и утечки сессий. Гарантировать жизненный цикл через контекст: async with AsyncSession() as s: .../sessionmaker, закрывать курсоры. Настроить pool_pre_ping/pool_recycle, таймауты (connect/statement). Ввести backpressure: лимитировать параллелизм (Semaphore/очередь), кратковременно ретраить. Оптимизировать SQL/индексы; при необходимости — кэш/батчи/денормализация. Библиотека собеса по Python

VK проводит Weekend Offer для бэкенд-разработчиков и ML-инженеров. Это отличная возможность получить офер за 2 дня и не прохо
VK проводит Weekend Offer для бэкенд-разработчиков и ML-инженеров. Это отличная возможность получить офер за 2 дня и не проходить много этапов. Ищут бэкендеров со знанием Java, Go, Python или C++. И MLщиков, с навыками в Classic ML, RecSys, NLP/LLM, CV, Speech. Важный момент: ищут коллег с опытом коммерческой разработки от трех лет. Совпадает? Тогда у вас есть все шансы получить приглашение на работу за 2 дня: технические собеседования 4 октября, а финалы, знакомство с командами и офер 5 октября. Отправляйте заявку до 2 октября и станьте частью VK! Подробнее — на сайте.

В чём различие между __getattribute__ и __getattr__, и когда вызывается каждый? Короткий ответ: __getattribute__ вызывается при каждом обращении к атрибуту; __getattr__ — только если атрибут не найден обычным способом. Внутри __getattribute__ нужно делегировать в super().__getattribute__, иначе будет бесконечная рекурсия. Библиотека собеса по Python

👀 Что такое Duck typing? 🦆Duck typing — это концепция в программировании, характерная для языков с динамической типизацией,
👀 Что такое Duck typing? 🦆Duck typing — это концепция в программировании, характерная для языков с динамической типизацией, таких как Python. Основная идея duck typing заключается в том, что тип объекта определяется его поведением (методами и свойствами), а не через явно заданный интерфейс или базовый класс. 🐍 В Python duck typing часто иллюстрируется фразой: «Если что-то выглядит как утка, плавает как утка и крякает как утка, то, вероятно, это и есть утка». Библиотека собеса по Python

Что такое функциональное программирование? Функциональное программирование — это парадигма программирования, в которой основными строительными блоками являются функции. В функциональном программировании функции рассматриваются как математические функции — они принимают входные данные и возвращают результат. Основные принципы функционального программирования: — Чистота функций: функции не должны иметь побочных эффектов и зависеть только от своих аргументов. — Иммутабельность: данные в функциональном программировании неизменяемы. — Рекурсия вместо циклов: в функциональном программировании циклы заменены на рекурсивные вызовы функций. — Высшего порядка функции: функции могут принимать на вход и возвращать другие функции. — Ленивые вычисления: вычисления откладываются до тех пор, пока результат не потребуется. Библиотека собеса по Python

Async-сервис читает сообщения из Kafka и для каждого делает asyncio.create_task(process(msg)). Под пиковыми нагрузками растут задержки и RSS памяти, при этом CPU невысокий. В чём причина и как это исправить? “Fire-and-forget” порождает неограниченное число задач, накапливается бэклог и объекты удерживаются в памяти до завершения тасков. Введите backpressure: ограничьте параллелизм через Semaphore/bounded Queue, батчируйте и await’ьте завершение (например, через пул воркеров или лимитированный gather), используйте pause/resume у Kafka-клиента, таймауты/отмену подвисших задач и корректные finally для освобождения ресурсов. Библиотека собеса по Python

🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛ
🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место На курсе: — разложим LLM по косточкам: токенизация, SFT, PEFT, инференс — соберём RAG и научимся оценивать его адекватно — построим настоящую мультиагентную систему — архитектуру, которая умеет расти — разберём CoPilot, сломаем через prompt injection (спасибо Максу) — и наконец, посмотрим, как это работает в MCP и реальных кейсах 📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API» Промокод на 5.000₽: LASTCALL 👉 Курс здесь

Ваш Python-сервис использует asyncio и под нагрузкой работает стабильно, но при длительном тесте вы замечаете утечку памяти. Garbage Collector не освобождает объекты, хотя ссылки на них вроде бы удалены. Как будете искать и устранять проблему? Проверю циклические ссылки и висящие таски, которые не завершаются. Использую tracemalloc, objgraph, gc.get_objects() для анализа живых объектов. Часто причиной бывает забытый asyncio.Task без await или глобальные кэши. Решение — правильно завершать корутины, использовать weakref, ограничивать размер кэшей (например, LRUCache) и при необходимости контролировать GC-паузы. Библиотека собеса по Python

Что такое генераторы в Python и в каких случаях их стоит использовать вместо списков? Генераторы — это объекты, которые «лениво» отдают значения по одному через yield или генераторные выражения. Они экономят память и ускоряют обработку больших данных, так как не хранят всю коллекцию целиком. Используются, когда нужно итерироваться по большим наборам данных или потокам, где не требуется хранить всё в памяти. Библиотека собеса по Python