Главная » Delphi » Справка и окно О программе

0

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

А начнем мы, немного повторив то, что уже говорилось в главе I по поводу справки. Во-первых, напомним эмпирическое правило, касающееся всех "ширпотребовских" программ: если пользователь не может освоиться с основными функциями программы без обращения к справке максимум за полчаса, то он ее бросает. Это касается также и программных продуктов (тут уместнее именно такой термин), которые предназначены для решения узкоспециальной задачи ограниченным кругом лиц— например, сервисных программ для обслуживания научных или медицинских приборов, программ для проведения диагностики (скажем, автомобильных систем) и т. п. Причем к этой категории замечание о предельной простоте и удобстве использования относятся даже в большей степени, чем к "обычным" программам— каким- нибудь текстовым редактором можно пользоваться, а можно и не пользоваться, а в случае узкоспециальных программ у пользователя просто нет выбора. А каких программ не касается такое замечание? В качестве примера можно привести программу Photoshop — и не нужно пытаться приступать к ней без подробного изучения руководства. И данном случае это правильно. Подумайте, почему?

И тем не менее справка должна быть в любом случае. И я уже писал о том, что для программиста составление справки — один из важнейших этапов создания программы, это нужно ему самому не в меньшей степени, чем пользователю. Когда вы пишете справку, вы проходите всю логику работы с программой заново, причем с точки зрения постороннего, и тут могут выявляться такие "ляпы" и недоработки, которые в противном случае могут возникнуть только после долговременной эксплуатации. Я уверен, что если бы программисты Microsoft, прежде чем вводить понятие "языка", о чем мы долго говорили в главе 8, попытались письменно бы изложить свое видение этой проблемы в расчете на пользователя системы, то такой жуткой пуганицы бы не возникло.

К сожалению, большинство программ, в том числе фирменных, являют собой примеры того, как справку делать не следует. MS-справка, как no Windows в целом, так и по отдельным продуктам, в большинстве случаев — совершенно бесполезная вещь. Лично мне еще ни разу не удалось найти там ни одного ответа ни на один реальный вопрос — включая обращение к так называемому "мастеру подсказок". Справедливости ради надо отмстить, что в Windows 2000 и ХР справка значительно улучшена (за счет организации по типу поисковых систем в Интернете). Но все же: вы в курсе, например, что автозапуск CD-ROM в Windows ХР можно отменить как минимум тремя различными способами (а для версии ХР Pro есть еще и четвертый), причем в каждом случае результат будет различный (можно отменить автозапуск на один сеанс, можно — навсегда, а можно — лишь для определенного типа содержимого)? В справке вы можете проковыряться хоть целый час. но внятного описания всех этих возможностей сразу не найдете. В Интернете ответ чаше всего найти можно гораздо быстрее. А в Windows 98 единственный, пожалуй, полезный "help" — "справка по Visual Basic", но не потому, что она правильно составлена (составлена она кошмарно), а потому, что она представляет собой относительно полный справочник по языку, и если запастись терпением, то ответ на почти любой вопрос там, в принципе, можно найти. В точности то же самое относится и к справке Delphi. Правда, чтобы действительно найти ответ в этих справках, надо еще и правильно сформулировать вопрос — но это не так страшно, как в общей справке Windows, где ответов чаще всего вовсе не содержится. В общем и целом я совершенно уверен в том, что общеизвестное "пользователь справку не читает" обусловлено тем, что он и не надеется найти там что-нибудь дельное — его много лет тщательно приучали к тому, что справка может содержать что угодно (например, начинаться с никому в подавляющем большинстве случаеа не нужного пункта "история версий", наличие которого в самом начале справки можно расценивать только, как проявление крайнего нарциссизма авторов), но не описание программы.

Как и справка по Windows в целом, так и "Мастер подсказок" в особенности, основаны на порочном подходе, который мы условно назовем "парадигма FAQ" — когда составители пытаются перебрать максимум возможных вопросов, которые, в их представлении, должны возникать у пользователя, и отвечают на них. И не пытайтесь идти по этому пути — даже для самых простых программ вы никогда не сможете вообразить все многообразие жизненных ситуаций. Тут уместно провести параллель с уголовным кодексом — есть законы, а есть их толкования (FAQ), и толкования составляются в большинстве случаев апостериори, т. е. представляют собой сборник ответов на конкретные вопросы, которые возникают в конкретных жизненных ситуациях, и во много раз по объему превышают сам кодекс. Если бы законодатели при составлении кодексов попытались бы заранее предусмотреть все ситуации — у них все равно ничего бы не вышло. А ведь именно гак поступают составители справки Windows. Если вы хотите помочь пользователям — составляйте, конечно, сборники "ЧАВО", но только в дополнение к основной справке, а не как замену ее.

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

