Закрытие документа и отказ от нежелательных изменений
Давнишние пользователи компьютеров привыкли думать, что закрытие документа является подходящим моментом для отказа от нежелатель' ных изменений, внесенных по ошибке или просто для того, чтобы пова'
![]() |
Проблемы модели реализации403
лять дурака. Это неверно, потому что наилучшим моментом для отказа от изменений является момент, когда они сделаны. Существует прове' ренная идиома, поддерживающая такой подход: функция отмены.
Сохранение документа
Во многих приложениях при первом сохранении документа или вы' полнении команды Сохранить как… из меню Файл вы получаете диалого' вое окно Сохранение документа. Типичный пример такого окна приведен на рис. 17.2.
Это диалоговое окно выполняет две функции – функцию именования файла и функцию выбора папки для сохранения файла. Обе функции требуют от пользователя глубокого знания файловой системы и умения предсказывать, откуда файл будет удобно открывать впоследствии. Пользователь должен уметь придумывать допустимые и запоминаю' щиеся имена файлов и разбираться в навигации по иерархии папок. Многие пользователи, разобравшиеся с именованием файлов, остави' ли все попытки разобраться с деревом папок. Они помещают докумен' ты на Рабочий стол или в каталог, предлагаемый приложением по умолчанию. Рано или поздно какое'нибудь неаккуратное действие
![]() |
Рис. 17.2. Диалоговое окно «Сохранение документа» выполняет две функ- ции: оно позволяет дать файлу имя и поместить файл в папку, выбранную пользователем. Однако пользователи не понимают, что такое сохранение, и заголовок диалогового окна не соответствует их ментальной модели этой функции. Более того, если диалоговое окно позволяет вам именовать и разме- щать документ, вы, возможно, ожидаете, что оно позволит переименовать и переместить документ. К сожалению, наши ожидания разрушаются неудачной реализацией
заставляет приложение забыть об этом умолчании – и пользователям приходится для поиска файлов вызывать специалиста.
Диалоговому окну «Сохранение документа» следует определиться со своим предназначением. Если смысл его существования – именование и размещение файлов, то оно плохо справляется с этой задачей. На' звав и определив файл, пользователь больше не может поменять его имя и местоположение – по крайней мере, с помощью этого диалогово' го окна, претендующего на функциональность, связанную с именова' нием и размещением файлов. Не может пользователь переименовать и переместить файл и с помощью какого'либо другого инструмента программы. В Windows ХР это диалоговое окно вообще'то позволяет переименовывать файлы – но только не те, с которыми вы работаете в данный момент. Каково, а? Новичкам не повезло больше всех; опыт' ные пользователи осваивают длинный и трудный путь: закрыть доку' мент, открыть приложение Проводник, переименовать файл, вернуть' ся в основное приложение, из меню Файл воззвать к диалоговому окну Открытие документа и открыть переименованный документ заново.
То, что пользователя вынуждают открыть Проводник, чтобы переиме' новать документ, не самое большое из зол, но здесь присутствует скры' тая ловушка. Все начинается с приманки: Windows без проблем под' держивает одновременную работу нескольких приложений. Привле' ченный этой возможностью, пользователь пытается переименовать файл в Проводнике, не закрыв документ в приложении. Этот вполне разумный поступок приводит в действие капкан – и стальные челюсти безжалостно смыкаются на ноге пользователя. Он получает грубый от' пор в виде сообщения об ошибке, изображенного на рис. 17.3. Попыт' ка переименовать открытый файл является нарушением правил со' вместного доступа, и операционная система отвергает ее, выдавая вы' сокомерное сообщение об ошибке.
![]() |
Рис. 17.3. Если пользователь попытается с помощью Проводника переиме- новать файл, открытый в редакторе Word, выяснится, что Проводник слишком глуп, чтобы справиться с проблемой. Кроме того, он настолько груб, что выдает высокомерное сообщение об ошибке. Новичок, получивший резкий отпор и от редактора, и от операционной системы, может вообразить, что документ вообще невозможно переименовать
![]() |
Модель реализации против ментальной модели405
Невинный пользователь всего лишь пытается переименовать свой до' кумент, но обнаруживает, что заблудился в лабиринте тайн операци' онной системы. По иронии судьбы единственная сущность, одновре' менно отвечающая за этот открытый документ и обладающая доста' точными полномочиями для его переименования, – то есть само при' ложение – отказывается даже от попытки сделать это.
Архивирование
Не существует никакой явной функции для создания копии, или ар' хивирования, документа. Пользователь должен делать это с помощью диалогового окна «Сохранение документа», но в этой операции много непонятного. Если пользователь уже сохранил файл под именем «Аль' фа», то должен явным образом вызвать диалоговое окно «Сохранение документа» и поменять название. Файл «Альфа» закрывается и сохра' няется на диске, а «Альфа (новый)» остается открытым и доступным для редактирования. Это действие не имеет смысла с точки зрения единственности реального документа и готовит пользователю весьма неприятную ловушку.
Вот вполне вероятный сценарий, который приводит к неприятностям. Предположим, пользователь работал с документом «Альфа» последние двадцать минут и теперь желает создать архивную копию на диске пе' ред внесением значительных экспериментальных изменений в ориги' нал. Он вызывает диалоговое окно «Сохранение документа» и меняет имя на «Альфа (новый)». Программа помещает документ «Альфа» на диск, позволяя редактировать документ «Альфа (новый)». Однако пользователь за время работы ни разу не сохранял документ «Альфа», так что документ записан на диск без изменений, внесенных в течение последних двадцати минут! Эти изменения существуют лишь в доку' менте «Альфа (новый)», который сейчас находится в памяти компьюте' ра и с которым работает приложение. Приступив к его модификации в полной уверенности, что результат предыдущей работы хранится в файле «Альфа», пользователь подвергнет изменениям единственную копию этой информации.
Каждый знает, что можно «ввернуть» шуруп в доску при помощи мо' лотка и забить гвоздь плоскогубцами, но опытный мастер понимает, что использование неподходящего инструмента в конце концов «вый' дет боком». Либо сломается инструмент, либо будет безнадежно ис' порчена работа. Диалоговое окно «Сохранение документа» является неподходящим инструментом для создания копий и управления ими – и пострадает в конечном счете именно пользователь.