lenec ru

← все теги

#python

28 постов

Python type hints: mypy, pyright и строгая типизация на практике

Node.js — однопоточный. Event loop справляется с I/O, но CPU-bound задачи (парсинг JSON, ресайз картинок, криптография) блокируют весь сервер. Модуль worker_threads даёт настоящие потоки с…

0 18K
Мария Соколова

FastAPI dependency injection: рабочие паттерны и антипаттерны

FastAPI часто хвалят за систему зависимостей. И за дело: Depends — это, наверное, главная фича, которая делает фреймворк не просто «асинхронным Flask», а полноценным инструментом. Но чем больше…

470 10K
Андрей Крылов

Тестирование FastAPI с pytest: фикстуры для БД и httpx-клиент

Тестировать FastAPI вроде бы просто: TestClient, пара фикстур, запустил pytest. Но как только в проекте появляется БД, аутентификация, фоновые задачи и внешние клиенты — сразу всплывают вопросы. Где…

160 13K
Андрей Крылов

FastAPI dependency injection: паттерны для больших проектов

Передавать пароли через переменные окружения — привычно, но небезопасно. Любой с доступом к docker inspect видит все env в открытом виде. Docker secrets решают проблему: секреты монтируются как файлы…

0 17K
Мария Соколова

Python structlog: структурированное логирование для продакшена

GitOps меняет подход к деплою: вместо kubectl apply из CI-пайплайна вы коммитите манифесты в Git, а контроллер в кластере сам синхронизирует состояние. ArgoCD — самый популярный GitOps-контроллер для…

0 14K
Мария Соколова

Rust ownership для Python-разработчиков: понимаем borrow checker без боли

Если вы пришли в Rust из Python, borrow checker — первая стена. В Python память управляется GC, и вы не думаете о владении. В Rust ownership — центральная концепция, гарантирующая безопасность памяти…

0 17K
Светлана Морозова

Prompt caching в LLM API: экономим токены и ускоряем ответы

Если ваше приложение отправляет одинаковый system prompt в каждом запросе к LLM — вы платите за одни и те же токены снова и снова. Prompt caching решает проблему: провайдер кэширует обработанный…

0 11K
sysmonk

Python asyncio + aiohttp: пишем высоконагруженный HTTP-клиент правильно

Infrastructure as Code давно стал стандартом, но выбор инструмента по-прежнему вызывает споры. Terraform с его HCL — проверенный лидер. Pulumi предлагает писать инфраструктуру на TypeScript, Python…

0 18K
Мария Соколова

Alembic в реальной команде: миграции без конфликтов merge

Alembic в одиночной разработке — простая штука: alembic revision --autogenerate, alembic upgrade head, поехали. Но как только в репозитории появляются ещё трое разработчиков, начинается боль: две…

248 13K
Дарья Перепёлкина

Async/await в Python: asyncio vs trio в продакшене

# Grafana Loki: централизованные логи без Elasticsearch Если вы устали от тяжеловесного ELK stack, который съедает гигабайты RAM и требует постоянного внимания к шардам — пора познакомиться с Grafana…

0 42
Сергей Асинхронов

Pydantic v2: что нового, миграция с v1 и реальные бенчмарки

В 2026 году спор «Zustand или Redux Toolkit» — это уже не холивар фанатов, а практический выбор архитектуры. Оба инструмента зрелые, оба поддерживают TypeScript из коробки. Но подходят они для разных…

0 15K
Мария Соколова

Docker healthcheck: практические примеры для Node.js, Python и Go

В 2026 году спор «Zustand или Redux Toolkit» — это уже не холивар фанатов, а практический выбор архитектуры. Оба инструмента зрелые, оба поддерживают TypeScript из коробки. Но подходят они для разных…

0 17K
code_kitchen

asyncio в Python: паттерны конкурентности, которые работают в проде

Когда Redis упирается в лимит памяти, он не падает молча — он начинает вытеснять ключи по заданной стратегии. Выбор правильной eviction policy определяет, потеряете ли вы критичные данные или…

0 18K
Мария Соколова

Python Celery vs arq: выбираем очередь задач для асинхронного бэкенда

Фоновые задачи — неотъемлемая часть любого бэкенда: отправка email, обработка изображений, генерация отчётов. В Python-экосистеме два основных подхода: проверенный временем Celery и минималистичный…

0 11K
Николай Ломов

uv vs pip: новый менеджер пакетов Python — стоит ли переходить в 2026

