2018-12-04 Молчаливые Ошибки

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
правила_разработки:как_не_надо_делать:2018-12-04_молчаливые_ошибки [04.12.2018 05:41]
127.0.0.1 внешнее изменение
правила_разработки:как_не_надо_делать:2018-12-04_молчаливые_ошибки [04.12.2018 05:47]
admin Approved(admin 2018/12/04 05:47)
Строка 1: Строка 1:
-**Постановка задачи:​ ** Добавить опцию в продукт Reductor, которая включает экспериментальные модули ядра. 
- 
-**Проблема:​ ** Выяснилось,​ что модули несовместимы с некоторыми версиями ядра. 
- 
-**Ошибка:​ ** Добавили код с анализом версии ядра и если версия не подходит - функционал не активируется,​ о чем пишется в вывод загрузки Reductor. Благодаря этому Reductor сможет загрузиться и работать как будто эта опция не установлена. 
- 
-**В чем ошибка:​ ** Продукт сконфигурирован определенным образом и не выполняет требований - это ошибка в продукте. Об ошибке продукт должен проинформировать,​ вариант с выводом в консоль - **пользователь не увидит**. Ошибка должна быть исправлена либо возвращением к совместимой конфигурации,​ либо устранением несовместимости в продукте. Текущий вариант приведет к тому, что опция со временем перестанет работать и ни кто не заметит,​ также опция не будет развиваться. 
- 
-**Как нужно: ** 
-Продукт должен сообщать об ошибке,​ и делать это так, **чтобы пользователь это увидел**. Сделать это можно несколькими способами: ​ 
-  - падать при старте Reductor (редуктор не запустился после изменения конфигурации или после обновления ядра -> пользователь увидел;​ сработали тесты мониторинга) 
-  - слать ALARM в систему мониторинга,​ явно сообщающую об ошибке конфигурации и что Reductor работает не так, как должен 
- 
-В этих случаях ошибка конфигурации будет явно заметна,​ нельзя будет ее проигнорировать. 
- 
-P.S. отдельно стоит отметить пользу этого подхода к продуктовой разработке:​ если опция важна (а неважную опцию не стали бы реализовывать),​ значит ее нужно поддерживать. Заявка от клиента о несовместимости или ALARM заявка с ошибкой - будут сигнализировать,​ что нужно выделить время для работы над этим функционалом. Причем она просигнализирует ровно в тот момент,​ когда в этом возникнет реальная необходимость. 
- 
-~~OWNERAPPROVE~~ 
-/*Не удаляйте эту строку и ниже!*/ 
-{(rater>​id=1|name=Прочитал_правила_разработки:​2018-12-04_крикливые_ошибки|type=vote|trace=user|tracedetails=1)}