суббота, 17 июля 2010 г.

Апплет Дата/Время не является календарём

Это перевод The Date/Time control panel is not a calendar. Автор: Реймонд Чен.

Хотя многие люди используют апплет Дата/Время Панели управления как календарик, перелистывая страницы с месяцами - это не то, для чего он предназначается. Фактически, если вы когда-либо использовали его подобным образом, вы могли создать хаос на своей машине!

Апплет Дата/Время в своей оригинальной инкарнации в Windows 95 изменял вашу дату и время. Если вы перелистывали вкладку на следующий месяц, чтобы посмотреть, не приходится ли ваш день рождения на выходной, вы меняли этим время системных часов на месяц вперёд. Если вы нажимали "Отмена", то время возвращалось к исходному, на месяц назад.

Другими словами:
  • Первого Апреля вы открыли апплет Дата/Время.
  • Вы меняете месяц на май. Апплет Дата/Время меняет время на вашей машине на первое мая. Если у вас работает какой-то планировщик встреч, то сработают все напоминания за апрель месяц (к примеру, сработает ваш сигнал об оплате налогов от 15-го апреля). Вас раздражают все эти всплывающие напоминания и вы отменяете их все.
  • Вы не хотите менять время, поэтому вы закрываете диалог кнопкой Отмена.
  • Апплет Дата/Время меняет время на первое апреля.
  • 15-го апреля напоминание об уплате налогов не сработает, потому что вы отменили его, помните?
Другими словами, апплет Дата/Время не был спроектирован для того, чтобы вы листали календарь. Он был создан для изменения даты и времени.

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

Вынужденно признавая тенденции людей, в Windows 2000 апплет Дата/Время был переписан, так что он не меняет дату и время, пока вы не закроете его по подтверждающей кнопке.

Aaron Margosis показывает, как вы можете дать пользователю разрешения на изменения системных даты и времени, не делая их администраторами.

Прим.пер.: в Windows Vista и выше календарь и функция смены даты/времени разделены. Для изменения даты и времени надо нажать отдельную кнопку. При этом у вас будет запрошен пароль администратора (если только вы не меняете часовой пояс).

Читать далее: Почему апплет дата/время применял изменения немедленно?

3 комментария:

  1. И это было ничем не оправдываемое возмутительное поведение. Т.к. оно нарушало принятые в Windows правила UI. О том, что изменения вступают в силу или по кнопке "Применить" или по кнопке "OK".

    Хотя я удивлён, что они не следую своей традиции не сохранили оригинальное поведение в целях обратной совместимости. :)

    ОтветитьУдалить
  2. Окей, как насчёт диалога свойств мыши? Там тоже всё должно ждать нажатия кнопки Ok?

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

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

    А guideline-ы вы, кажется, сами не читали. Ибо там чёрным по белому сказано, что Apply - это save без закрытия окна. Нигде нет указаний, как должно вести себя окно до нажатия на Apply. И каждое окно реализует это по-своему. Да, большая часть - откладыванием изменений. Но некоторые - немедленным показом. И обычно это работает хорошо.

    Но вот выбор второго варианта поведения для диалога времени был крайне неудачным решением. Об этом и говорит пост.

    Интересно также посмотреть комментарии к оригинальному посту и что пользователи предлагают сделать. Интересно потому, что эти предложения оказались реализованными в следующей версии Windows:
    - Приложение Календарь (теперь это то, что показывается в трее, а не апплет даты/времени).
    - Смена часового пояса отдельно от смены времени (первое - свободная операция, второе - только для админов).
    - Трей не должен вызывать адмнистраторский апплет из панели управления.

    ОтветитьУдалить
  3. Краткий пересказ истории:

    1. Дизайнеры Windows 95 спроектировали часы так, что они меняли системное время.

    2. Пользователи не осознавали этот дизайн и назначение часов (конечно же это означает, что часы не были спроектированы правильно с пользовательской точки зрения!)

    3. Отзывы от использования указали, что пользователи используют часы не так, как это ожидалось.

    4. Наконец, дизайн часов был изменён, чтобы соответствовать ожиданиям пользователей.

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

    ОтветитьУдалить

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

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

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

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

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