Как бы вы поступили с пользователями, которые не читают диалоговые окна? [закрыто]

Из документации для FileSystemWatcher:

Событие OnCreated возникает, как только создается файл. Если файл копируется или переносится в наблюдаемый каталог, событие OnCreated будет немедленно поднято, за которым следуют один или несколько событий OnChanged.

Итак, если копия не выполнена , (поймайте исключение), добавьте его в список файлов, которые все еще нужно переместить, и попытайтесь выполнить копию во время события OnChanged. В конце концов, он должен работать.

Что-то вроде (неполное, улавливать определенные исключения, инициализировать переменные и т. Д.):

    public static void listener_Created(object sender, FileSystemEventArgs e)
    {
        Console.WriteLine
                (
                    "File Created:\n"
                   + "ChangeType: " + e.ChangeType
                   + "\nName: " + e.Name
                   + "\nFullPath: " + e.FullPath
                );
        try {
            File.Copy(e.FullPath, @"D:\levani\FolderListenerTest\CopiedFilesFolder\" + e.Name);
        }
        catch {
            _waitingForClose.Add(e.FullPath);
        }
        Console.Read();
    }

    public static void listener_Changed(object sender, FileSystemEventArgs e)
    {
         if (_waitingForClose.Contains(e.FullPath))
         {
              try {
                  File.Copy(...);
                  _waitingForClose.Remove(e.FullPath);
              }
              catch {}
         }
   }
29
задан Bhargav Rao 1 July 2018 в 09:19
поделиться

22 ответа

Я стараюсь разрабатывать приложения так, чтобы они были устойчивыми перед лицом несчастных случаев - либо сбоев (непреднамеренных операций, таких как нажатие в неправильном месте), либо ошибок (когнитивных ошибок, таких как нажатие кнопки «ОК» или «Отмена» в диалоговом окне). Вот несколько способов сделать это:

  1. бесконечное (или, по крайней мере, многошаговое) undo / redo
  2. интеграция документации с интерфейсом посредством динамических всплывающих подсказок и других контекстно-зависимых средств коммуникация (одна статья, которая особенно актуальна, касается «Сюрприз, объяснение, вознаграждение» (прямая ссылка: SER ) - использование типичных психологических реакций на неожиданное поведение для информирования пользователей)
  3. Включите состояние системы в указанную документацию (используйте данные текущего пользователя в качестве примеров и сделайте документацию конкретной, используя данные, которые они могут видеть прямо сейчас )
  4. Ожидается ошибка пользователя. Если есть вероятность, что кто-то попытается записать в: \, когда диск не установлен, установите тайм-аут, чтобы система могла корректно выйти из строя, и запросите другое место. Сохраняйте данные в памяти, пока они не будут защищены на диске и т. Д.

Это сводится к двум основным вещам: (1) программа защиты и (2) информирование пользователя как можно лучше. Если интерфейс системы прост в использовании и ведет себя в соответствии с их ожиданиями, то они с большей вероятностью узнают , какую кнопку нажимать, когда появляется раздражающее диалоговое окно.

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

Невозможно сделать систему полностью защищенной от ошибок, но я обнаружил, что описанные выше методы имеют большое значение в правильном направлении. (и они были включены в системы, используемые для разработки Surprise Explain Reward и других инструментов, которые были проверены обширными исследованиями пользователей.)

34
ответ дан rcreswick 1 July 2018 в 09:19
поделиться

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

Но если вам действительно нужно использовать диалоговые окна, попробуйте следующее:

  • Одно предложение только для диалога
  • Не более двух или трех кнопок
  • Составьте текст читаемый внутри диалога (больше, чёрно-белый)
  • Скорее используйте один диалог, чем многократно многократно (совет: список)

Что я думаю о диалоговых окнах? В двух словах: они глупые и глупые вещи. Программы, которые их используют, встают у меня на пути и замедляют меня своими глупыми бессмысленными вопросами. Кроме того, часто программы, использующие диалоговые окна, довольно глупы.

0
ответ дан Cheery 1 July 2018 в 09:19
поделиться

Не используйте подтверждение (Вы уверены? Да / Нет), но используйте Отмена.

Не выскакивайте предупреждения, которые блокируют , потому что пользователи попытаются снова начать работать как можно быстрее, игнорируя сообщение и просто щелкая его. Используйте что-то вроде информационной панели Internet Explorer, которая не блокируется.

0
ответ дан 1 July 2018 в 09:19
поделиться

Много полезных советов выше. Я просто хочу добавить к книге рекомендации - книгу Джоэла Сплоски «Дизайн пользовательского интерфейса для программистов» стоит прочитать:

http://www.amazon.com/User-Interface-Design-Programmers -Spolsky / др / 1893115941 / исх = pd_bbs_sr_4 т.е. = UTF-8 & амп;? s = книги & амп; QID = 1222233643 & амп; ср = 8-4

1
ответ дан KristoferA 1 July 2018 в 09:19
поделиться

У меня мало терпения к пользователям, которые не читают, что заняло у меня много времени и усилий для разработки: 1) приложения 2) инструкции Кроме того, если вы не читаете и просто делаете «все, что нужно» " ты сам по себе. Я заявляю это заранее. Я делаю свои приложения максимально интуитивно понятными, и все же есть люди, которые будут звонить в службу поддержки по полной программе, как ребенок, выпадающий из класса, когда им этого не следует. У меня нет терпимости к этому. Прочитайте руководство, прочитайте диалоги - ответы на 99% проблем прямо здесь.

