воскресенье, 5 июня 2011 г.

Опасайтесь всплывающих подсказок

Это перевод Beware the Balloon. Автор: Реймонд Чен.

Иногда лучше всего не кидаться за первой же возможностью. Нужно иметь терпение.

Когда в Проводнике Windows появилась возможность отображать всплывающие сообщения в области уведомлений (balloon tips), обнаружился довольно неприятный дефект этой функции.

Представьте себе, что вы наслаждаетесь программой в полноэкранном режиме - вроде полноэкранной DirectX-игры или развернутого на весь экран окна командной строки (OK, представить себе радостного пользователя командной строки несколько сложно, но для целей этой статьи поверим, что это именно так), и вдруг ни с того, ни с сего полноэкранный режим отключается и вас выбрасывает обратно к рабочему столу.

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

Конкретно этим дефектом очень интересовались вышестоящие менеджеры и регулярно поднимали этот вопрос на ежедневных совещаниях команды разработчиков. Они вызывали представителя команды разработчиков Проводника "на ковер" для разговора об этом баге. Очень уж самонадеянно Проводник отрывал пользователя от его работы, чтобы сообщить совершенно неинтересную ему новость.

Поначалу представитель команды разработчиков Проводника не находил, что возразить. "Мы не знаем, в чем причина такого поведения. Этого попросту не должно быть. Мы не спорим — такое поведение недопустимо и разбираемся с проблемой".

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

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

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

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

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

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

Изменение сработало — жалобы на всплывающие уведомления, вырывающие приложения из полноэкранного режима, исчезли.

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.