Принципы¶
Всё руководство держится на одной мысли - человек приходит в приложение, чтобы выполнить определенную задачу, и интерфейс хорош настолько, насколько он сокращает дорогу от «хочу» до «готово». Из этого вытекают пять принципов, о которых ниже.
Структура повторяет задачу, а не модель данных¶
Модель данных оптимизирована под целостность и нормализацию, а задача пользователя - под последовательность действий. Когда экран соответствует таблице, пользователь вынужден сам знать, в каком порядке обходить таблицы, чтобы получить нужный результат. Когда экран соответствует шагу работы, эту последовательность знает интерфейс. На практике это значит, что форма «Новый счёт» сразу позволяет выбрать клиента или создать его, не отправляя пользователя в раздел «Клиенты», а затем возвращая обратно с потерянным контекстом.
Модель данных при этом не исчезает, а уходит на второй план: экраны управления сущностями (списки, справочники, администрирование) остаются нужны, но они обслуживают редкие задачи настройки, а не ежедневную работу.
Система всегда показывает, что происходит¶
Пользователь не видит, что делает программа, и восстанавливает её состояние по косвенным признакам. Если признаков нет, он повторяет действие, уходит со страницы или решает, что всё сломалось. Поэтому каждое действие получает отклик в пределах десятой доли секунды, каждый долгий процесс показывает прогресс, а каждое изменение данных сообщает о результате. Подробно об этом - в разделе Обратная связь и ожидание.
Ошибка - нормальная часть сценария¶
Ошибки пользователей и технические сбои неизбежны. Интерфейс, созданный только для идеальных условий, ломается при первых же реальных испытаниях. При проектировании важно учитывать возможные ошибки одновременно с основным сценарием. Для каждого шага нужно предусмотреть, что может пойти не так, как пользователь об этом узнает и какие действия он сможет предпринять дальше. Ошибки, которые можно предотвратить с помощью ограничений ввода, лучше предотвращать заранее. Действия, которые можно отменить, следует делать отменяемыми, вместо того чтобы запрашивать подтверждение.
Узнавание вместо вспоминания¶
Рабочая память человека ограничена, поэтому всё, что нужно помнить между экранами, может привести к ошибке. Видимые варианты, подсказки, сохранённые значения фильтров и ясные названия разделов помогают найти нужное, не заставляя вспоминать. Это особенно важно в сложных ситуациях: человек, столкнувшийся с ошибкой, уже перегружен, и интерфейс, требующий вспомнить правило из документации, только усугубляет его состояние.
Последовательность важнее оригинальности¶
Пользователь переносит ожидания из других продуктов и из других частей того же продукта. Кнопка, которая в одном диалоге стоит справа, а в другом слева, или действие «Удалить», которое где-то отменяется, а где-то нет, заставляют каждый раз заново проверять поведение интерфейса. Следование соглашениям платформы (Apple HIG, Material Design, принятым паттернам веба) экономит пользователю обучение, а отступление от них оправдано, только если оно решает конкретную проблему, а не выражает вкусовые предпочтения команды.