Это то, что касается подхода, а как должна выглядеть грамотно составленная справка на практике? Пример хорошо написанной справки — Help в упоминавшемся мной графическом редакторе Paint Shop Pro, очень неплохая справка в WinRar. Хорошая справка — это не что иное, как описание (по возможности полное) вашей программы. Описание это должно представлять собой древовидную структуру и охватывать все (желательно без исключения) объекты и привязанные к ним действия, которые в вашей программе имеются. Описывайте, что делает тот или иной пункт вашей программы, не пытайтесь командовать, что нужно делать пользователю— кроме, разве что, самых очевидных случаев, когда для работы программы необходимо именно действие пользователя. Нельзя создавать пункты справки по такому образцу:

}. Как искать файлы?

Чтобы найти файл, щелкните кнопку "Поиск", после чего в открывшемся окне "Поиск фатов"укажите папку…

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

I. Кнопка "Поиск".

При щелчке левой кнопкой мыши на кнопке "Поиск" откроется окно с заголовком "Поиск файлов", в котором вы увидите перечень папок. При указании одной из папок…

Если все же без явного указания задачи пользователя не обойтись, то желательно хотя бы начинать его с предположения: "Если вы хотите найти фаю. то…", тут неявно имеется в виду, что задач может быть много разных, но вот если вы хотите именно это, то тогда будьте любезны, уж не поленитесь щелкнуть такую-то кнопочку. Не смейтесь — я совершенно серьезен, потому что написание программ есть одна из разновидностей оказания сервисных услуг, и не может не подчиняться общим законам в этой области, первый из которых известен: "покупатель всегда прав" (жаль только что так называемые "маркетологи" обычно плохо эти законы усваивают).

Заметки на полях

Не могу не остановиться тут на одном вопросе, который вообще-то к теме книги прямого отношения не имеет. Крупнейшей и, к сожалению, стандартной для современного разработчика софта ошибкой является позиция, когда производитель начинает активно диктовать свои требования пользоввтелю. Особенно неприемлемой следует считать подмену понятия "покупки" понятием "лицензирования": почти все без исключения фирменные программы на самом деле не продаются (т. е. не передаются в собственность) — они как бы предоставляются клиенту во временное (хотя, возможно, и с неограниченным сроком) пользование. Такая подмена понятий позволяет производителю оставить права на программу у себя и ваести множество ограничений, которые в случае "покупки" были бы просто незаконными: программу нельзя "ломать" (дизассемблиро- вать), нельзя передавать другим лицам, нельзя модифицировать и перепродавать и т. п. Причем при всех этих ограничениях, тем не менее, производитель не берет на себя абсолютно никаких обязательств и не несет ответственности, скажем, за ошибки и просто плохую работу программы. То есть ситуация, в которой производитель любой материальной продукции был бы по закону обязан осуществлять замену, ремонт и даже осуществлять возврат денег, производителей софта, укрытых за юридически непробиваемой стеной лицензий, как будто не касается вовсе. Безусловно, это положение нельзя называть приемлемым — мало того, сейчас существует тенденция распространить точно такие же положения и вообще на любую так называемую "интеллектуальную собст- венность", не только на программы— показательны в этом смысле попытки внедрения DRM (Digital Rights Management, управление цифровыми правами) в отношении музыкальных файлов или цифрового видео. Безусловно, в недалеком будущем положение придется исправлять и запрещениями тут не отделаешься. Обсуждение подобных вопросоа, конечно, выходит за рамки этой книги, я только хочу призвать читателей, которые захотят своими программами торговать, не становиться в позицию упомянутых производителей. Дело еще и в том, что независимо от вашей позиции относительно "авторских прав" нельзя отрицать, что все эти лицензии, установочные ключи и пароли, активации через Сеть и прочие ухищрения в конечном итоге ударяют исключительно по интересам конечного пользователя, в вовсе не пиратов (имеются в виду настоящие пираты — те, кто зарабатывает деньги на продажах, а не те "пираты", которые, например, обмениваются музыкой через пиринговые файлообменники). У пиратов времени достаточно, и "на всякую хитрую гайку найдется болт с левой резьбой", как гласит народная мудрость, а вот для простого пользователя одна только необходимость вводить пароль при переустановке может заставить обратиться к пиратам. Я пично знаком с человеком, который, имея в распоряжении 3 (три!) лицензионных копии Windows ХР, все же устанавливает на компьютере пиратскую — просто чтобы не связываться с активацией, потому что ему по роду деятельности — он тестирует разное "железо" — часто приходится систему переустанавливать.

