Язык шаблонов в дизайне взаимодействияИсточник: PC Week Кирилл Вятчин
Существуют интерфейсные решения, хорошо работающие почти всегда. Эти решения можно систематизировать с помощью т.н. языка шаблонов. Проблема создания простого и удобного пользовательского интерфейса для программного обеспечения возникла в середине 80-х годов прошлого века одновременно с повсеместным внедрением компьютеров в человеческую деятельность. С тех пор компаниям-разработчикам наряду с решением традиционных задач расширения функциональности и гибкости ПО, приходится заботиться об эргономичности, простоте использования и эстетической привлекательности его интерфейса. Причем задача учесть такие нефункциональные требования к разрабатываемому продукту сама по себе является далеко не тривиальной. Решить ее помогает концепция языка шаблонов, получившая распространение специалистов в области человеко-компьютерного взаимодействия (HCI) и юзабилити в середине 90-х годов. Идея языка шаблонов (pattern language) принадлежит человеку, далекому от HCI, одному из самых известных архитекторов 20-го столетия Кристоферу Александру. Он предложил язык шаблонов в качестве средства описания архитектурных решений, однако оказалось, что данная концепция может успешно использоваться в дизайне интерфейсов. Более того, на сегодняшний день последователей Александра гораздо больше среди специалистов в области человеко-компьютерного взаимодействия, чем среди архитекторов. Я сам отношу себя к сторонникам этого подхода в HCI, и в данной статье попробую объяснить вам, почему. «Язык шаблонов» Кристофера АлександраОдна из основных идей Александра состоит в следующем: качество хорошо спроектированного здания трудно (почти невозможно) вербализировать в целом - здание просто воспринимается, как артефакт с хорошим дизайном: оно красиво, а главное - в нем удобно и приятно жить. Однако можно определить отдельные довольно простые решения (шаблоны), благодаря комбинации которых и возникает это качество. Использование этих шаблонов позволяет значительно упростить процесс разработки качественного артефакта. Сам Кристофер Александр определял понятие шаблона так:
Несмотря на то, что каждый из шаблонов может использоваться в самых различных ситуациях, шаблоны не являются просто набором абстрактных принципов. Все шаблоны служат достаточно конкретным руководством к действиям. Чтобы понять это, взгляните на следующий пример. В дизайне офисов, общественных учреждений, станций, поликлиник и так далее, Александр рекомендует использовать шаблон под названием «Место для ожидания»:
Из 253 таких шаблонов и состоит книга «Язык шаблонов» («Pattern language») Кристофера Александра (1977). Есть такая реальная история. В одном из нью-йоркских небоскребов люди возмущались тем, что лифта приходится ждать слишком долго. Изменить скорость движения лифта и технически, и по соображениям безопасности не представлялось возможным. Тогда руководство пригласило дизайнера, который придумал простое и дешевое решение проблемы. Стены возле лифтов сделали зеркальными, и люди прекрасно проводили время, разглядывая отражения, свои и чужие. Как это касается дизайна взаимодействия?Дизайнерам человеко-компьютерного взаимодействия концепция языка шаблонов показалась довольно удобной, поскольку процесс разработки интерактивной системы, в общем, можно сравнить с процессом разработки здания. В обоих случаях дизайнер должен иметь четкое представление о том, для кого предназначен его продукт (будь то дом или офис, веб-сайт или панель управления атомной станции), знать, как этот продукт будет использоваться, и в зависимости от этого выбирать решения. В применении к дизайну интерфейсов идею шаблонов можно описать так: это отнюдь не описание отдельных элементов управления, а описание способа, которым пользователь взаимодействует с системой или с элементом системы. Например, «кнопка» в интерфейсе Windows - это не шаблон, но неактивная (серая) кнопка является одним из способов реализации шаблона под названием «Отключенные Ненужные Элементы» (автор этого шаблона Дженифер Тидвелл). Причем один и тот же шаблон может быть использован и в высокоуровневых и в низкоуровневых структурах. Главная сила шаблонов в их универсальности: определенный шаблон может применяться в традиционном компьютерном ПО, в веб-сайте, в промышленных панелях управления, в видеоиграх, и в интерфейсе телефона. Есть несколько причин, побудивших к использованию шаблонов в дизайне взаимодействия:
На сегодня, к сожалению, единого универсального языка шаблонов для дизайна взаимодействия не существует. Тем не менее многие компании, которые занимаются дизайном интерфейсов, создают свои языки для внутреннего использования. Структура языка шаблоновСоздавая язык шаблонов, необходимо определить стандартную структуру описания его элементов (шаблонов). Существует несколько отличных друг от друга структур, разработанных разными авторами, однако для примера мы рассмотрим способ описания, который использует в своем языке шаблонов Дженифер Тидвелл (Jenifer Tidwell) («Pattern Language for Human-Computer Interface Design», 1999). Данная структура хороша как пример именно своей полнотой. Итак, у Тидвелла описание каждого шаблона состоит из следующих пунктов:
Где узнать о шаблонах подробнее?Начало увлечения языками шаблонов в HCI, или даже мода на них, пришлось на середину 90-х годов, и число сторонников этой идеи только возрастает. Поклонники концепции шаблонов создали целое направление в дизайне интерфейсов (его часто называют «Pattern Movement»). Существует множество публикаций на этот счет. Ссылки на лучшие публикации (с краткими описаниями на русском языке) мне удалось собрать в |