Автоматизация ломается не в коде, а в неявных допущениях вокруг него
Чаще всего скрипт пишут под «идеальный» сценарий: один формат файла, одна папка, один ответ API, один пользователь. Потом в репу прилетает мусорный CSV, пустое поле, дубли в очереди или таймаут на внешнем сервисе — и автоматизация превращается в ручную работу.
Защита начинается не с ретраев, а с границ:
• валидируй вход до бизнес-логики;
• отделяй парсинг от обработки;
• делай операции идемпотентными;
• логируй не только ошибку, но и контекст: файл, ключ, этап, payload без секретов.
Если скрипт трогает внешние системы, добавь «мягкие» режимы: dry-run, лимит на пакет, повтор с backoff, и понятный статус выхода. Иначе любой сбой будет выглядеть как успех, пока кто-то вручную не заметит рассинхрон.
Ещё одна частая дыра — отсутствие контрольной точки. Нормальная автоматизация умеет продолжать с места остановки: хранит прогресс, не пересоздаёт уже созданное и не требует перепройти весь поток ради одной ошибки.
Если хотите, чтобы скрипт жил дольше одной задачи, проектируйте его как маленький сервис: вход, проверка, действие, аудит. Тогда его можно запускать хоть из cron, хоть из Django management command, хоть из очереди.
Python Web & Scripts — Django, FastAPI, скрипты
@python_web_scripts
Автоматизация ломается не в коде, а в неявных допущениях вокруг него
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.