Но довольно политинформаций, вернемся к справке. В указанном ранее стиле следует давать и дополнительные пояснения, что произойдет, если пользователь предпримет то-то и то-то. Например: "если вы нажмете клавишу <F2> при открытом окне "Поиск файлов", то это вызовет перезапуск компьютера с полным разрушением файловой структуры жесткого диска". Обязательно давать подобные пояснения тогда, когда имеются какие-то ограничения, особенно неочевидные — например, как для настроек нашего переключателя раскладки следует упомянуть, что буквенных клавиш с атрибутом "расширенная" просто не существует в природе.

Крупнейшей ошибкой также почти всех без исключения составителей справки является то, что они не формулируют задачу в целом: что вообще делает программа, для чего она предназначена? Иногда это очень трудно выяснить даже после установки программы, не говоря уж о том, чтобы вывести краткую справку на эту тему перед установкой. О пояснении используемых терминов я уж и не говорю: в любимой мной программе The Bat! есть пункт под названием (в русском варианте) Сжать все папки. Попробуйте с ходу сообразить, что имеется в виду (на самом деле— очистка от мусора),— и в справке, которая является самым слабым местом этой замечательной программы, выяснить что-то практически невозможно.

Есть и более анекдотичные примеры: скажем, слово "контакты" применительно к телефонной книге. В русском языке, кроме "контактов" в электротехническом смысле, напрашивается значение этого слова в терминологии врачей-эпидемиологов, что вызывает совершенно неприличные ассоциации. А какие такие "контакты" могут быть в телефонной книге? Я сомневаюсь, что и в английском термин contacts применим в данном случае1, и это совсем не только проблема недостаточной языковой грамотности разработчиков — это проблема непонимания ими случаев, когда употребляемое слово есть специ- ильный термин, а не то, что мы обычно подразумеваем*. Никто не запрещает называть записи в телефонной книге "контактами", или то, что вы сейчас читаете — "документом", просто нужно не забыть пояснить, что "документ" — это в данном случае все, что создано с помощью Word, а не паспорт, военным билет или справка по уровню доходов в семье1.

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

Вернемся к собственно справке. Только после того, как вы составите такое описание, вы можете озаботиться всеми остальными "прибамбасами" — горизонтальными гиперссылками (обязательно!), указателем и поиском. По поводу последних надо сказать отдельно. Само понятие "указателя" пришло из печатных книг, где это единственный, помимо оглавления, способ обеспечить более-менее удобную навигацию по тексту. В электронном варианте при наличии приличного поиска указатель — совершенно лишняя функция, но все же иногда может быть удобен, как средство отсеивания "мусора", если поиск организован недостаточно корректно. Но помните, что информативность указателя полностью на вашей совести. И в любом случае оглавление справки — та самая древовидная структура, о которой я говорил ранее — должно быть всегда основным способом ориентирования по ней, если реально пользоваться справкой можно только через указатель и поиск — такая справка составлена категорически неправильно. Даже странно, что в печатных технических книгах оглавления составлены обычно достаточно удобно, как будто в электронной справке действуют не те же самые законы. Между прочим, на составление технической документации есть ГОСТ, и по большому счету не

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

Вопрос о том, создавать ли справку в стандартном стиле Windows Help, я оставляю на усмотрение читателей. Формат этот, на мой вкус, сделан совершенно безобразно, а гиперссылки, долгое время бывшие серьезным аргументом в его пользу, теперь можно вставлять даже в документы Word. Единственным серьезным доводом в пользу этого устаревшего формата является его тесная интеграция с программой, когда любому компоненту можно придать свою собственную справку, не выходя за рамки единой структуры. Но использование контекстной справки, на мой взгляд, вообще вещь порочная, типичное порождение упомянутой "парадигмы FAQ", предусмотреть именно тот вопрос, который у пользователя в данный момент возникнет, практически невозможно. Если вы отметили, я даже никогда не пользуюсь всплывающими подсказками (hint)— в большинстве случаев они только загромождают поле зрения и отвлекают пользователя. Единственный, на мой вкус, правильный способ использования всплывающих подсказок — демонстрировать доступные горячие клавиши, и надо же так случиться, что когда такая подсказка действительно потребовалась по ходу нашего повествования (в главе 14 для пункта меню) — то ее как раз создать оказалось нельзя (не вообще нельзя, а нельзя в удобной для пользователя форме— для пунктов меню подсказки можно только выводить в какой-нибудь компонент через обработку события onHint).

Куда более удобной и для разработчика и для пользователя является современная справка в формате HTML (и еще более продвинутых форматах, таких как СНМ). Есть много специальных инструментов, которые позволяют создавать такие справки, и мы здесь не будем их рассматривать — для этого есть специальная литература. Мы, как люди сермяжные, рассмотрим коротко только два вопроса — как можно создать и отобразить без излишних хлопот короткую справку без использования специальных средств.

Источник: Ревнч Ю. В.  Нестандартные приемы программирования на Delphi. — СПб.: БХВ-Петербург, 2005. — 560 е.: ил.

По теме:

  • Комментарии