1
ответ дан Taptronic 1 July 2018 в 09:19
поделиться

Одна вещь, которую вы можете сделать, это отключить кнопку ОК на 3 секунды.

Firefox делает это при установке расширения.

Редактировать: Хорошо, некоторые люди находят это раздражающим. Я все еще думаю, что около 1 секунды будет в порядке. Это подавит инстинкт мгновенного нажатия кнопки «ОК», который есть у людей (включая меня), и вынудит их принять двойное решение. Конечно, даже это будет раздражать людей, если ваш диалог - это не то, что им действительно нужно читать.

1
ответ дан Peter Mortensen 1 July 2018 в 09:19
поделиться

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

0
ответ дан Zan Lynx 1 July 2018 в 09:19
поделиться

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

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

1
ответ дан Peter Wone 1 July 2018 в 09:19
поделиться

Помогает изменить формулировку и то, как работает диалог. Например, наличие кнопок OK / Отмена позволяет пользователям игнорировать большую часть диалога. Если вы удалите обычные кнопки и замените их более текстовыми ссылками на команды, пользователи с большей вероятностью будут читать каждую кнопку, потому что опция «быстро уходи» недоступна.

0
ответ дан Nidonocu 1 July 2018 в 09:19
поделиться

Прежде всего, глупо должно причинять боль, но обычно это не так ...

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

0
ответ дан dacracot 1 July 2018 в 09:19
поделиться

Я называю это «проблемой автопилота».

  1. Не используйте кнопки «OK», «Отмена» в нижней части экрана. Посмотрите, как Vista пытается заставить пользователей принять реальное решение.
  2. Отключить кнопки на несколько секунд, отобразить таймер / индикатор времени «Подумать». Таким образом, пользователь не может нажать на автопилот. Пользователи склонны находить это очень раздражающим.
0
ответ дан GvS 1 July 2018 в 09:19
поделиться

Неправильный вопрос. «Как бы вы поступили с пользователями» начинается не с того конца.

Правильный вопрос: «Учитывая, что диалоги отвлекают пользователей от поставленной задачи, какие существуют лучшие альтернативы?»

.

Работая над достижением цели или завершением задачи, мы можем выделить три ситуации:

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

(2) Вы можете предпринять только одно действие, или альтернативы не имеют отношения к пользователю. Не беспокойте его вообще.

(3) Есть два или более способов достижения цели. Позвольте пользователю выбирать между этим. Не формулируйте это как вопрос да / нет. (Vista предлагает это как обычный диалог для замены окна сообщения.) Если это вообще возможно, не делайте этот выбор необратимым.

Исключением из этого правила является ситуация, когда пользователь ожидает вопроса «да / нет». Но на самом деле, если это так, то почему вопрос не является частью нормального рабочего процесса? Диалоговые окна находятся за пределами нормального рабочего процесса.

2
ответ дан MSalters 1 July 2018 в 09:19
поделиться

Если вам необходимо использовать диалоговое окно, поместите описательные надписи на кнопки в диалоговом окне.

Например, вместо кнопок «ОК» и «Отмена» попросите их сказать «Отправить счет» и «Вернуться» или что-либо еще подходящее в контексте вашего диалога.

Таким образом, текст находится прямо под курсором, и у них есть хорошие шансы для понимания.

Mac OS X делает это большую часть времени. Вот пример изображения.

Редактировать:

Это лучшее изображение , и я нашел его на сайте Apple Human Interface Guideline, который является отличным справочником и очень читабельным. Этот документ на этом сайте полностью посвящен диалогам.

3
ответ дан Peter Mortensen 1 July 2018 в 09:19
поделиться

Я думаю, что вы, вероятно, захотите прочитать эту статью: «Влияние прерываний в стиле согласования высокой интенсивности на отладку конечного пользователя» , TJ Robertson, Joseph Lawrance и Margaret Burnett, Journal of Visual Languages и вычисление 17 (2), 187-202, апрель 2006 г.

