Previous Entry Поделиться Next Entry
Размышления о псевдоразумности программ
artem_talipov

Размышления о псевдоразумности програм




Программы можно разделить на две группы:
1. очень тупые, делают только то, что ты им скажешь и не больше.
2. очень умные, делают то что ты им скажешь и ещё много чего лишнего.

Конечно бывают промежуточные, которые иногда делают милые пустячки, основываясь на странных идеях разработчиков.
Я как пользователь имею на этот счёт своё мнение.
И я как разработчик, якобы прислушиваюсь к пользователю, но всё равно, делаю программу по своему.

Данный текст предназначаеться разработчикам и впервую очередь лично мне. Устал я уже наступать на одни и те же грабли!

Вот есть две группы програм, что же правильнее всего?

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

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

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

Вот например меня просто убивает, в "звук и аудио" что в "панели управления", когда выбираешь звук стрелочками, фокус всё время прыгает на кнопку "прослушать".
И это не даёт спокойно полистать звуки.
Лучше бы они сделали автоматическое озвучивание звуков, как это сделано в soundforge.
Там, при открытии аудио файла, когда фокус оказываеться на нём, файл воспроизводиться.
Мне понятны обе задумки, но к сожалению, результат мне не нравиться в обоих случаях.

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

Когда я выбираю имя файла, то апплет "звук и аудио устройства", перемещает фокус на кнопочку "прослушать".
Очень хорошо. Я ведь спервого раза указал правильный файл.
А если я его не знаю?
Приходиться выполнять несколько лишних движений с клавиатуры, чтобы просто опуститься вниз или подняться вверх по списку.
Фокус всё время выпрыгивает из списка и его приходиться возвращать на место.
Это жутко раздражает.

Да и вот в Miranda im, тоже есть забавные моменты, но они больше умиляют.
Например если я выделю какое-нибудь полученное сообщение и скопирую его, то фокус автоматом прыгнет в поле "послать".
Крайне удобно для короткого цитирования.
А вот, вырезать фрагменты диалога, (как делал я при написании данной записи), неудобно. Раздражает, что фокус каждый раз, оказываеться не там, где я его оставил.

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

И тут же вспомнился один из случаев в моей практике. Запускаеться программа, в её окне несколько элементов. Фокус установлен совсем не там, где он должен быть.
Я как самый умный, вставляю коротенькую команду, которая перемещает фокус на нужный элемент после того, как будут выведены данные.
Далее, начинаю тестировать и ругаться. Когда я переключал вкладки, данные в панели обновлялись и фокус прыгал в неё.
Вот обычная ситуация, которую я встречал и в некоторых сторонних разработках. Перемещаюсь по списку вкладок на один пункт влево или в право, после чего вынужден возвращать фокус опять на этот список.
А проблема решалась просто. Надо было перенумеровать элементы в окне. Задать им другой tabindex. И всё сразу встало на свои места.

А ведь бывают и другие ситуации. Фокус это просто мелочь, по сравнению скажем с автоматическим запуском компакт дисков, обновлению програм, или перезагрузкой компьютера.
все эти "экспертные действия", должны быть опциональны.

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

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

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

Но то, что я написал, это ещё не придел. Есть ещё два шага к совершенству.

Выбор по умолчанию через промежуток времени.
Любимая стартовая менюшка из boot.ini.
Нужна нам первая винда ждём тридцать секунд или жмём энтер.
, нужна вторая, жмём стрелку в низ и энтер.
А ежели мы на рабочем стале нажали перезагрузку и пошли пить кофе, то загрузиться первая винда, без всяких энтеров и стрелочек.

Но мало этого, можно изменить пункты, можно задать пункт по умолчанию, можно задать время ожидания.

К этой же группе относяться и флажки вроде: "больше не показывать это окно".
Нравиться отвечать на кучу вопросов, не ставь их просто, а делай нужный выбор.
Ну, а ежели вопрос совершенно тупой и не нужный. Ну вот нету у меня прокси сервера! Ну вот я уверен, что всегда буду запускать, а не скачивать файл. И я не люблю дважды жать "выход"! Сказал "закройся", так нефиг меня переспрашивать, действительно ли я этого хочу!
И сразу же примечание! Все эти флажки должны быть обратимы. Ситуация может измениться и у меня появиться прокси сервер или мне надоест по дефолту запускать файлы, а я захочу их скачивать. Но где эти флажки? Как мне их найти?! Они должны быть близко, в настройках программы.

И последний шаг, это действительное интеллектуальное поведение. Программа может понаблюдать за человеком, узнать, что же ему нравиться, а что раздражает. Запомнить его последний выбор и предложить его по умолчанию. А ежели выбор становиться постоянным, то можно и самой что-то предпринять.

Последний шаг, крайне сложен в реализации. Хотя нет. Реализовать его не очень сложно. Сложно продумать, по каким признакам будет происходить обучение.
И опять же, эту самостоятельность, нужно иметь возможность отключить!

Выводы! Повторю:
1. программа должна делать то, что требует от неё человек.
2. все внешние автоматические действия должны быть опциональными.
3. программа может иметь экспертные свойства, только если пользователь их может включить и выключить.

?

Log in

No account? Create an account