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)} | ||