WayBe
Молодец! Ты хорошо схватил всю идею.
А идея такова.
- Ничего самовольно не преобразуем. Если пользователь ошибся, он будет нам благодарен, что мы его предупредили. Если сдела со зла, больше не сделает.
- Если нам нужны данные для наших целей, именно в определеном формате (например для поиска), храним их в отдельном поле БД, таблице или как кто хочет, в зависимости от задачи. Место сейчас дешевое, так что это нормально.
- Если мы не можем сохранить данные, в том виде, в котором их ввел пользователь, вежливо сообщаем ему об этом, попросив исправить.
- Если мы можем преобразовать данные самостятельно, спрашиваем разрешения пользователя на такое преобразование.
- Приводим данные к тому виду, в котором пользователь их ввел( как минимум), при выводе.
- Скорость тут обсолютно не причем. Есть множество других, более эфективных способов поднять производительность. В 99% есть более узкие места, которые оптимизировать проще.
- Не считаем все вышесказанное, догмой. Безусловно есть задачи, где все это неприменимо. Но их так мало, что говорить о них бессмысленно.
И хочу дать совет новичкам, читающим эту тему. Юзабилити появилось не с рождения интернета, а гораздо раньше. Потому обращайте внимание на офлайн продукты. Поверте, воррд или там фотошоп выверены в юзабилити до мелочей. Если сомневаешься, возьми пример с них. Они уж точно не позволяют менять за тебя данные без твоего спроса.