Предполагая успех или неудачу - есть ли преимущества? - PullRequest
0 голосов
/ 12 мая 2011

Я нахожусь в процессе написания простого сценария проверки формы и спрашиваю себя: лучше ли (как в рамках этого сценария, так и в общем программировании) добиваться успеха и проверять наличие ошибок, или лучше чтобы предположить неудачу, попробуйте убедиться, что каждый элемент успешен.

Я искал по этому вопросу, только чтобы получить кучу вдохновляющих цитат, и мне довольно интересно, есть ли случай, когда это будет иметь значение и, как таковой, если один метод лучше / более безопасен / более эффективнее другого?

В настоящее время я тестирую таким образом:

validation = true

for each field
{
    if not validate(field)
    then validation = false
}

return validation

Единственное преимущество, которое я вижу в этом конкретном случае, заключается в том, что форма не подлежит проверке, отправляет форма.

1 Ответ

1 голос
/ 13 мая 2011

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

Предполагая набор значений A, B и C,Есть два возможных критерия для принятия результата: 1. все значения должны быть действительными, или 2. никакие значения не должны быть недействительными.

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

Для иллюстрации предположим, что в форме содержится:возможные валидации могут быть:

First Name must not be empty and must contain alpha chars only.
Last  Name must not be empty and must contain alpha chars only.
Tel Number must not be empty, must contain numbers only, formatted as (xxx) xxx-xxxx.
Email Addr if not empty, must be formatted as xxx@xxx.yyy, etc.

Этот случай включает все правила валидации, которые должны возвращать true, чтобы ввод был приемлемым.Таким образом, значение по умолчанию должно быть ложным до тех пор, пока не будет подтверждено.

Теперь рассмотрим эту частичную форму для отправки электронного письма:

Subject:  [  ]
CC:       [  ]
BCC:      [  ]
Priority: [  ]

Поскольку все поля являются необязательными, это исключительный случай, когда ониБыло бы целесообразно начать с предположения, что данные действительны, пока они не будут признаны недействительными одним недопустимым значением.

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