Интерфейс.Новые направления в проектировании компьютерных систем

       

Учтивое программирование: приложения как гости



Учтивое программирование: приложения как гости

Представим, что вы были приглашены погостить в доме ваших хороших друзей Гримблсов. И даже их собака кажется вам очень милой. Единственная проблема— это портрет их любимой тетушки Астабьюлы, который висит над вашей кроватью. Этот портрет вызывает у вас и вашей жены нервную дрожь, и вы не можете даже спать в комнате, в которой на вас смотрит с портрета тетушка Астабьюла. Вы не решаетесь сказать обо всем этом Гримблсам. Как бы вы поступили в такой ситуации, будучи гостем в доме своих друзей?

  • Сняли бы картину и сожгли ее.

  • Спрятали бы ее в винном погребе, чтобы Гримблсы после месяца поисков обнаружили ее там.

  • Поставили бы ее в шкаф, чтобы Гримблсы нашли ее немного раньше.

  • Поставили бы картину в шкаф и потом, перед отъездом, вернули бы ее на свое место.

    Любой учтивый гость знает, что вариант 4 является самым правильным. Принцип заключается в следующем: если ты делаешь по тем или иным причинам изменения в чьей-либо среде, позаботься о том, чтобы поставить все вещи на свои места до того, как вернется хозяин.

    Современные компьютеры имеют множество параметров изменения рабочей среды, в том числе громкость динамиков, разрешение экрана и глубину изображения, вид меню, шрифт по умолчанию. В компьютере Macintosh имеются сотни настроек, а в IBM-совместимых компьютерах, работающих с операционной системой Windows и пакетом Microsoft Office, это число превышает тысячу. В чем жздесь параллель с визитом к Гримблсам? Если вы используете чью-либо машину и изменяете в ней какие-либо настройки, то перед уходом вы, как человек учтивый, должны вернуть все изменения обратно.

    Многие программы для нормальной работы требуют определенного разрешения экрана, определенного числа бит на пиксел или какой-то другой настройки параметров. Если же параметры настроены в системе неправильно, поведение программы может варьироваться в диапазоне от благовоспитанного до грубоватого или даже варварского. Ниже приводятся реакции различных протестированных мной программ в случаях, когда параметры монитора не соответствовали требуемым:


    Полный отказ системы, после которого приходилось вручную производить перезагрузку компьютера.

    Полный отказ системы с выдачей непонятного числового сообщения, после чего приходится нажимать на кнопку Перезапуск, чтобы произвести перезагрузку компьютера.

    Выдается сообщение об ошибке, в котором говорится о необходимости настроить параметры экрана. Когда вы нажимаете на кнопку OK, это приводит к полному отказу системы.



    Выдается сообщение об ошибке, в котором говорится о необходимости настроить параметры экрана. После нажатия на кнопку OK вы можете открыть панель управления и выполнить необходимые настройки.

    Выдается запрос о том, нужно ли выполнить изменение параметров экрана. Если вы нажимаете на кнопку OK, настройки автоматически изменяются. Если вы нажимаете на кнопку Отмена, запуск программы прекращается, а параметры экрана остаются без изменения.

    Параметры экрана изменяются без всякого предупреждения, и программа запускается.

    В специальном диалоговом окне выдается сообщение о том, что можно изменить настройки экрана. Если вы нажимаете на кнопку OK, настройки изменяются, и программа запускается. После завершения работы программы настройки автоматически возвращаются в начальное положение.

    Читатель из будущего может подумать, что полный отказ системы — это уж слишком. Ни один из вышеприведенных вариантов нельзя назвать достойным вежливого гостя, хотя вариант —7 приближается к тому.

    Наилучшим вариантом является сочетание, включающее запрос, упомянутый в пункте —5, и способ выхода из программы, описанный в пункте —7. В маловероятном случае того, что изменение настроек экрана может помешать прохождению другого, параллельного или фонового процесса, такой запрос позволит отказаться от запуска программы.

    Параметры экрана изменяются без всякого предупреждения, и программа запускается. По завершении работы программы настройки устанавливаются в начальное положение.

    Другими словами, при запуске программы она будет просто выполняться предусмотренным образом, не влияя на работу других программ.


    Это может служить определением благовоспитанной компьютерной системы. Но что произойдет, если две программы, требующие разных экранных настроек, одновременно будут выдавать какие-то изображения? Вероятно, это будет ситуация, когда лошадь будет отображаться с одной цветовой палитрой, а рыба с другим разрешением.

    Вариант из пункта 7, который распространен и может показаться приемлемым, является неудачным, поскольку в нем выдается «диалоговое» окно, которое, по сути, не дает никакого диалога. Это просто злоупотребление, потому что на сообщенную информацию пользователь не может дать качественный ответ, что только приводит к пустой трате времени. (Метод прозрачных сообщений, описанный в разделе 5.2.3, позволяет решить эту проблему.)

    Прикладные программы, по сути, являются бременем для пользователя, но раз уж нам приходится работать с ними, давайте сделаем так, чтобы они работали как следует (см. также Raskin, 1993). Обобщая сказанное, повторим, что программа, или в будущем команда, должна автоматически выполнять перенастройку параметров, если это необходимо для ее нормальной работы. После завершения работы программы (или прерывания пользователем) все параметры должны быть восстановлены в исходное положение. Если восстановление невозможно или может привести к нежелательным побочным последствиям, должно выдаваться специальное предупреждение, в котором сообщалось бы об этих последствиях и предлагалось бы пользователю решить: продолжить ли действие или нет.

    В настоящее время мы не можем применять к одному экрану разные режимы разрешения одновременно. Но это уже проблема другого рода. Тем не менее, на мой взгляд, пользователи были бы довольны, если бы работа каждого интерфейса руководствовалась пунктом 8.

    27

    Конечно, если в вашей операционной системе недопустимы длинные имена, то здесь появляется еще одна проблема.

    28

    Левый символ обычно удаляется командой Backspace. — Примеч. науч. ред.

    29

    Совсем недавно мне случилось попользоваться текстовым процессором с таким ограничением на размер абзаца.Я превысил это ограничение уже как только вставил в абзац фотографию. Когда я сказал об этом разработчикам, они признали, что никогда не думали об этом. Таким образом, никогда не следует ставить ограничения только потому, что так писать программу легче. Такие ограничения всегда будут слишком узкими.

    30

    Все это касается современных систем. В будущих, человекоориентированных системах пользователю никогда не придется явным образом делать сохранение информации.

    31

    Доктор Джеймс Уинтер (James Winter) из Information Appliance продолжил такого рода унификацию структуры, указав на то, что в английском языке уже имеется аналогичная иерархическая структура с символами-разделителям, которая используется для отражения высших уровней организации текста.

    32

    То же самое касается и файловых имен и меню, которые были предложены в этой книге.

    33

    Здесь я использую термин


    Содержание раздела