Он задал похожий вопрос. В результате пользователь должен знать, что вы хотите его внимания, а затем бездельничать и ждать, пока пользователь ответит. Не перебивайте пользователя, хотя, это не то, что он или она хочет.

1
ответ дан Jason Dagit 1 July 2018 в 09:19
поделиться

Модальное диалоговое окно [Lightbox] ( http://en.wikipedia.org/wiki/Lightbox_ (JavaScript)) в некоторых случаях представляется эффективным методом (вывод Web 2.0, но может быть применено в другие контексты).

Еще один момент: если вы можете отказаться от диалогового окна для функции Undo (Gmail для одного отстаивал эту концепцию в качестве стандартного поведения веб-приложения), то это следует учитывать.

1
ответ дан micahwittman 1 July 2018 в 09:19
поделиться

Одно предложение:

  1. Не используйте диалоговые окна. Особенно модальные диалоговые окна OK / Cancel.

Иногда это сложно ... как вы справляетесь с открытием файла? Иногда это легко ... вам действительно нужно предупредить пользователя, что он собирается перезаписать файл? Скорее всего, если я слепо нажимаю «ОК», я не буду обращать внимания на какие-либо предупреждения.

4
ответ дан Terry G Lorber 1 July 2018 в 09:19
поделиться

Часто разработчики используют модальные диалоговые окна просто потому, что их легко кодировать.

Однако немодальные уведомления часто более удобны для пользователя.

8
ответ дан Jim Burger 1 July 2018 в 09:19
поделиться

Вспоминается .NET Rocks эпизод (я полагаю , эпизод 338, «Марк Миллер о науке хорошего пользовательского интерфейса» ), обсуждающий эту самую тему. Я думаю, что ключевым моментом всего этого обсуждения является то, что это базовый дизайн пользовательского интерфейса, зашедший слишком далеко. Там, где модал когда-то был приемлемым средством общения, теперь мы обнаруживаем, что он стал ошибкой программирования. Пользователи понимают, что в 6 случаях из 10 информация недостаточно уместна для них. В результате они относятся ко всем модалам одинаково - усвоенная беспомощность. Если модал подходит и сообщает мне, что произошла ошибка приложения X, и все, что я могу нажать, это «ОК» - даже когда я не думаю, что это «ОК», я изучаю определенное поведение. Я связываю модалы с мыслью, что я, вероятно, не могу с ними ничего поделать, но если я нажму ОК / Да, то смогу вернуться к тому, что мне нужно.

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

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

10
ответ дан Peter Mortensen 1 July 2018 в 09:19
поделиться

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

Во-вторых, использование глаголов на кнопках диалогового окна дает пользователям представление о том, что они говорят системе, даже если они не читают текст диалога.

И наконец, если вы заинтересованы в изучении совершенно другой парадигмы уведомлений, ознакомьтесь с информационной панелью или панелью уведомлений, реализованной в Firefox и Internet Explorer. StackOverflow использует механизм того же типа для уведомления пользователей, когда они получают новый значок.

Информационная панель не навязчива и остается в верхней части экрана, ожидая внимания пользователя. Я думаю, что это отличная метафора дизайна.

Вот несколько учебных пособий по реализации:

Здесь Это руководство Microsoft по дизайну диалогов , оно также касается концепции информационной панели.

20
ответ дан Eric Schoonover 1 July 2018 в 09:19
поделиться

Пара предложений

  1. Используйте коробки только в случае крайней необходимости.
  2. Всегда устанавливайте опцию по умолчанию на наименее опасную опцию
10
ответ дан stimms 1 July 2018 в 09:19
поделиться

Сразу вспоминается книга Стива Круга «Не заставляй меня думать» .

При проектировании диалоговых окон, сообщений о состоянии, возвращаемых пользователю и т. Д., Хорошо использовать иконографию и цветовые подсказки относительно того, что на самом деле говорят слова.

Поэтому выделите сообщения об ошибках красным цветом, предупреждения желтым и т. Д.

12
ответ дан ryw 1 July 2018 в 09:19
поделиться

«Гуманный интерфейс» Джефа Раскина стоит прочитать. Диалоговое окно - последнее средство и признак плохого дизайна. Большинство из них не нужны, и, как вы обнаружили, все игнорируются пользователями.

Почему существует диалоговое окно? Решите эту проблему - не просите пользователей подтвердить операцию, вместо этого упростите ее отмену. Не открывайте диалоговое окно с сообщением об ошибке - в любом случае сделайте восстановление, которое вы собираетесь сделать (или все, что возможно). Определенно не показывайте диалоговые окна, которые имеют только один результат (только «ОК» - это дьявол), представьте информацию в приложении ненавязчиво.

11
ответ дан LindaCamillo 1 July 2018 в 09:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: