пятница, 7 мая 2010 г.

Потому что раньше мы доверяли программистам, часть 2

Это перевод Because programmers were trusted to do the right thing, part 2. Автор: Реймонд Чен.

Недавно я кратко обсудил философию, стоящую за дизайном API, которая доминировала в былые времена. Одним из мест, где она себя проявила, было управление питанием (power management).

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

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

Как указал Huat Chye Lim в блоге команды Windows Mobile PC, результатом такого подхода стало то, что все подряд стали считать себя одним из этих "исключительных" случаев, которым позволено молчаливо отменять сон без подтверждения/уведомления пользователя. К сожалению, для пользователей результат был плачевен: команда засыпания часто просто не работала. Мы доверили программистам выполнение правильных вещей, но они злоупотребили этим доверием.

Те, кто были на PDC 2005 и посещали сессию FUN319 Windows Vista: Developing Power-Aware Applications, узнали, что Windows Vista решает этот вопрос, просто больше не доверяя программам. Программы больше не смогут отменить засыпание или даже задержать его на длительное время. Вот что происходит, когда вы не играете честно: человек с мячом просто не будет передавать его вам.

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

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

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

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

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

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

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