Сайт Романа ПарпалакаБлог20120201

Непослушные программы

1 февраля 2012 года, 23:11

Иногда в отношениях между людьми оказывается полезным следующий принцип: «Не делай того, о чем тебя не просили». Его нужно применять и к разработке программного обеспечения. Чтобы пояснить эту мысль, расскажу историю.

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

Как оказалось, «умный» Андроид без спросу синхронизировал контакты в телефоне и в почте. В ходе этого процесса он объединил номер телефона и e-mail в один общий контакт. При этом где-то в глубине настроек была установлена галочка «скрывать контакты gmail». Из-за нее номер телефона и пропал из списка. Если бы программное обеспечение не делало того, о чем его не просили, я бы не оказался в затруднительной ситуации.

Во-первых, я не пользуюсь адресными книгами в почте и не понимаю, зачем они нужны. Когда мне нужно написать письмо, я открываю предыдущее письмо от этого человека и нажимаю «ответить». Если это новое письмо, я стираю старую тему и пишу новую. Тем не менее, почта Гугла молчаливо создавала список контактов.

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

Безусловно, программное обеспечение должно быть самостоятельным. Не надо останавливать работу и ожидать очевидный ответ пользователя. Например, программа WinSCP выдает следующее предупреждение, когда я нажимаю кнопку «открыть терминал»:

Она сообщает, что придется открыть еще одно соединение с сервером, и спрашивает, согласен ли я. Разумеется, я согласен на всё что угодно, чтобы окно терминала наконец-то открылось.

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

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

    Оставить комментарий
Поделиться
Записи