Разбор падений в продакшене
Вопрос
Как у вас устроен сбор и разбор падений React Native-приложения в продакшене?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Sentry или Crashlytics с поддержкой JS и нативных падений
Source maps для каждой сборки и каждого OTA-обновления, символы для нативной части
Контекст: версия, id обновления, устройство, хлебные крошки действий
Приоритизация по числу пользователей и регрессиям после релиза
Error boundaries в JS, понятный экран ошибки и отправка отчёта
Поэтапные релизы, чтобы вовремя остановить раскатку
Что могут спросить следом
- Почему стек-трейс из продакшена нечитаем?
- Что делать, если падение только на одном производителе Android?
Разбор
Образцовый ответ: «Подключаю Sentry или Crashlytics так, чтобы ловились и JS-ошибки, и нативные падения. Для каждой сборки и каждого OTA-обновления загружаю source maps, а для нативной части символы, иначе стеки нечитаемы: у Hermes байткод, у Android обфускация. К событиям добавляю версию, id обновления, устройство и хлебные крошки: последние экраны и действия. В JS ставлю error boundaries на уровне экранов, чтобы падение одной части показывало экран ошибки, а не белый экран. Падения сортирую по числу затронутых пользователей и по новизне после релиза. Релизы выкатываю постепенно, и если вижу всплеск, останавливаю раскатку или откатываю OTA»
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.