Читаем Человеческий фактор в программировании полностью

Самые удачные инновации привносят новые идиомы представления, поведения или взаимодействия, не требуя дополнительного обучения для их эффективного использования. При рассмотрении «интуитивного» интерфейса пользователи могут легко догадаться о назначении и способах применения его элементов, даже если прежде их никогда не видели. Правильность догадок пользователей зависит от многих факторов. Важна узнаваемость и ясность, а также выразительность интерфейса — его способность при помощи слов, фигур, символов и позиций донести до пользователя информацию разработчика о применении и поведении системы.

«Разведываемые» интерфейсы позволяют пользователям исследовать возможности системы и применять ее средства, не вызывая своими действиями серьезных последствий. Устойчивые внутренние объекты, разработанные для обеспечения обратимости процессов, могут способствовать улучшению юзабилити, поскольку возможность отменять любые действия или «откатываться назад» является первым помощником в исследованиях. Простая навигация по многоуровневым меню или диалоговым окнам является еще одним известным способом поддержки исследований.

В основе объектно-ориентированной парадигмы лежит взаимодействие посредством сообщений. Хорошее взаимодействие с пользователями также является ключом к созданию новых интерфейсов, способных обучить пользователей работе с ними. Психолог и гуру в юзабилити Дональд Норман (Donald Norman) ввел два понятия, которые могут помочь разработчикам придумывать новые компоненты и идиомы — новые, но понятные и удобные. Ограничители — это элементы пользовательского интерфейса, которые сообщают об ограничениях той или иной операции. Они помогают пользователям избежать бесполезных или бессмысленных действий.

Например, диалоговые окна и рабочие зоны имеют границы. Модальные диалоговые окна приостанавливают взаимодействие до тех пор, пока пользователь не выполнит какую-нибудь операцию в данном диалоге. Бегунки двигаются только в одном измерении. При попытке перетащить элемент в окно, которое не может его принять, курсор изменяет свою форму на кружок с диагональной линией, который принято использовать для сообщения «дороги нет». Судя по этим примерам, разумное применение ограничителей позволяет мягко управлять действиями пользователей для успешного выполнения работы.

Подсказки представляют другую сторону обучающих интерфейсов. Подсказки — это элементы пользовательских интерфейсов, которые стимулируют, поощряют и подкрепляют определенные формы взаимодействия. Прямоугольный элемент, тень от которого подсказывает, что он «выступает» над поверхностью, побуждает пользователя щелкнуть по нему мышью, то есть воспользоваться им как кнопкой. Если в результате этого действия элемент «утопает», данная подсказка подтверждается. Треугольники или стрелки, указывающие вверх, подразумевают, что компонент можно передвинуть вверх или увеличить его размер, если воспользоваться этим элементом управления. Соответственно, направление стрелок вниз подразумевает обратное действие.

Смешивание сред

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

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

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT