Валидация форм и её необходимость
Когда мы пытаемся открыть дверь не тем ключом, мы сразу понимаем, что что-то не так, и берём другой ключ. Когда мы заполняем бланк неправильно, мы его комкаем и выкидываем, берём бумагу снова и заполняем второй раз — это изначально настраивает на правильное заполнение строк (особенно если бланк большой и подробный, например, договор с банком). Если мы отправляем бумажное письмо без заголовка, конверт не сообщает нам, что мы что-то делаем неправильно.
Интернет же изначально приучает к бардаку, расслабленному и невнимательному отношению к тому, что мы делаем. Неправильный пароль — нам сообщат об этом. Забыли заполнить какое-то поле — услужливо подсказали, какое. Не вписали тему сообщение — «вы действительно хотите отправить письмо без темы»?
Да, действительно хочу.
Я хочу писать в интернете по человеческим правилам, а не по электронным. Если я что-то забыл — моя вина. (Пользователи должны помнить свои пароли, а не восстанавливать при каждом посещении в силу своей забывчивости.) Если я что-то не захотел заполнять — моё право.
Однако в современных фреймворках и CMS очень большая часть кода посвящена валидаторам. На каждую неточность — очень подробное сообщение красными буквами, подсветка поля и т.п. Программная логика, которая сравнивает то, что вписано, с тем, что должно быть (единственная, на мой взгляд, необходимая часть в данном случае).
В CMS Meruert Lulu я попытался обойтись вообще без сообщений валидатора. Данные проверяются, но:
1) отношение к ним не такое строгое, как могло бы быть: если пользователь что-то не ввёл, значит, ему просто не захотелось — из этого я и исхожу. Если что-то введено неправильно (это только про критичные случаи), то просто ничего не получится (например, не получится войти с неправильным паролем),
2) в системе нет ни одного сообщение об ошибке (впрочем, и об успешном выполнении задачи тоже: эти сообщения уже навязли в зубах, особенно слово «успешно») — если всё хорошо, то результат и так виден; если что-то не получилось (что сложно представить), то и результата не будет.
Почта Gmail, если я в письме употребил слово «приложено» или подобные, но не прикрепил к письму ничего, сообщит мне об этом: а вдруг я что-то хотел приложить, но забыл? Забота и внимание к пользователю, достойные уважения, но именно эта забота делает пользователей интернета невнимательными: робот всё будет помнить за меня.
Комментарии
все привыкли, что за них думают
и это ужасно, правда ужасно
так быть не должно
иначе в итоге получится Матрица