|
Программирование >> Реализация целостности данных
сочетание клавиш . Предоставьте пользователям возмож- ность переопределять стандартные сочетания клавиш. Пользователи-эксперты очень любят эти средства, и вам следует обеспечить им максимально быстрые и рациональные способы выполнения тех или иных действий. Эксперты высоко ценят возможность пользовательской настройки приложений, с которыми работают. Однако реализация подобных возможностей зачастую трудоемка, и я советую семь раз поду- мать, прежде чем отважиться на такой шаг. Если же вы все-таки решили предоставить пользователям большую свободу и включили в систему функции пользовательской настройки интерфейса, уделите особое внимание тому, как будут сохраняться индивидуальные пользовательские параметры но завершении сеанса работы с системой. Ничто так не раздражает пользователей, как необходимость снова настраивать приложение при каждом входе в систему. Возложите на пользователя ответственность за его действия Повторюсь: выражение дружественный пользовательский интерфейс , часто встречающееся в спецификациях и других важных документах - расплывчатое, а зачастую просто бессодержательное. Пожалуй одющий но частоте употребления штамп - система, ориентированная на нужды пользователя . На мой взгляд, в последнем выражении все-таки больше смысла, чем в термине дружественный - под ним подразумевается система, которая во всем отвечает требованиям пользователя и не навязывает ему собственных методов работы. Проиллюстрирую свои слова конкретным примером. Один разработчик как-то описал мне придуманный им метод, гарантирующий, что пользователи будут вводить данные в том порядке, который наиболее подходит для разрабатываемой системы. Суть проста: сначала пользователю доступен только один элемент, позеюляющий ввести данные. Затем, когд мод закончен, становится доступным второй элемент, потом - третий и т. д. Я считаю, что этот метод не только не позволяет реализовать систему, ориентированную на нужды пользователя - он вообще не позволяет реализовать мало-мальски работоспособную систему! На первый взгляд может показаться, что пользователи не придерживаются строго определенного порядка ввода информации лишь вследствие рассеянности, неаккуратности или потому, что никто не принуждает их соблюдать этот порядок. Однако это не так. Как нра-вило, есть достаточно веские причины, побуждающие пользователя ГЛАВ терфей. как посредник между $,тспш и системой ввести одни данные, затем пропустить несколько полей или списков: например, соответствующая информация отсутствует или ее не следует вводить в данный момент. Затем пользователь намерен продолжить вво мацни. которой уже располагает. Если же система будет принуждать его непременно ввести какое-либо значение в поле А, прежде чем он сможет ввести информацию в поле В - что же, он это сделает! Он может ввести недостоверную маиию или устаревшие данные. И система сохранит введенные данные, которые не будут соответствовать действительности. В результате борьба с недисциплинированными пользователями приведет лишь к созданию системы, ценность которой весьма сомнительна. К этой проблеме мы еще вернемся в главе 16, где будем обсуждать вопросы целостности данных. Искусственное усиление целостности данных - основной способ, с помощью которого СУБД ограничивают свободу пользователей. Второй способ - использовать режимы (modes), то есть состояния системы, одна из функций которых - ограничивать взаимодействие с ней пользователей. Стандартные режимы для систем баз данных - добавление, изменение и просмотр. Однако система, в которой пользователь должен выбрать одну из команд меню или щелкнуть кнопку, прежде чем сможет изменить запись, которую только что просмотрел, крайне неэффективна. К сожалению, многие разработчики выбирают именно такой путь - очевидно, за незнанием лучшего способа предотвратить порчу данных вследствие ошибки или невнимательности пользователя. Лично я вижу здесь слепое копирование традиционной модели интерфейса, использовавшейся 20 лет назад, с ее непременными атрибутами -командами Add, Edit и View в главном меню. Эту парадигму некоторые разработчики пытаются перенести в среду где она совершенно неуместна. Чтобы избежать подобных ошибок, рекомендую избавиться от идеи излишней опеки над пользователями. Если пользователь выполняет какие-либо действия - значит, он знает, что делает. Если пользователь хочет изменить запись, он должен иметь возможность сделать это, не спрашивая ни у кого позволения. Но предоставляя пользователям свободу, позаботьтесь ио том, чтобы случайные действия не привели к порче или потере данных. Достичь этой цели помогут команды отмены и повтора нескольких поеледни,ч действий, легко реализуемые средствами Microsoft Access и Microsoft Visual Basic. Кроме этого, включите в меню команду, позволяющую вернуться к последней сохраненной версии, отменив все изменения, сделанные в текущей записи. ЧАСТЬ 3 Проветиг:ован1в гюпыоввтелмжого инте;фейе9 Есть еще один прием - я использую его редко, хотя в некоторых он вполне оправдан: перед сохранением измененной записи система запрашивает у пользователя подтверждение этого действия. На мой взгляд, сама идея сохранения чужда большинству пользователей. Вспомните ментальную модель пользователя, которую я приводила в качестве примера. Введя или отредактировав данные, он полагает, что уже изменил запись, и если теперь спросить его, хочет ли он изменить ее, пользователь может вас неправильно понять. В любом случае дополнительное окно запроса, возникающее на экране перед сохранением записи - не слишком эффективный способ заставить пользователя лишний раз проверить, правильно ли он ввел данные. Многие щелкают ОК всякий раз, когда видят это окно, просто но привычке. Впрочем, всегда можно придти к компромиссу. Однажды настойчивый клиент просто вынудил меня реализовать запросы на подтверждение действий в проектируемой системе. Но одновременно я предоставила возможность отключить вывод этих сообщений. К сожалению, нередки и иные ситуации - когда некоторые из выполненных изменений невозможно или очень сложно отменить, Например, легко отменить изменения записи или данных в одном из лей таблицы, но удалив псе записи из таблицы, вы вряд ли сможете их потом восстановить, предоставив пользователю возможность выполнять такие опасные. действия, позаботьтесь, чтобы их результаты было легко отменить, восстановив данные в их первоначальное состояние. Если же это невозможно, прибегните к методу, излишнему при выполнении обычных операций - попросите пользователя подтвердить, действительно ли он хочет кыполнить эти действия. Избегайте неинформативных системных сообщений. Четко объясните вател га, в чем заключается опасность, и к чему могут нри- вести те действия, которые они собираются выполнить. Например, сообщение на рис. только встревожит пользователя, не дав никакой полезной информации.
Рис. 12-1. Врезультате изменений может нарушиться сс1лочна шисшо - пример неинформативного сообщения
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |