Вышеописанный пример со специальной функцией захватывания, которой может быть оснащена мышь, показывает, что при разработке интерфейсов программного обеспечения часто могут возникать идеи по улучшению аппаратного оборудования, так же как те или иные характеристики аппаратного строения могут приводить к улучшению программного обеспечения. Необходимо сказать, что всегда лучше разрабатывать аппаратное и программное обеспечение вместе, несмотря на то, что такая возможность редко случается. Попытки «подставить» чистый программный интерфейс в аппаратное оборудование, которое было разработано для другого интерфейса, редко могут дать удовлетворительные результаты. Тем не менее, в большинстве случаев это именно то, что мы должны сделать.
5.2.3. Экранные состояния объектов
Элементы человекоориентированного интерфейса должны быть доступными для начинающего пользователя и эффективными для опытного пользователя, причем переход от одного к другому не должен требовать переучивания. Хороший интерфейс должен давать одну ментальную модель, которая подходит для обоих классов пользователей, с учетом, конечно, того факта, что по отношению к одним частям системы мы можем быть опытными пользователями, а по отношению к другим – начинающими. В предыдущем разделе было предложено, чтобы клавиша, выполняющая некоторый текст как команду, могла быть применена к выделенному тексту независимо от его происхождения. В результате выполняется определенная команда, при условии, что выделенный текст является именем этой команды, – в противном же случае никакого действия следовать не должно. Хорошо, если бы для ввода команд можно было использовать квазирежим с помощью удерживания клавиши «Command». Однако это удобство в существенной мере зависело бы от эргономичности клавиши «Command». В целом, такая возможность улучшила бы использование систем с командной строкой, которые многим нравятся за скорость и удобство работы, но, в то же время, многими ненавидятся за трудность в изучении. Улучшения здесь два: вы можете подавать команды в любом месте и в любое время, а т. к. команды аналогичны представленным в меню, то можно легко переходить от меню к непосредственной подаче команд и обратно.
Ввод команд требует специального места, а также времени на то, чтобы его найти, поэтому удобнее, чтобы пользователь мог ввести команду в любом месте, где находится курсор, и в тот момент, когда это требуется. После выполнения команды введенное имя команды должно быть удалено с тем, чтобы имена команд не оказались разбросанными по всему содержанию. С другой стороны, если вы выполняете команду из списка, то удаление имени команды нежелательно, поскольку список, по сути дела, является меню. Создание такого меню не должно требовать ничего, кроме как напечатать список команд, выделить его и затем применить к нему команду (например, Создать Меню (Make Menu)), чтобы назначить командам особый стиль, который обычно используется для написания команд, а также чтобы заблокировать этот список во избежание его случайного изменения.
Приведем некоторые другие команды, изменяющие состояние текста. С помощью команды Заблокировать (Lock) можно просто запирать текст или другое содержание. Заблокированное содержание можно просматривать, выделять и копировать, но нельзя изменять или перемещать. Обратная команда – Разблокировать (Unlock) – может быть применена к выделенному содержанию для его разблокировки при условии, что оно было заблокировано (в противном случае команда не дает никакого результата, т. е. она не должна быть переключателем). С помощью другой команды – Заблокировать с паролем (Lock with Password) – можно заблокировать старую выборку, используя текущую выборку в качестве пароля. Эта команда также имеет обратный аналог (Разблокировать по паролю (Unlock with Password)). Возможность заблокировать какое-то содержание может быть довольно полезной. Например, она может использоваться для создания стандартных форм для заполнения. Неизменные элементы формы могут быть заблокированы, в том числе и по паролю, при этом простое блокирование позволит предотвратить случайные изменения, а блокирование по паролю – несанкционированные изменения. Если бы электронная инструкция по использованию некоторой компьютерной системы входила в набор текстов, с которыми компьютер изначально поставлялся, – что в общем является неплохой идеей, – то такое руководство, вероятно, блокировалось бы производителем по паролю еще на заводе.