Срезанные углы

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

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

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

Сделайте, пожалуйста, погромче музыку. Именно здесь, собственно, и произошло срезание вышеупомянутого угла. Выплескивание, такскыть, младенца вместе с водой. Потому что существует в Win32 SDK развратная функция MessageBox, которая умеет вываливать модальное диалоговое окошко с тупым вопросом со стандартными кнопками. Порочность заключается в том, что её очень просто вызвать, до такой степени просто, что многие хорошие люди-программисты предпочитают сделать это, вместо того, чтобы воспользоваться головным мозгом. Вообще само появление этого окошка сигнализирует о серьезных проблемах в дизайне UI, настоящее решение которых требует недюжиных (как правило) усилий. В этом смысле и картинка слева не блещет особенно изящными решениями, стружка с угла там снята изрядная.

Справедливости ради надо заметить, что люди знают о проблеме. Насколько мне известно, образцовый в смысле интерфейса Mac OS не особенно жалует модальные диалоги как таковые. А web-приложения и вовсе вынуждены учитывать возможность открытия нескольких окон в одном контексте (Данил, тебе пламенный привет!), какая уж тут, к чертям, модальность, быть бы живу.

На этой мажорной ноте и завершу, пожалуй, скандируя хором «MessageBox на мыло!».

комментариев 13

  1. Вообще само появление этого окошка сигнализирует о серьезных проблемах в дизайне UI

    Аж задёргался: немного слишком общо звучит. О проблемах в дизайне UI сигнализируют разные там “средние количества щелчков мыши”, а не вызовы некой апишной функции.

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

    • Самый банальный пример: удаление элемента из списка. Вместо тупого вопроса во всплывающем окошке “А вы точно хотите удалить эту штуку и распрощаться с ней навсегда? Имейте в виду, мы снимаем с себя всякую ответственность! Удалил — сам дурак.” гораздо тактичнее сделать возможность отмены удаления. Разумеется, это потребует существенно больших усилий, но удобство юзверя, на мой взгляд, повысится нелинейно.

  2. Истину глаголешь.

    Забавно у нас в VisualSVN пока нету ни одного MessageBox с вопросом. Хотя соблазнов было много. Но в результате обсуждения мы понимали, что это не нужно.

    • Да ваще его надо запретить. Оставить, скажем, только в DEBUG-режиме. А еще, раз уж пошла такая пьянка, отменить модальные диалоги выше первого уровня, чтоб два раза не вставать 🙂

      • А еще, раз уж пошла такая пьянка, отменить модальные диалоги выше первого уровня, чтоб два раза не вставать 🙂
        Угу, опять же смотри Mac OS. И в VisualSVN мы тоже выкрутились 🙂

        • Сильные духом не выбирают легких путей 🙂

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

          • Ага, в маке есть неплохие фишки. Я только что понял почему у них такие красивые иконки — у них маска 8 битная, поэтому очень хорошо ложатся на любой фон. Все гениальное просто.

Добавить комментарий