Особенности пользовательского интерфейса
Пользовательский интерфейс Web-приложений тоже имеет свои особенности, обусловленные большой (возможной) аудиторией. Есть такая наука о красноречии, об ораторском искусстве - риторика. Существует она примерно столько же, сколько существует мыслящее человечество, первые труды на эту тему приписывают Эмпедоклу (примерно V век до н.э.). Из риторики нам известно, что существует закон снижения интеллектуального уровня аудитории с увеличением количества присутствующих. Чем больше аудитория - тем проще должна быть речь, тем короче должны быть фразы, тем большую значимость приобретают паузы в речи. С другой стороны, развитие социальных сетей демонстрирует нам, что общение не обязательно является вербальным, в том числе можно общаться и через пользовательский интерфейс. Из вышесказанного логически вытекает, что интерфейс Web-приложения должен быть простым. Настолько простым, насколько это вообще возможно. Предположим, Вы разрабатываете интерфейс некоего приложения, предназначенного для работы в рамках данного предприятия. При этом всегда есть возможность устроить для будущих пользователей системы обучающие курсы, рассказать им, что есть на экране и что Вы как разработчик хотели этим сказать. В случае с Web-приложением такой возможности у Вас не будет. Пользователь либо догадается сам, что разработчики имели в виду. Либо просто уйдет от Вас и никогда больше не вернется.
Поскольку у пользователя есть варианты его поведения внутри созданного Вами Web-приложения (варианты пути пользователя), цветом, размером, шрифтом нужно выделять желаемый Вами вариант поведения пользователя, нужные - для Вас - его действия. Если довести ситуацию до шутливого абсурда, то получим "идеальный Web-интерфейс" - это белый экран и на нем огромная красная кнопка "Оплатить".
Обычно разработчики приложений придерживаются неких правил хорошего тона. Эти правила не являются уникальными именно для Интернета, они обусловлены общечеловеческой этикой. К Вам на сайт в первый раз попал человек. Возможно, случайно, возможно, по рекомендации своих знакомых. Ситуация точно такая же по сути, но без привязки к каким-то там сетям и сайтам: Вы устроили грандиозный прием (или небольшую вечеринку) и зашел случайный гость. Как Вы себя поведете в таком случае, учитывая, что в госте Вы - заинтересованы? Это же Ваш посетитель и для Вас крайне важно, чтобы у него осталось хорошее впечатление, чтобы он пришел сюда еще раз. А лучше бы - еще бы и друзей с собой привел. Если посмотреть на ведущие Web-приложения мира, то все они ведут себя в данной ситуации одинаково. Наверное, так же, как Вы бы себя повели - в жизненной ситуации (с вечеринкой).
Человека нужно встретить. Причем встретить - прямо на пороге, чтобы он не смог уйти из-за того, что он просто постеснялся войти внутрь. Объяснить ему, что Вы ему очень рады, что он не будет здесь лишним. Попросить его "чувствовать себя как дома", помочь ему снять верхнюю одежду и так далее.
Его нужно "познакомить с обстановкой и остальными гостями". Вкратце обрисовать ему, куда он попал, что здесь происходит. То есть, возвращаясь к ситуации с Интернетом, коротенько пояснить суть приложения.
Человеку нужно "дать выпить" - нужно сделать так, чтобы в рамках Вашего приложения пользователю стало хорошо. Чтобы он не пожалел, что сюда зашел, чтобы почувствовал свою прямую выгоду.
Виральность. Пришедшему пользователю нужно дать понять, что если он приведет сюда своих друзей - то ему станет еще лучше, выгода будет - еще больше.
Другой, и подчас весьма неприятной для пользователей, особенностью является отсутствие стандартов на оформление визуальных элементов интерфейса. Если мы возьмем элемент "кнопка", или "поле ввода", или "меню", или любой другой визуальный элемент - то в рамках операционной системы этот элемент выглядит одинаково и ведет себя одинаково в любой программе. Соответственно, пользователь привыкает к расположению, внешнему виду и поведению визуальных элементов данной операционной системы. Меню в любой программе расположены вверху окна (Windows) или в специальной строке меню (MacOsX). Кнопка всегда имеет цвет, определенный текущей палитрой пользователя. Внешний вид кнопки одинаков в разных программах. И так далее.
Описанное выше не является справедливым для Web-приложений в полной мере. Стандартами языкаHTMLпредусмотрены визуальные элементы "кнопка", "поле ввода" и так далее. Однако как в силу сравнительной бедности этих элементов, так и в силу имеющихся развитых программных средств для их модификации каждый разработчик "раскрашивает" элементы и изменяет их поведение по своему усмотрению.
Можно попытаться сформулировать некоторое "правило хорошего тона" для разработки интерфейса Web-приложения: не стоит чрезмерно модифицировать внешний вид и поведение визуальных элементов по сравнению с наиболее распространенным, имеющимся на уже существующих широко известных сайтах. Проще говоря, есть смысл сначала посмотреть, как та же самая функция реализована наиболее значимыми, распространеннымиWeb-приложениями. В противном случае имеется существенный риск дезориентировать пользователя. Если Вы нарисуете круглую кнопку - пользователи могут просто не найти ее на экране, потому что ранее сформировавшаяся привычка заставляет искать глазами кнопку в форме квадрата. Конечно, вышесказанное - это только правило, а вовсе не закон, ведь вполне возможно, что нестандартный интерфейс как раз и является "фишкой" разрабатываемого Вами сайта.
Приведенный перечень особенностей не является исчерпывающим, но является достаточным для демонстрации специфичности интернет-приложений, их непохожести на задачи классического прикладного программирования.
- Оглавление
- Введение.
- Предмет рассмотрения данного курса.
- Одно-, двух- и многоуровневые приложения.
- Интернет.
- Адрес в интернете
- 2001:0Db8:11a3:09d7:1f34:8a2e:07a0:765d
- Имя в интернете
- Службы (сервисы)
- Сокета.
- Что такое "сокета" (socket) ?
- Создание серверной сокеты (пример на языке c).
- Сериализация
- Основы верстки: таблицы
- Основы верстки: фреймы
- Основы верстки: позиционирование участков сайта
- Протокол http
- Структура запроса (Request).
- Структура ответа (Response).
- Перспективы развития http.
- Интернет-приложения
- Web-приложения
- Web-сервисы
- Особенности проектирования
- Особенности пользовательского интерфейса
- Программирование интернет-приложений
- Объектно-ориентированное программирование
- Классы и объекты
- Жизненный цикл класса
- Статические члены класса
- Инкапсуляция
- Наследование
- Полиморфизм
- Интерфейсы
- Событийно-ориентированное программирование
- Совместная работа над проектом
- Технологии создания web-клиентов
- Dom (Document Object Model)
- Каскадные таблицы стилей
- JavaScript
- Обфускация и динамическое получение скриптов
- Java Applets
- ActiveX/npapi
- Adobe Flash
- Web-серверы
- Nginx (engine X)
- Технологии, применяемые на стороне сервера
- ИнтерфейсCgi
- КонцепцияMvc
- Сервлеты
- JavaScript
- Хранение данных