Содержимое
Как ChatGPT помог мне с Claude Code: Tortoise, Dramatiq, Loguru, Instrumentator, Traefik В последние недели не раз натыкался на глюки и галлюцинации в коде, который генерировал Claude Code. Ломались сборки, падали миграции, баги в логике задач, а мониторинг вообще не работал — из-за слишком громоздкого стека графиков и настроек. Чтобы проект реально «вывозил» задачи, а не «бредил», я решил провести полный аудит тех стека, используя ChatGPT (модель 04-mini-high) как вспомогательного ревьюера. Почему старый стек мешал Claude Code • SQLAlchemy + Alembic создавали десятки строк boilerplate для каждой модели и миграции, что усложняло автогенерацию и порождало конфликты схем. • Celery с его бесчисленными настройками брокеров, prefetch, chains и chords приводил к путанице и странным зависаниям при прогоне задач. • Prometheus + OpenTelemetry требовали километровых конфигов, и Claude постоянно «терялся» в настройках экспортеров и метров. • Nginx как прокси добавлял лишний уровень абстракции: приходилось править конфиги, перезагружать контейнеры и вручную собирать сертификаты — не тот уровень автоматизации, от которого ждёшь от AI-агента. ⸻ Что поменял ChatGpt по результатам аудита 1. ORM и миграции • Было: SQLAlchemy + Alembic • Стало: Tortoise ORM + Aerich • Синхронный, понятный API, похожий на Django ORM. • Полностью асинхронная работа без лишнего кода. • Aerich обеспечивает простые команды init-db, migrate, upgrade. 2. Фоновые очереди задач • Было: Celery + Redis • Стало: Dramatiq + Redis • В 3× быстрее в бенчмарках на 20 000 задач. • Простые декораторы @dramatiq.actor, sane-defaults (retry, rate-limit). • Минимум конфигурации и максимум надёжности. 3. Логирование • Используем: Loguru • Мгновенно готовый к работе logger без boilerplate. • Цветной и структурированный вывод, встроенная ротация и retention. • Однорядковая настройка enqueue=True для безопасной работы в async/мультипроцессах. 4. Метрики • Используем: prometheus-fastapi-instrumentator • Однострочная интеграция: Instrumentator().instrument(app).expose(app) Автоматически получаем метрики HTTP-запросов и длительности без громоздких OpenTelemetry-конфигов. 5. Обратный прокси • Было: Nginx • Стало: Traefik • Авто-обнаружение Docker-сервисов по меткам (labels). • Встроенный ACME (Let’s Encrypt) без доп. скриптов. • Минимум “воды” в настройках — максимум динамики и автоматизации. Итог • Boilerplate ↓ 50 % → меньше шаблонного кода и ошибок при миграциях. • Задачи ↑ 3× → Dramatiq предотвратит таймауты и зависания. • Логирование ↑ 2× → стабильно “быстрое” и безопасное. • Метрики ↓ > 90 % конфига → мгновенная готовность к сбору метрик. • Прокси ↓ 60 % сложностей → динамическое обнаружение сервисов и автоматический SSL. Такой стек позволит Claude Code сконцентрироваться на бизнес-логике, а не на рутинных настройках и «ловушках» конфигов.