Автоматическое сохранение документа
Сохранениедокумента – одно из самых важных действий, которому должен научиться каждый пользователь компьютера. Вызов этой функции означает принятие всех изменений, внесенных пользовате' лем в копию документа, находящуюся в оперативной памяти, и запись этих изменений в копию документа на диске. В унифицированной мо' дели мы упраздняем различия между этими двумя копиями в пользо' вательском интерфейсе, так что функция Сохранить должна исчезнуть из основных элементов интерфейса. Сказанное не означает, что она должна совсем исчезнуть из программы. Это по'прежнему необходи' мая операция.
Сохраняйте документы и настройки автоматически.
Приложение должно автоматически сохранять документы. Начать следует с того, что, когда пользователь заканчивает работу с докумен' том и вызывает функцию закрытия, программа должна записать все изменения на диск, не требуя от пользователя подтверждения.
В идеальном мире этого было бы достаточно; однако компьютеры и про' граммы дают сбои, иногда пропадает питание, и разнообразные другие непредсказуемые аварийные события могут приводить к потере ре' зультатов вашего труда. Если питание отключится до того, как вы за' крыли документ, все изменения, внесенные в него, будут потеряны, поскольку он будет стерт из оперативной памяти. Копия на диске со' хранится, но могут потеряться результаты нескольких часов работы. Чтобы этого не случилось, приложение должно также сохранять доку' мент через определенные интервалы времени на протяжении всего се' анса работы. В идеале программа должна сохранять малейшие измене' ния, как только пользователь внесет их, то есть после любого нажатия на клавишу. В большинстве программ это вполне возможно. Другой ва' риант – накапливать небольшие изменения в памяти и сохранять их через разумные интервалы времени.
Важно, чтобы эта функция автоматического сохранения не влияла на скорость работы пользовательского интерфейса. Сохранение следует сделать фоновой задачей либо выполнять в те моменты, когда пользо' ватель не взаимодействует с приложением. Никто не набирает текст непрерывно. Каждый время от времени останавливается, чтобы со' браться с мыслями, перевернуть страницу или сделать глоток кофе. От приложения требуется лишь дождаться момента, когда пользователь прервется на пару секунд, и сохранить файл.
Автоматическое сохранение устроит практически всех пользователей. Однако некоторые (в том числе и авторы этих строк) настолько боятся сбоев и потери данных, что имеют привычку сохранять документ по' сле каждого абзаца, а иногда и после каждого предложения (для чего пользуются комбинацией Ctrl + S). Все программы обязаны обеспечи' вать возможность сохранения вручную, но не должны требовать это' го от пользователей.
Создание копии документа
В приложении должна присутствовать явно обозначенная функция Создать копию. Копия должна быть идентична оригиналу, но никоим об' разом не привязана к нему. Это означает, что последующие изменения в оригинале не влияют на эту копию. Новая копия должна автомати' чески получать некоторое стандартное имя, например «Копия Аль' фа», если исходный документа назывался «Альфа». Если документ
с таким именем уже существует, новая копия должна получить имя
«Копия Альфа #2». (Другой разумный вариант – «Копия Альфа» и «Вторая Копия Альфа», однако здесь есть одна тонкость: оригиналы и файлы копий в списке файлов, по умолчанию отсортированном по алфавиту, не будут расположены рядом.) Копии следует помещать в тот же каталог, что и оригинал.
Существует соблазн сопровождать команду копирования диалоговым окном, но работа пользователя не должна прерываться. Приложение должно выполнять свою работу тихо, эффективно и разумно, не доса' ждая пользователю вопросами вроде: «Вы уверены, что хотите сделать копию?» С точки зрения пользователя это – простая команда. Если возникнут непредвиденные обстоятельства, программа должна само' стоятельно принять конструктивное решение.