Код Шрёдингера.
Что делать с кодом, который
то работает, то нет
Руслан Сафин
ByndyuSoft
twitter.com/razonrus
7-я конференция .NET разработчиков
22 сентября 2013
www.dotnetconf.ru
2Код Шрѐдингера, Руслан Сафин
Кэпство
3Код Шрѐдингера, Руслан Сафин
Попробуем
классифицировать
• Без обновлений
• Вчера работало, сегодня перестало
• Работает пока смотрю, не смотрю – не
работает
• После обновления
• Локально/на стейджинге работает, в бою –
нет
4Код Шрѐдингера, Руслан Сафин
Причины
• Ваш код
• Не ваш код (сторонние сервисы)
• Железо
5Код Шрѐдингера, Руслан Сафин
Причины. Ваш код
• другое окружение
• бОльшая нагрузка
6Код Шрѐдингера, Руслан Сафин
Другое окружение
• параметры конфигов
• код
• конфигурация билда
• процедура деплоя
• конфигурация окружения
7Код Шрѐдингера, Руслан Сафин
Нагрузка
• утечки памяти
• время простоя в очереди на обработку
8Код Шрѐдингера, Руслан Сафин
Причины. Не ваш код
• А может все-таки ваш?
• логирование и мониторинг
• Что делать?
• Документация
• Тех поддержка
• Учет ограничений
• Обход багов
9Код Шрѐдингера, Руслан Сафин
Причины. Железо
• Может все-таки код?
• Проверка на другом железе
• Диагностика железа
10Код Шрѐдингера, Руслан Сафин
Что делать?
• Просмотреть коммиты
• Еще раз проверить код!
• Попробовать воспроизвести
• Собрать побольше информации
11Код Шрѐдингера, Руслан Сафин
Мониторинг
• Пользователи - google analytics и т.д.
• Состояние системы - Zabbix
• Ошибки – Sentry
• Время отзыва – New relic
• Уведомления юзерам –
Mailjet, Facebook
• Внутренняя статистика
• Системные логи (iis, windows)
• Логи приложений
12Код Шрѐдингера, Руслан Сафин
http://www.zabbix.com/ru/
13Код Шрѐдингера, Руслан Сафин
https://getsentry.com/
14Код Шрѐдингера, Руслан Сафин
https://newrelic.com/
15Код Шрѐдингера, Руслан Сафин
Все врут
• Двойная проверка статистических
данных
• Логирование – что могло привести к
неверным логам?
16Код Шрѐдингера, Руслан Сафин
Главное –
Целесообразность
17Код Шрѐдингера, Руслан Сафин
Спасибо за внимание
Руслан Сафин
ByndyuSoft
iruslansafin@gmail.com
twitter.com/razonrus

код шрёдингера