Что такое дизайн-паттерны

Дизайн-пáттерн — это маленькое стандартизированное дизайн-решение. Концепция того, как должен работать элемент интерфейса или логическое решение задачи.

В разработке ПО под паттернами подразумевается нечто подобное, но с точки зрения программирования.

Я называю паттернами то, что в когнитивной психологии называется прототипами.

Механизм обучения

Когда человек впервые решает задачу, он запоминает успешный способ, чтобы в будущем быстрее решать задачи такого типа. Этот механизм лежит в основе обучения. Сами того не замечая, люди мыслят паттернами и интуитивно пытаются решать задачи знакомыми способами.

Почему нужны

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

Паттерны существуют в первую очередь в коллективном сознании.

Если человек не знает паттернов, ему требуется учиться взаимодействовать с интерфейсом, анализируя обратную связь, которую даёт интерфейс на его действия. Если ему не помогать и использовать неуместные дизайн-решения, он будет затрачивать много сил на обучение, теряя вовлечённость и лояльность.

Соответствие паттерну

Элементы, использующие паттерн, должны выглядеть и работать определённым образом, чтобы их узнавали. Дизайнеры интерфейсов сталкиваются с одними теми же маленькими задачами. Моя библиотека паттернов помогает правильно применять их.

Когда пользователь узнаёт паттерны, интерфейс становится для него интуитивно-понятным и предсказуемым. Такой интерфейс улучшает опыт пользователя.

Хороший дизайн интерфейсов соткан из уместно применённых паттернов. Некоторые из них можно узнать по одному взгляду. Чтобы осознать другие, требуется несколько экранов и действий.

Опасность паттернов

Как любой инструмент, паттерны могут быть использованы неумело и мешать пользовательскому опыту. Если для решения дизайн-задачи используется неудачный паттерн, пользователь будет сбит с толку, поскольку элемент ведёт себя непредсказуемо и требует дополнительного времени на исследование.

Пример грубого нарушения паттерна

Если ссылка не открывает новую страницу, а разворачивает контекстное меню, это разрушает целостность системы, поскольку все остальные ссылки неотличимы от этого меню. Пользователь однозначно не может понять, какой элемент на странице является ссылкой, а какой разворачивает меню.

На основе отклика системы пользователь будет моделировать новый паттерн для текущего случая: «на этом сайте ссылки разворачивают меню».