Проверка данных: быстрый сбой, ранний отказ или полная проверка - PullRequest
2 голосов
/ 03 апреля 2010

Что касается проверки данных, я слышал, что есть варианты «быстро провалиться, рано провалиться» или «завершить проверку».Первый подход дает сбой при самой первой ошибке проверки, тогда как второй формирует список сбоев и представляет его.Проверка.Какой метод подходит, в каком контексте и почему?

Мое личное предпочтение проверки данных на стороне клиента - это второй метод, который информирует пользователя обо всех сбойных ограничениях.Я не достаточно информирован, чтобы иметь мнение о серверной стороне, хотя я думаю, что это зависит от бизнес-логики.

Ответы [ 2 ]

4 голосов
/ 03 апреля 2010

Отчасти это сбивает с толку то, что люди не обсуждают ортогональность как часть критериев. «Fail-early» полезен для того, чтобы ошибка обнаруживалась там, где она возникает, а не вниз по течению. Но для ортогональных отказов нет ни нисходящего, ни множественных нисходящих потоков.

Например, большинство пользовательских форм заполнены множеством независимых вопросов, таких как имя пользователя, пароль, электронная почта, например. Поскольку они независимы, подождите, пока все 3 не появятся, и опишите все ошибки сразу . Заставлять пользователя проходить три цикла отправки-проверки-жалобы нелепо.

2 голосов
/ 03 апреля 2010

Для простых ошибок, таких как неверные вводы или пропущенные данные, вам решать, насколько удобно сделать систему для пользователя. Например, это может быть очень неприятно, если кто-то импортирует полную таблицу данных в систему, и первая строка завершилась неудачно, а вы сказали «первая строка не удалась». Пользователь исправляет первую строку, импортирует и получает сообщение «Ошибка второй строки». Представьте, что есть 65536 строк. Вы уже знаете, что не собираетесь ничего делать с данными, но хотите ли вы сделать жизнь пользователя проще? Опять же, это тривиальные ошибки, которые я обсуждаю, и, конечно, вы будете разрабатывать систему, которая проверяет все данные перед обработкой.

Для более серьезных ошибок, которые либо не ожидаются, либо являются чем-то большим, чем просто проблемы с проверкой, вернитесь к быстро и неуспешно .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...