В 2024 году команда Astral (создатели ruff) выпустила uv — менеджер пакетов Python, написанный на Rust. За полтора года он дорос до стабильной версии и претендует на замену pip, pip-tools, virtualenv…

0 10K
Мария Соколова

Python dataclasses vs attrs vs Pydantic: когда какой инструмент выбрать

Дашборд в Grafana — это не набор красивых графиков, а инструмент для быстрого ответа на вопрос «что сломалось и где». В микросервисной архитектуре с десятками сервисов правильная структура дашбордов…

0 18K
Мария Соколова

RAG на практике: строим retrieval-augmented generation pipeline на Python

Monorepo с 20+ пакетами — это удобно для разработки, но кошмар для CI. Каждый push пересобирает всё, тесты идут 15 минут, а деплоится один сервис из двадцати. Turborepo и Nx решают эту проблему через…

0 19K
Мария Соколова

Embeddings: выбор модели для семантического поиска в 2026

Redis из коробки — single-threaded процесс без встроенной отказоустойчивости. Если мастер упал, клиенты получают ошибки до ручного переключения. Sentinel и Cluster решают эту проблему, но по-разному:…

0 15K
Мария Соколова

Connection pool в asyncpg и SQLAlchemy: как не положить базу

Connection pool — одна из тех вещей, которые работают, пока всё хорошо, и взрываются разом, когда плохо. Сервис тихо обслуживает 200 RPS, а потом приходит пик в 800, и Postgres начинает отдавать…

341 10K
Андрей Крылов

Pydantic v2 vs v1: что реально изменилось и как мигрировать

Команда долго сидела на Pydantic v1. Модели там работали, валидаторы прижились, никто не торопился что-то менять. А потом FastAPI начал намекать, что v1 — это уже legacy, и однажды ты приходишь…

480 17K
Андрей Крылов

Background tasks в FastAPI: когда хватает встроенного, а когда брать Celery

В FastAPI есть встроенный BackgroundTasks. Простой, удобный, всегда под рукой. И регулярно появляется вопрос: «А зачем тогда Celery, RQ, Dramatiq и прочие зоопарки? Можно ведь и так». Можно. До…

357 11K
Андрей Крылов

OpenAPI в FastAPI: настройка генерации, которая нравится фронтам

OpenAPI-схема в FastAPI генерируется бесплатно. Открыл /docs — и вот тебе Swagger UI. Замечательно, пока ты пишешь сам бэкенд. Но потом за неё берутся фронтендеры с генератором клиентов, и…

91 19K
Андрей Крылов

Переход с Django на FastAPI: чего ждать и где будет больно

Переезд с Django на FastAPI — это не просто смена фреймворка. Это смена философии: из тёплого монолита со встроенным ORM, админкой и middleware-ms ты попадаешь в минималистичный микрофреймворк, где…

482 17K
Андрей Крылов

uvicorn vs gunicorn vs hypercorn vs granian: что выбрать в 2026

На каждый питон-сервис рано или поздно встаёт вопрос: что запускать в проде. Был uvicorn в одиночку, стал uvicorn под gunicorn, кто-то ушёл в hypercorn, кто-то на granian. Картина запутанная,…

480 11K
Андрей Крылов

Кэширование в FastAPI: Redis-обёртка, которую можно повторно использовать

Кэш в API-сервисе — это та штука, которая кажется простой, пока ты её сам не написал. «Положи результат в Redis на 5 минут». Звучит элементарно. А потом начинается: ключи, инвалидация, сериализация,…

200 16K
Андрей Крылов

Alembic в реальной команде: миграции без конфликтов

Команда из пяти бэкендеров, две ветки уже неделю в ревью, и кто-то наконец мерджит свою. Через час прилетает второй мердж — и Alembic ругается на multiple heads. CI красный, продовая миграция стоит,…

231 14K
Андрей Крылов

SQLAlchemy 2.0 async: типичные ошибки и как их обойти

За последние два года я переписал три проекта на SQLAlchemy 2.0 в async-режиме и собрал почти полный набор граблей. Самое неприятное — поведение, которое в синхронной версии работало по умолчанию, а…

262 10K
Андрей Крылов

Observability в FastAPI: structured logs, метрики, tracing

Логирование и observability в Python-сервисе — это история, к которой большинство приходит постфактум. Сначала пишешь print, потом logging.info, потом ставишь Sentry, потом упирается во что-то в…

480 11K
Андрей Крылов