PDA

Просмотр полной версии : Всем програмистам: распространенная ошибка



Reader5
04.08.2008, 10:06
Совет ВСЕМ ПРОГРАМИСТАМ: старайтесь при создании программ делать как можно меньше выскакивающих окошек, на которые пользователь должен нажимать. Если хорошо подумать, то большая часть этих окошек-объявлений либо вообще не нужны, либо они носят чисто информационный характер, которые пользователь должен прочитать, но не обязательно нажимать OK, после чего они сами должны исчезнуть.

Например в программе PROMT вводишь текст для перевода, а там выскакивает глупая табличка с идиотским вопросом: перевести заново текст? - и ждет нажатия OK... Разве непонятно, что если пользователь ввел текст и нажал кнопку перевести, то текст нужно переводить, зачем нужны еще глупые вопросы? Вот и матерят все идиота-програмиста, создавшего глупую программу.

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

Хыиуду
04.08.2008, 11:02
Скажите, а если пользователь увидел где-нибудь на форуме пост "Набери format c: в командной строке", его тоже не надо спрашивать, действительно ли он желает угробить систему, или над ним кто-то постебался?

Duncon
04.08.2008, 11:58
Насколько помню в промте можно настроить чтоб окошко не вылезало с запросом

Reader5
04.08.2008, 13:30
Зато в других програмах эти окошки не настраиваются. Даже в Интернет ехплорере часто выскакивают окошки с сообщениями, которые требуют нажатия ОК по пустяковым причинам, являясь чисто информационными сообщениями. т.е. ничего не изменится, нажмет пользователь ОК или нет, зато окошко продолжает висеть.

Убедительная просьба всем програмистам 7 раз подумать, действительно ли требуется чтобы пользователь нажал ОК, прежде чем делать такие окошки.

Миллионы людей на планете тратят значительную часть своей жизни на поиск на экране и нажимание бессмысленных "ОК"


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

Serge_Bliznykov
04.08.2008, 15:38
Reader5, категорически с Вами не согласен!
Как показывает опыт, даже окошки, на которых надо нажимать OK не заставляют пользователя читать, что же собственно программа хотела сказать! Хоть пиши текст и заставляй пользователя по русски ( буквочками) писать - "я понял смысл предупреждения." :-)
например, в том же промте, если вы корректировали результат перевода (очень долго и напряжённо, а потом одним нажатием без вопросов потеряете откорректированное, Вы вспомните создателей парой-другой очень неласковых слов!

Всё выскзанное прошу рассматривать как ИМХО, со всеми вытекающими последствиями...

Reader5
05.08.2008, 02:01
[b] Как показывает опыт, даже окошки, на которых надо нажимать OK не заставляют пользователя читать, что же собственно программа хотела сказать! Хоть пиши текст и заставляй пользователя по русски
А кто кого должен держать под каблуком - пользователь программу или программа - пользователя? Вы забыли золотое правило бизнеса - КЛИЕНТ (ПОКУПАТЕЛЬ) ВСЕГДА ПРАВ. Диктовать должен пользователь, а не программа. Была бы это программа управляющая пуском баллистических ядерных ракет, другое дело, а это же какая-то паршивая програмка перевода, браузер или что-то похожее, с чего вдруг вы вообразили что такие программы должны что-то заставлять пользователя? Такие агресивные программы заканчивают свою жизнь в цвете лет в мусорном ящике, и очень быстро. :)

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

Начнем с того, что фактически нужны только те окошки, где нужно ответить да или нет, а если только ОК, то можно обойтись и без нажатия, окошко само должно исчезнуть.

Albor
05.08.2008, 10:50
А кто кого должен держать под каблуком - пользователь программу или программа - пользователя?
Гы, пользователь не может контролировать программу!
Всётаки программа должна контролировать пользователя:). Один пользоатель от другого может сильно отличаться. Как Вам, такой пример: вы, как пользователь, пытаетесь выполнить недопустимую операцию (пусть будет деление на 0), что должен предпринять программист? 1- проигнорировать ваши действия, но тогда подключится операционная система и всё равно вы получите окно ошибки с одной кнопкой, после чего, программа прекратит работу; 2- перехватить эту ошибку и, зная капризы пользователя на счёт окон с одной кнопкой, по-английски, не прощаясь, закрыть программу или, скажем, подставить вместо 0 чего н ибудь другое и вы получите неверный результат, но знать об этом ничего не будете; 3- указать пользователю на место ошибки любым способом: окном ошибки или как в калькуляторе Windows (одинаково удобно для пользователя) и корректно продолжить работу.

