Ответ
Процесс хотфикса (hotfix) для критического бага:
- Триаж и изоляция: Максимально сужаем scope проблемы. Создаем ветку от актуального продакшен-тега.
-
Минимальный исправляющий коммит: Фиксим только корневую причину, избегая рефакторинга.
# БАГ: При discount = None функция calculate_total падала. # БЫЛО: def calculate_total(items): total = 0 for item in items: total += item['price'] * (1 - item.get('discount')) # Ошибка, если discount=None return total # СТАЛО (минимальное исправление): def calculate_total(items): total = 0 for item in items: discount = item.get('discount', 0) or 0 # Защита от None total += item['price'] * (1 - discount) return total - Целенаправленное тестирование:
- Пишем/запускаем только тесты, напрямую связанные с багом.
- Проверяем, что фикс не ломает смежную функциональность (регрессия).
- Контролируемое развертывание:
- Деплой на прод через канареечный релиз или feature flag.
- Активный мониторинг ключевых метрик (ошибки, бизнес-показатели) в течение 30-60 минут.
- Фиксация технического долга: Сразу после стабилизации создается задача на:
- Рефакторинг "быстрого" фикса.
- Написание отсутствующих интеграционных тестов для этого сценария.
- Анализ root cause: почему баг прошел в прод (пробел в тестах, ревью кода?).
Главный принцип: Скорость и безопасность. Изменения — минимальны и изолированы.