Что есть грамотный интерфейс?
Что такое "грамотный интерфейс"? Это интерфейс, который позволяет выжать из пользователя максимум производительности.
Это может показаться странным, но именно интерфейс программы самым прямым образом влияет а производительность юзера. И речь здесь идет вовсе не о красоте, всяких кнопочках/рюшечках и полупрозрачных окнах. Совсем наоборот. Размалеванный, нестандартный интерфейс редко бывает удобным и эргономичным. Как может пользователь работать быстро, если он по три минуты ищет среди графического мусора нужную кнопку?
Как показывает практика, самый лучший интерфейс - это тот, в котором пользователь сможет разобраться за пару минут без чтения документации и посторонней помощи. Какими же качествами должен обладать этот супер-интерфейс?
Интерфейс Должен быть привычным.
Он не должен содержать неизвестных, малораспространенных элементов управления. Если же такие есть, то они должны быть спроектированы максимально интуитивно понятными. На крайний случай рядом с контролом можно разместить очень краткое пояснение, как именно им пользоваться.
Интерфейс должен использовать знания и навыки, уже имеющиеся у пользователя.
Если контрол выполняет некое "типовое" для многих программ действие (например печать данных или вставку из буфера обмена), то такой контрол в вашей программе должен и выглядеть и действовать точно так же как аналогичные контролы в других программах.
Интерфейс должен быть умным.
Если контрол может определить валидность введенных в него данных, то он обязан это делать и информировать пользователя в случае ошибки.
Интерфейс должен быть догадливым.
Большинство типовых действий (или последовательностей действий) юезра можно предсказать еще на этапе проектирования интерфейса. Поэтому желательно, чтобы интерфейс мог "предугадывать" следующие действия пользователя и использовать эти "знания". К такого рода действиям относятся контекстные меню, изменяющие свой состав, модифицирующиеся тулбары, динамически изменяющие контент окна помощи и т.д.
Интерфейс должен быть удобным.
Эргономика интерфейса определяется очень простым способом: чем больше действий пользователь во время работы может выполнять одним устройством (мышь, клавиатура, планшет,...), тем более правильно с точки зрения эргономичности разработан данный интерфейс.
Интерфейс должен быть быстрым.
КПД пользователя и так не очень высокий и не стоит его еще более уменьшать за счет тормознутости интерфейса. Реакция компьютера на действия пользователя должна быть максимально быстрой. Следовательно всякие фишки с анимацией окон, проявляющимися меню и прочей фигней, из-за которой пользователю приходится прерываться (пусть даже на доли секунды) - ЗЛО! Окна должны появляться молниеносно как только в них возникла необходимость и так же быстро исчезать, как только необходимость в их отображении пропала. Крутящиеся на экране песочные часы - признак плохо спроектированного интерфейса или программы в целом.
Интерфейс должен быть Интерфейсом!
Главная цель интерфейса - поддерживать диалог с пользователем. Т.е. с помощью интерфейса пользователь и программа обмениваются информацией. Значит интерфейс должен давать пользователю максимум информации. Плохой пример из этой области - окно с единственной надписью "Ждите, идет расчет...". Хороший пример - окно, содержащее кроме надписи еще и "градусник" хода процесса и показывающее примерное время до завершения. Высший пилотаж - добавить к этому окну звуковой сигнал по окончании процесса.
В следующих постах я буду постепенно "разжевывать" эти качества, описывать возможные проблемы при реализации того или иного поведения интерфейса и давать пути их решения.