С учётом контекста и однородно – Здравствуйте. Что вы хотите? – Мне, пожалуйста, упаковку молока, орешки, жидкость для моющего пылесоса и эпоксидную смолу. – Хорошо, с вас 3200 и 250 за доставку. Итого 3450 рублей. – Ой, подождите, давайте добавлю ещё орешки. И ещё упаковку. Они такие вкусные! – Ладно. С вас 3520 рублей, доставка бесплатно. Завтра устроит? После обеда? – Не, давайте лучше до обеда и послезавтра. – Окей. – «Эпл пэй». – Заказ принят в работу. Спасибо. Ждите курьера. Работу любого хорошего интерфейса можно пересказать в формате диалога. По сути, графический интерфейс и есть диалог, который на экране мобильного или компьютера состоит из диалоговых окон. Какое же это старое понятие.Диалоговое окно в графическом пользовательском интерфейсе – элемент для вывода информации и получения ответов пользователя. Пользователь заходит на сайт или открывает мобильное приложение, получает какие-то предложения, как-то реагирует. На другой стороне формируется ответ, который зависит от контекста – от того, что уже произошло. Снова настаёт очередь пользователя принимать решение и давать очередной ответ. И так продолжается до логичного завершения сценария, пока нужда человека не удовлетворяется полностью или пока пользователь не убегает в ужасе.В примере, которым я открыл эту главу, я показал свой обычный диалог с крупным онлайн-магазином. Я залетаю в него с очередной нуждой, он предлагает варианты, я решаю, годятся они мне или нет, он помогает оформить заказ, я оплачиваю покупки, он говорит, что теперь всё будет хорошо, нужно только дождаться курьера. Я закрываю мобильное приложение и открываю «Фейсбук» – посмотреть, что нового у френдов.Ни на одном из этапов я не выпал из контекста, я понимал, что происходит с моим заказом, что я уже сделал и что будет дальше. В примере всё прошло так гладко потому, что я привык покупать именно в этом магазине. А привык я потому, что мне всё понравилось в первый раз, во второй, в третий и так далее – магазин отвечал моим требованиям и не раз провёл меня хорошим или приемлемым путём. Иначе я бы не стал его постоянным покупателем.Но что, если бы мой диалог с магазином проходил так:– Здравствуйте. Что-то конкретное искали? – Мне, пожалуйста, упаковку молока, орешки, жидкость для моющего пылесоса и эпоксидную смолу. – Хорошо, с вас 3200 и 250 за доставку. Итого 3450 рублей. – Ой, у вас вроде доставка заказов от 3500 рублей бесплатная. А можно добавить что-то? – Нет, нужно сформировать новый заказ, а старый отменить. – Но я теперь не могу создать новый заказ, потому что у вас не хватает нужных мне товаров. – А вы сначала отмените старый заказ, и с товаров в нём снимется резерв. Тогда вы снова сможете добавить их в корзину. – Ладно, пришлось повозиться, но вот. – Хорошо. Теперь доставка будет бесплатная. С вас 3520 рублей. – Окей, у меня «Эпл пэй». – Принимаем только банковские карты. Ещё можете расплатиться наличными с курьером. – Я не знаю, где моя карта, не помню коды. Ладно, вот, всё нашёл. – Сессия истекла, ваша корзина пуста, сделайте заказ заново. – Да блин. Вот. Всё сделал. – Платёж принят. Сможем доставить через пять дней в ближайшее к вам отделение почты. – Не годится, мне нужна доставка раньше и домой. – Это не сможем. Но легко отменим заказ. Деньги вернутся на карту в течение трёх недель. – Ну, с вами каши не сваришь. Оформляйте возврат. А я пока пойду ещё магазы посмотрю. – Спасибо за то, что воспользовались нашими услугами! Не забудьте подписаться на наши рекламные рассылки и заходите ещё. Очевидно, что в таком случае есть проблемы, вызванные техническим несовершенством магазина. Есть и обман ожиданий. И «поехавший» контекст тут как тут. Никто в своём уме не станет подписываться на рассылки магазина, который сначала вёл себя вот так неприлично, а в итоге зажал деньги на достаточно долгий срок. И это ещё не самый дикий случай.