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:
 **Порассуждаем:​** Важно замечать и исправлять баги, а клиент - наш самый главный контроллер в этом плане. Но дергать клиента - это дорого. При этом мы знаем, что: **Порассуждаем:​** Важно замечать и исправлять баги, а клиент - наш самый главный контроллер в этом плане. Но дергать клиента - это дорого. При этом мы знаем, что:
  
->> Максимальная читаемость кода, учитывать ограниченные возможности человека и ошибки,​ и недостаток колва профи специалистов.+> Максимальная читаемость кода, учитывать ограниченные возможности человека и ошибки,​ и недостаток колва профи специалистов.
  
->> Разработчик и пользователь всегда делает ошибки,​ хорошая система должна это учитывать.+> Разработчик и пользователь всегда делает ошибки,​ хорошая система должна это учитывать.
  
 Мы знаем, что ошибки будут всегда,​ даже в самом отлаженом коде. Значит мы будем платить постоянно. Мы знаем, что ошибки будут всегда,​ даже в самом отлаженом коде. Значит мы будем платить постоянно.