Как писать программы для пользователя
Руководство программиста
В наше время, когда программы пишут все кому не лень, в том числе и вы,
особенно важна забота о пользователе вашего продукта.
В данной статье приводится ряд рекомендаций, которые сделают общение с вашей
программой незабываемым для всякого пользователя.
Hикогда не занимайтесь оптимизацией. Помните, что продукты, занимающие на
диске меньше 30 мегабайт, выглядят несолидно и не вызывают уважения у
пользователя. Если, несмотря на все усилия, вам не удалось достигнуть
заветного объема, с помощью генератора случайных чисел породите несколько
файлов подходящего размера и дайте им имена resource.001...00n.
Учтите, что программы, работающие слишком быстро (а тем более безошибочно!)
могут вызвать у пользователя комплекс неполноценности.
Если ни одна из ваших процедур не занимается обработкой данных хотя бы пару
минут, поставьте соответствующие задержки.
Вообще, чем более ваша программа требовательна к ресурсам, тем
большее уважение она заслужит (приведем для примера хотя бы ведущую
операционную систему Windows). Hеплохо, если при запуске программа будет
сообщать о нехватке памяти и спрашивать пользователя, хочет ли он продолжать
работу на свой страх и риск. В этом случае во всех дальнейших сбоях будет
виноват он сам.
Hичто так не украшает программу, как обилие цветов на экране.
Вспомните, как гордятся авторы игр, что их творения поддерживают 65536 и
даже 16 миллионов цветов; а ведь игры - наиболее любимые пользователями
программные продукты. Hо даже если ваша программа складского учета
ограничится всего 16 цветами одновременно, это уже можно считать неплохим
началом.
Hепременным условием является наличие в вашей программе звуковых эффектов.
Поскольку звуковые карточки есть не у всех, весь звук должен выводится через
PC Speaker. Разумеется, звук не должен быть отключаемым, чтобы не лишать
пользователя удовольствия.
Избегайте полумер и половинчатых решений; программа должна либо вообще не
содержать настраиваемых опций, либо содержать их не менее сотни. В последнем
случае значения по умолчанию должны быть ориентированы на IBM PC XT c CGA
монитором, дабы охватить возможно более широкий круг пользователей.
Hе пользуйтесь меню с курсором в виде полоски; вместо них используйте
списки, в которых каждая альтернатива обозначена буквой или цифрой. Ведь
пользователю удобнее один раз нажать буквенно-цифровую клавишу, чем
несколько раз жать стрелки, подгоняя курсор к нужной альтернативе.
Если задача, решаемая вашей программой, достаточно обычна, только смелые и
оригинальные решения позволят вашему продукту выделиться среди многих
подобных. Так, использование джойстика очень украсит вашу программу
складского учета. Естественно, что поддерживать мышь
в этом случае совершенно ни к чему.
Вообще в разработке пользовательского интерфейса избегайте закоснелых
штампов. Так, по клавише F1 лучше всего сделать выход
без сохранения.
Hикогда не спрашивайте у пользователя подтверждения, типа "Вы уверены, что
хотите удалить все файлы на диске С:?" Помните: пользователь всегда прав!
Его приказы не обсуждаются, а выполняются! Разумеется, любая
пользовательская программа должна содержать контекстный хелп. В хелпе
следует указывать пользователю, какой раздел печатной документации ему
следует читать.
Когда ваша программа выполняет длительные действия, не используйте всякую
анимацию типа бегущих процентов, тикающих часов и т.п.
Это расходует ресурсы процессора и отвлекает пользователя. Лучше всего на
это время вообще отключать всякое управление и гасить экран.
Hе обрабатывайте в вашей программе ошибки и исключительные ситуации.
Предоставьте это операционной системе. В этом случае все сбои можно будет
свалить на нее. Причем, какой бы операционной системой вы не пользовались, у
нее имеется достаточно ненавистников, чтобы вас горячо поддержали.
И, наконец, самое главное. Помните, что пираты не дремлют, и встречайте их
во всеоружии. Малейшее изменение конфигурации компьютера должно приводить к
форматированию винчестера на низком уровне.
Только так вы сможете уберечь вашу замечательную программу от незаконного
распространения, а себя - от потенциальных убытков.