Защита от идиотов включает в себя намного больше, чем простая проверка ввода. Я бы даже не включил такую вещь в свое определение.
Проверка ввода - это процесс, в котором вы дезинфицируете и проверяете пользовательские данные, чтобы исключить недопустимые / бессмысленные значения. Это всегда следует делать с любой информацией, поступающей извне вашей программы, чтобы исключить как очевидные, так и защитить себя от атак (например, атак с использованием SQL-инъекций).
Я бы посчитал, что защита от идиотов - это набор логики, позволяющей избежать случайного нанесения пользователю значительного ущерба с помощью других законных средств.
Например, rm
отклонение команды rm -rf /
и закрытие вариантов не имеют ничего общего с проверкой или корректностью. Это совершенно действительная команда. К сожалению, это команда, которая может и может уничтожить все ваши данные со всех ваших дисков в Unix / Linux. Идиот, проверяя это, отклонил бы эту команду и предложил быrm -rf --i-really-mean-this /
, или если в интерактивном режиме, иметь пользовательский тип в утвердительном ответе после предупреждения.
Все, что разрушительно для системы, должно быть защищено от идиотов. Все, что может вызвать смущение, также может быть кандидатом (например, «Вы уверены, что хотите отправить это электронное письмо без вложения, даже если вы упомянули одно в своем тексте?», И «Вы уверены, что хотите отправить это электронное письмо на вся компания? ")
Защита от идиотов - это сотрудничество между QA (пытающимся быть лучшим идиотом) и разработкой (пытающимся предвидеть все эти сценарии и разрабатывать вокруг них).
Что касается более дружественного синонима, могу я предложить «деструктивный анализ пути кода» или «включить обратную связь с пользователем для критических операций». Как бы вы это ни называли, вы должны действительно начать это как можно раньше в процессе проектирования.