Хыиуду
05.08.2008, 14:41
А кто кого должен держать под каблуком - пользователь программу или программа - пользователя? Вы забыли золотое правило бизнеса - КЛИЕНТ (ПОКУПАТЕЛЬ) ВСЕГДА ПРАВ. Диктовать должен пользователь, а не программа.
Это будет работать тогда, когда программные продукты начнут писаться согласно инженерному подходу, а не вопреки ему. Я давно убедился: чем меньше клиенту позволять, тем лучше программа. Самые надежные программы - это те, которые не имеют интерфейса и не позволяют пользователю совершить какую-нибудь глупость.
По поводу "Пусть окошко повисит и исчезнет" - 99% программистов подобные окошки делают стандартными средствами, которые запрограммировали уже сто лет как. И в этих стандартных средствах обычно не предусмотрен функционал "Исчезнуть через две секунды".
Представьте, что вы прожигаете ДВД-диск. Отвернулись вы на секунду от экрана чаю попить, а он вам на секунду вывел сообщение: "Запись диска произведена с ошибками, дальнейшее использование диска невозможно". Сообщение исчезло, вы не успели его прочитать, взяли диск и пошли к клиенту. Результат?

Хыиуду
05.08.2008, 14:44
Миллионы людей на планете тратят значительную часть своей жизни на поиск на экране и нажимание бессмысленных "ОК"

Уверяю вас, на пасьянсы тратится намного больше времени

atavin-ta
03.02.2009, 12:20
Reader5, категорически с Вами не согласен!
Как показывает опыт, даже окошки, на которых надо нажимать OK не заставляют пользователя читать, что же собственно программа хотела сказать! Хоть пиши текст и заставляй пользователя по русски ( буквочками) писать - "я понял смысл предупреждения." :-)
например, в том же промте, если вы корректировали результат перевода (очень долго и напряжённо, а потом одним нажатием без вопросов потеряете откорректированное, Вы вспомните создателей парой-другой очень неласковых слов!

Всё выскзанное прошу рассматривать как ИМХО, со всеми вытекающими последствиями...
Лучше пусть перепишет его. Причём, путь оно не выделяется. Только это уже паранойя. Так что если читать не хочет, пусть не читает. Но время на прочтение всем требуется разное. Поэтому ошибкой как раз является исчезновение окна без нажатия на кнопку. Пусть уж пользователь имеет возможность спокойно всё прочитать! Но само окно должно выскивать только в том случае, если пользватель не знакомый с конкретной программой настолько, чтобы предсказать окно и сообщение (дословно) не имеет возможности продолжать работу в программе в точном соотвествии с тем, как это монимает её автор до того, как прочитает и осмыслит собщение. А действительно читать не обязательно - вдруг пользователь очень умный и сам понимает смысл дейсвий программы и причину сообщения? В качестве примера такого юзверя можно назвать друго програмера, пишущего что-то сопоставимое.

atavin-ta
09.02.2009, 13:22
Самые надежные программы - это те, которые не имеют интерфейса и не позволяют пользователю совершить какую-нибудь глупость. При появлении любой защиты от дурка сразу появлется дурак нового типа, который и без междухари сморозит такую глупость, что тебе и не снилась. А потом еще на тебя будет жаловаться - типа ты такой глупый, что твои проги работают неправильно. Единственная страховка - предусмотреть хорошую междуморду и позволить юзверю ВСЕ.

Хыиуду
10.02.2009, 15:07
Ага, и в мануал добавлять строку: "Все, что здесь не описано - недокументированные возможности. Если что-то не работает - сами дураки".

atavin-ta
12.02.2009, 04:12
Ага, и в мануал добавлять строку: "Все, что здесь не описано - недокументированные возможности. Если что-то не работает - сами дураки".
Это всегда подразумевается, но зачем так писать?