2019-01-11 Отображение Ошибок Пользователю
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
правила_разработки:как_не_надо_делать:2019-01-11_отображение_ошибок_пользователю [11.01.2019 10:12] nikolay_carbonsoft1 |
правила_разработки:как_не_надо_делать:2019-01-11_отображение_ошибок_пользователю [20.05.2019 15:18] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Короткая версия статьи: ====== | ||
+ | |||
+ | **Ситауция:** на сайте мониторинга есть список сенсоров и их состояний "ОК" или "Есть проблема". Какое должно быть состояние, если в код сенсора завершился с ошибкой? При этом, сенсор выполняется на наших серверах, а не клиентских. | ||
+ | |||
+ | **Проблема:** По правилам pl7, нам нужно выводить ошибки в коде на самый верх: Traceback выводится в тексте сенсора, сам сенсор переводится в состояние "Неисправен". Это хорошо, т.к. клиент увидит что проблема у нас и даст фидбек с описанием проблемы. Но проблема в том, что у клиента будет негатив. | ||
+ | |||
+ | **Решение:** Админом облачных сервисов является компания разработчик. Поэтому клиенту пишем "Временно недоступно", а ошибку поднимаем в максимально неизменном виде админу разработчика или в поддержку разработчика, с очень высоким статусом активности, с смс и вплоть до блокировки админу интернета пока не обработает. При отладке мы также будем видеть "Временно недоступно" и знать что есть проблема. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== Подробная версия статьи: ====== | ||
+ | |||
**Ситуация:** Сенсор в системе мониторинга может упасть из-за ошибки в коде самого сенсора. При этом, для пользователя сенсор отобразится как провальный, в тексте сенсора пользователь увидит traceback, возможно ему даже уйдет смс с оповещением о поломке сенсора. Например: баг в коде проверки доступности сайта - сенсор "красный", в информации traceback питона, в телефоне клиента смс: "Ваш сайт недоступен!" | **Ситуация:** Сенсор в системе мониторинга может упасть из-за ошибки в коде самого сенсора. При этом, для пользователя сенсор отобразится как провальный, в тексте сенсора пользователь увидит traceback, возможно ему даже уйдет смс с оповещением о поломке сенсора. Например: баг в коде проверки доступности сайта - сенсор "красный", в информации traceback питона, в телефоне клиента смс: "Ваш сайт недоступен!" | ||
**Проблема:** Это реализовано согласно правилам Pl7: | **Проблема:** Это реализовано согласно правилам Pl7: | ||
- | >> Программа должна быть громкой и писать о проблемах на экран с указанием строки и файла, при этом ошибки перехватывать нельзя, а если перехватили, то текст нижних уровней обязательно сохраняется в ошибке и свой добавляется к нему. | + | > Программа должна быть громкой и писать о проблемах на экран с указанием строки и файла, при этом ошибки перехватывать нельзя, а если перехватили, то текст нижних уровней обязательно сохраняется в ошибке и свой добавляется к нему. |
- | >> Выводить подробный стек ошибок до строчки кода прямо пользователю в расширенное окно ошибки. | + | > Выводить подробный стек ошибок до строчки кода прямо пользователю в расширенное окно ошибки. |
Но, очевидно, что клиента подобный трейсбек на сайте не устроит, а если мы будем ловить фидбек от разбуженного нами ночью клиента - долго мы с этим клиентом не проживем. | Но, очевидно, что клиента подобный трейсбек на сайте не устроит, а если мы будем ловить фидбек от разбуженного нами ночью клиента - долго мы с этим клиентом не проживем. | ||
Строка 13: | Строка 26: | ||
**Порассуждаем:** Важно замечать и исправлять баги, а клиент - наш самый главный контроллер в этом плане. Но дергать клиента - это дорого. При этом мы знаем, что: | **Порассуждаем:** Важно замечать и исправлять баги, а клиент - наш самый главный контроллер в этом плане. Но дергать клиента - это дорого. При этом мы знаем, что: | ||
- | >> Максимальная читаемость кода, учитывать ограниченные возможности человека и ошибки, и недостаток колва профи специалистов. | + | > Максимальная читаемость кода, учитывать ограниченные возможности человека и ошибки, и недостаток колва профи специалистов. |
- | >> Разработчик и пользователь всегда делает ошибки, хорошая система должна это учитывать. | + | > Разработчик и пользователь всегда делает ошибки, хорошая система должна это учитывать. |
Мы знаем, что ошибки будут всегда, даже в самом отлаженом коде. Значит мы будем платить постоянно. | Мы знаем, что ошибки будут всегда, даже в самом отлаженом коде. Значит мы будем платить постоянно. |