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

Для любителей обсудить что круче Linux или Win32, Java или C#.

Модератор: Duncon

Reader5
Сообщения: 3
Зарегистрирован: 04 авг 2008, 09:49

04 авг 2008, 10:06

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

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

В других программах тоже куча выскакивающих окошек, носящих чисто информационный характер, но которые все ждут пока пользователь нажмет OK. Старайтесь чтобы такие таблички-объявления сами исчезали, через несколько секунд, если Вы не хотите чтобы пользователи вас материли, это портит имидж даже хороших программ...
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

04 авг 2008, 11:02

Скажите, а если пользователь увидел где-нибудь на форуме пост "Набери format c: в командной строке", его тоже не надо спрашивать, действительно ли он желает угробить систему, или над ним кто-то постебался?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

04 авг 2008, 11:58

Насколько помню в промте можно настроить чтоб окошко не вылезало с запросом
Reader5
Сообщения: 3
Зарегистрирован: 04 авг 2008, 09:49

04 авг 2008, 13:30

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

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

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


Лучше всего чтобы они высвечивались, и через пару секунд сами исчезали. Этим вы значительно рационализируете и улучшаете програмный продукт.
Serge_Bliznykov
Сообщения: 366
Зарегистрирован: 31 авг 2007, 03:06

04 авг 2008, 15:38

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

Всё выскзанное прошу рассматривать как ИМХО, со всеми вытекающими последствиями...
Reader5
Сообщения: 3
Зарегистрирован: 04 авг 2008, 09:49

05 авг 2008, 02:01

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

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

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

Начнем с того, что фактически нужны только те окошки, где нужно ответить да или нет, а если только ОК, то можно обойтись и без нажатия, окошко само должно исчезнуть.
Albor
Сообщения: 482
Зарегистрирован: 06 сен 2004, 13:34
Откуда: Днепропетровск

05 авг 2008, 10:50

Reader5 писал(а):А кто кого должен держать под каблуком - пользователь программу или программа - пользователя?

Гы, пользователь не может контролировать программу!
Всётаки программа должна контролировать пользователя :) . Один пользоатель от другого может сильно отличаться. Как Вам, такой пример: вы, как пользователь, пытаетесь выполнить недопустимую операцию (пусть будет деление на 0), что должен предпринять программист? 1- проигнорировать ваши действия, но тогда подключится операционная система и всё равно вы получите окно ошибки с одной кнопкой, после чего, программа прекратит работу; 2- перехватить эту ошибку и, зная капризы пользователя на счёт окон с одной кнопкой, по-английски, не прощаясь, закрыть программу или, скажем, подставить вместо 0 чего н ибудь другое и вы получите неверный результат, но знать об этом ничего не будете; 3- указать пользователю на место ошибки любым способом: окном ошибки или как в калькуляторе Windows (одинаково удобно для пользователя) и корректно продолжить работу.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

05 авг 2008, 14:41

Reader5 писал(а):А кто кого должен держать под каблуком - пользователь программу или программа - пользователя? Вы забыли золотое правило бизнеса - КЛИЕНТ (ПОКУПАТЕЛЬ) ВСЕГДА ПРАВ. Диктовать должен пользователь, а не программа.

Это будет работать тогда, когда программные продукты начнут писаться согласно инженерному подходу, а не вопреки ему. Я давно убедился: чем меньше клиенту позволять, тем лучше программа. Самые надежные программы - это те, которые не имеют интерфейса и не позволяют пользователю совершить какую-нибудь глупость.
По поводу "Пусть окошко повисит и исчезнет" - 99% программистов подобные окошки делают стандартными средствами, которые запрограммировали уже сто лет как. И в этих стандартных средствах обычно не предусмотрен функционал "Исчезнуть через две секунды".
Представьте, что вы прожигаете ДВД-диск. Отвернулись вы на секунду от экрана чаю попить, а он вам на секунду вывел сообщение: "Запись диска произведена с ошибками, дальнейшее использование диска невозможно". Сообщение исчезло, вы не успели его прочитать, взяли диск и пошли к клиенту. Результат?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

05 авг 2008, 14:44

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

Уверяю вас, на пасьянсы тратится намного больше времени
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
atavin-ta
Сообщения: 572
Зарегистрирован: 30 янв 2009, 06:38

03 фев 2009, 12:20

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

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