Пользовательский интерфейс. Обмен опытом.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение AbakAngelSoft » 26.01.2010 18:50:38

У меня нет...
У WAYFARER видимо тоже...
Хотя может это только под линукс...

Добавлено спустя 1 минуту 52 секунды:
точно под windows 7 модальное! зачем интересно? пользователи windows более приучены к модальности?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение dunin » 26.01.2010 19:35:54

Ну давайте с модальными окнами как-то подытожим...

Мое мнение - модальные окна нужны там где они нужны. Это что-то типа окон настройки приложения - вызвал один раз - настроил - закрыл - забыл. Настройка - операция какбэ серьезная - не за чем, не закончив, в другие окна перепрыгивать. Диалоги открытия/сохранения файлов: должны окна быть модальными? Да. Вызвал диалог на сохранение - изволь завершить операцию. Не за чем спрыгивать на другое окно и потом поминать не сохраненную как надо информацию. Вывод важных сообщений - однозначно ДА.

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

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

Вот как-то так мне вся эта ситуация с модальными формами видится...
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение AbakAngelSoft » 26.01.2010 20:07:49

dunin писал(а):Это что-то типа окон настройки приложения - вызвал один раз - настроил - закрыл - забыл.

Нет и еще раз нет. Настройка должна быть впаяна в интерфейс что-бы сразу видеть что меняется, имелась возможность не закончив с настройкой продолжать работу с программой.
Сидишь, значит, вдумчиво, серьезно настраиваешь программу - вбегает начальник и срочно требует распечатать квартальный отчет из этой программы... закрыли окно настроек и через пять минут начинаем все заново...
dunin писал(а):Диалоги открытия/сохранения файлов

Я бы вообще от них отказался - где-то читал про идеологию разрабатываемой среды для компьютеров (ZoomWorld по моему, но могу ошибаться) там вообще нет такого понятия как открыть/закрыть файл - мне очень понравилось. Работать намного проще когда нет операций не относящихся к делу.
dunin писал(а):Вывод важных сообщений - однозначно ДА.

Сообщения, даже важные, никто не читает. Пользователь на автомате старается закрыть выскочившее окошко, даже если там большими красными мигающими буквами написано, что его действия приведут к взрыву на АЭС.
Climber уже писал что диалог категорически не приветсвуется. Диалог мешает пользователю работать и зарабатывать деньги от основной деятельности. Большинство пользователей программных продуктов не получают зарплату за реагирование на "важные" сообщения программы.

Добавлено спустя 3 минуты 29 секунд:
Простой пример:
работает Rhythmbox, проигрывает музыку, вдруг, посреди рабочего дня, воспроизведение останавливается и вылетает окно с важным сообщением "отсутсвует кодек для воспроизведения композиции". Зачем мне, спрашивается это окно?
Если Rhythmbox знает где найти этот кодек пускай найдет и скачает или не качает если мне для него интернета жалко. Жалко или не жалко я в свободное время выставлю в его настройках или в файрволе. Иначе пусть пропустит композицию и играет дальше не отвлекая меня от работы. Если меня удивит что моя любимая композиция давно не проигрывалась я сам обращю на него внимание и тогда я хотел бы увидеть в статусной строке или в списке ошибок что такой-то файл не воспроизводится по таким-то причинам.
Наибольшее раздражение это окно вызвало тем что его появление совпало с нажатием "Ctrl+F9". Можете представить себе мою реакцию? Какой кодек, какая композиция, что вообще происходит с моей компилируемой программой?
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение dunin » 26.01.2010 20:30:15

AbakAngelSoft писал(а):Настройка должна быть впаяна в интерфейс что-бы сразу видеть что меняется, имелась возможность не закончив с настройкой продолжать работу с программой.
Сидишь, значит, вдумчиво, серьезно настраиваешь программу...

Что это за программа такая, которую надо "вдумчиво настраивать"?
Прописал необходимые параметры (только те, которые программа сама не может разобрать) - закрыл - забыл. Хотя... если какая-то жуткая машина по обработке того, чего там Кудрин в правительстве и Госкомстат напридумывал - возможно.

AbakAngelSoft писал(а):Я бы вообще от них отказался - где-то читал про идеологию разрабатываемой среды для компьютеров (ZoomWorld по моему, но могу ошибаться) там вообще нет такого понятия как открыть/закрыть файл - мне очень понравилось. Работать намного проще когда нет операций не относящихся к делу.

Вот именно, что "бы"... Минимизировать вызов диалога можно составляя список последних открытых файлов (на панели, в меню - не важно). Драгэнддроп опять же... А совсем отказаться - думаю не реально.

AbakAngelSoft писал(а):Сообщения, даже важные, никто не читает.
...
работает Rhythmbox, проигрывает музыку, вдруг, посреди рабочего дня, воспроизведение останавливается и вылетает окно с важным сообщением "отсутсвует кодек для воспроизведения композиции". Зачем мне, спрашивается это окно?
Если Rhythmbox...

Про то, что пользователи не читают сообщения - соглашусь. И сообщение о отсутствии кодека нафиг не надо. А вот сообщения "программа выполнила недопустимую операцию такую-то: продолжить / закрыть" меня лично очень радуют. Куда интересней, чем тупо схлопывающийся процесс.
Короче, ответ на вопрос в другом вопросе: "что считать важными сообщениями"... :)
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение скалогрыз » 26.01.2010 20:36:58

dunin писал(а):
AbakAngelSoft писал(а):работает Rhythmbox, проигрывает музыку, вдруг, посреди рабочего дня, воспроизведение останавливается и вылетает окно с важным сообщением "отсутсвует кодек для воспроизведения композиции". Зачем мне, спрашивается это окно?

Про то, что пользователи не читают сообщения - соглашусь. И сообщение о отсутствии кодека нафиг не надо. А вот сообщения "программа выполнила недопустимую операцию такую-то: продолжить / закрыть" меня лично очень радуют. Куда интересней, чем тупо схлопывающийся процесс.


Из своего опыта скажу, что при возникновении ошибки, информация должна быть как можно более детальная, конечно если программа не ведёт какого-нибудь хитрого лога.
Для пользователя эта информация ничего полезного скорее всего не даст. Но зато разработчику программы (будет значительно легче устранить ошибку), если пользователь сообщит ему содержание ошибки (например скриншотом), а не тупо скажет: "она закрылась и всё".
Даже у FPC компилятора у каждой Internal Error есть свой код, от которого можно искать причину и способы устранения ошибки.

Очень хорошо, если критические сообщения содержат в себе ReadOnly Memo или StaticText, чтобы текствое содержимое диалога можно было скопировать, и при необходимости отправить разработчику... или даже тупо зарядить в Google (может кто уже проблему решил).
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение dunin » 26.01.2010 20:52:44

скалогрыз писал(а):...
Из своего опыта скажу, что при возникновении ошибки, информация должна быть как можно более детальная, конечно если программа не ведёт какого-нибудь хитрого лога.
Для пользователя эта информация ничего полезного скорее всего не даст. Но зато разработчику программы (будет значительно легче устранить ошибку), если пользователь сообщит ему содержание ошибки (например скриншотом), а не тупо скажет: "она закрылась и всё"...

скалогрыз, респект! *смайлик пиво*

Человека с опытом сразу видно. :)
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение FedeX » 26.01.2010 21:31:59

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

У нас в предыдущем проекте было такое окно, не только с мемо, но и с вбитым в дополнительном эдите почтовым адресом техподдержки и кнопкой отправить :lol: но оно не было модальным, и по возможности программа пыталась восстановить свою работу после возникновения эксцепшена (перезапустить поток, переподключиться к серверу).
..ах да в нём ещё была галочка "приаттачить скриншот". Такое окно всплывало по событию Application.OnException (и в некоторых других случаях), а также по личному желанию пользователя (было, кажеться сочетание клавиш Ctrl+F12).
Аватара пользователя
FedeX
постоялец
 
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение скалогрыз » 27.01.2010 00:26:31

FedeX писал(а):У нас в предыдущем проекте было такое окно, не только с мемо, но и ...

было бы замечательно, такой отчёт об ошибке, оформить в виде компонента (кросс-платформенного).

Т.е. начал разработчик писать новую прогу, выложил компонент на форму и всё! Остальное - автоматически делается, без его участия.

Есть желание (возможность) кодом поделиться?
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение Climber » 27.01.2010 09:23:41

AbakAngelSoft писал(а):
dunin писал(а):Вывод важных сообщений - однозначно ДА.

Сообщения, даже важные, никто не читает.
Тут надо понимать, что такое "действительно важные сообщения". В большинстве случаев мнения программистов и пользователей расходятся.
FedeX писал(а):У нас в предыдущем проекте было такое окно, не только с мемо, но и с вбитым в дополнительном эдите почтовым адресом техподдержки и кнопкой отправить

+1024!
Я примерно такую же штуку сделал, только попроще. Для всех исключений, которые я мог предвидеть на этапе разработки, я сразу же писал обработку для попытки вернуть программу на путь истинный. Во всех остальных потенциально опасных местах расставил блоки try ... except, которые сообщают пользователю дословно: "Произошла ошибка, непредусмотренная разработчиком. Сделайте скриншот окна и вышлите по адресу ..." В само сообщение добавляется Exception.ClassName и Exception.Message, благодаря чему в 99% случаев я получаю достаточно информации для исправления бага. Никаких других сообщений моя программа сама не выводит.

По поводу диалогов сохранения: А. Купер в книге "Об интерфейсе" приводит практически готовое решение, как работать с сохранением файлов. Странно, что эту концепцию никто не внедрил до сих пор - она просто революционная! Найдите книгу и почитайте - не пожалеете. Еще почитайте главу с названием "Оптимизация налогообложения".
Climber
постоялец
 
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение dunin » 27.01.2010 10:32:31

Climber писал(а):По поводу диалогов сохранения: А. Купер в книге "Об интерфейсе" приводит практически готовое решение, как работать с сохранением файлов. Странно, что эту концепцию никто не внедрил до сих пор - она просто революционная!
...

А в двух словах что он там предлагает?
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение AbakAngelSoft » 27.01.2010 11:47:00

dunin писал(а):Что это за программа такая, которую надо "вдумчиво настраивать"?

Настройка на использование прокси-сервера, человеком представления не имеющим о том, что такое прокси сервер.
dunin писал(а):А совсем отказаться - думаю не реально.

Вполне реально - только мы еще не научились и продолжаем клепать "танцующих медведей", а в свою защиту заявляем, что это, якобы, не возможно.
У многих в конторах сидит проектировщик взаимодействия? Который и дизайнер и психолог и эргономист и проектировщик?
dunin писал(а):А вот сообщения "программа выполнила недопустимую операцию такую-то: продолжить / закрыть" меня лично очень радуют.

А меня совсем не радуют подобные сообщения! Сижу рисую UML диаграмку в воробушке уже третий час, вдруг выходит аналогичное сообщение. На предложение продолжить он все равно схлопнулся без сохранения изменений :(
скалогрыз писал(а):Для пользователя эта информация ничего полезного скорее всего не даст.

Тогда зачем ее выводить пользователю?
скалогрыз писал(а):Очень хорошо, если критические сообщения содержат в себе ReadOnly Memo или StaticText

+1
FedeX писал(а):У нас в предыдущем проекте было такое окно, не только с мемо, но и с вбитым в дополнительном эдите почтовым адресом техподдержки и кнопкой отправить :lol: но оно не было модальным, и по возможности программа пыталась восстановить свою работу после возникновения эксцепшена (перезапустить поток, переподключиться к серверу).
..ах да в нём ещё была галочка "приаттачить скриншот". Такое окно всплывало по событию Application.OnException (и в некоторых других случаях), а также по личному желанию пользователя (было, кажеться сочетание клавиш Ctrl+F12).

+2
Climber писал(а):Тут надо понимать, что такое "действительно важные сообщения". В большинстве случаев мнения программистов и пользователей расходятся.

+1
Climber писал(а):Для всех исключений, которые я мог предвидеть на этапе разработки, я сразу же писал обработку для попытки вернуть программу на путь истинный. Во всех остальных потенциально опасных местах расставил блоки try ... except, которые сообщают пользователю

+1
Climber писал(а):"Произошла ошибка, непредусмотренная разработчиком. Сделайте скриншот окна и вышлите по адресу ..."

А твоя программа не в состоянии самостоятельно сделать скриншот собственного окна и выслать разработчику, не напрягая пользователя ненужными действиями???
Вообще боюсь быть забросанным камнями, но есть чему поучиться у MicroSoft. Они серьезно облегчили себе работу над багами возникающими у конечного пользователя создав знаменитый "отчет об ошибках". Только в идеале он вообще не должен показваться на экране, а молча отправлять отчет (если конечно я разрешил в настройках это делать), и так-же молча после исправления бага разработчиком скачивать патч и устанавливать его в фоне. Пользователь будет намного благосклонее если у него возникнет ощущение, что проблемы решились сами собой.
dunin писал(а):А в двух словах что он там предлагает?

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

Добавлено спустя 49 секунд:
Прошу прощения за длинный пост, и цитирование.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение amateur » 27.01.2010 12:23:48

"туго" работаю и с мелкософтым и с опен. Наезд бессмыслен. В опене выдает ошибку и исправляй скоко влезет (да и в мелкософте аналогично) проблему с диалоговыми окнами не вижу.
Например, рассмотрим Excel. Я ввожу формулу длинной 300 - 400 знаков с кучей скобок и функций. Жму Enter. Excel выдает сообщение: формула неправильная, напишите лучше так – и далее следует вариант от Excel. И три кнопки – принять предложенную формулу, отредактировать свою и посмотреть справку. Вопрос на засыпку: сколько здесь ошибок? Ой, много…
Вы сами ответили: отредактировать свою. В чем трабла???

Хотя идея, возможно, и хороша. Продайте идею к мелким или в опен :)))

В мозиле, кстати окно настройки (в винде) оффигезно модальное (версия 3.6). А вот в хроме :)))). Настроек фи. зато , мдаа.

Кажись тока программеру решать: нужно или нет делать окно диалогом (а как он это решит - зависит от "кривизны" рук).


Модальные окна нужны. Но есть еще вещичка под именем "диалог" . Интересно: зачем оно нужно??? Может для диалога с пользователем???
Диалога быть не должно. Пользователь должен вести монолог.
Говорить самому с собой, ГЫ - прикольно...

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

Кстати, програмист - пользователь :))) если вы забыли. А пользователи, кажись, имеют право голоса.
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение скалогрыз » 27.01.2010 12:43:23

AbakAngelSoft писал(а):
скалогрыз писал(а):Для пользователя эта информация ничего полезного скорее всего не даст.

Тогда зачем ее выводить пользователю?


Чтобы пользователь мог эту информацию передать разработчику для исправления ошибки.
Если этой информации диалог между пользователем и разработчиком будет такой:
П: у меня программа не работает
Р: а что вы делаете?
П: запускаю программу, и она выдаёт окошечко: "произошла ошибка"
Р: как интересно. у меня всё хорошо!
П: но она у меня не работает.
Р: вы неправильный пользователь!

Даже приходя к врачу, пациентов спрашивают "что и где у вас болит?". Без этой информации "изнутри" устранять ошибку очень тяжело. В случае с программой, только сама программа может полноценно описать "что и где болит"

Кроме того. Я очень не хочу считать пользователей полными идиотами! Например сообщение "Не хватает кодаков" ("У вас старые драйвера"/"Не могу найти новое OpenGL расширение"), может намекнуть продвинутому человеку (хотя таких мало) о том, что неплохо бы их (кодеки/драйвера) обновить. В итоге, решив свою проблему этот человек, может помочь 2м-3м (10ти - 1000м) других пользователей.
Что облегчает труд техподдержки. Что очень важно, когда техподдержка и разработчик это одно лицо ;)

Многие из продвинутых пользователей знают, если выпало сообщение "Немогу записать файл. Нет доступа к файлу/не могу создать файл", побегут проверять используется ли файл кем-нибудь, или не защищён ли он от записи, хватает ли прав на запись.
Зато сообщение вроде "Ошибка! Нажмите ОК", будет вызывать раздражение.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение amateur » 27.01.2010 13:03:09

кстати: хочу увидеть бабушку - которая знает и понимает как настроить прокси :)))) Ей цены нет, зачем тода админ нужен???

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

скалогрыз

Че Вы так плохо думаете о бабушках: они ведь прокси настраивают?!
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Пользовательский интерфейс. Обмен опытом.

Сообщение Padre_Mortius » 27.01.2010 13:14:07

Многие из продвинутых пользователей знают, если выпало сообщение "Немогу записать файл. Нет доступа к файлу/не могу создать файл", побегут проверять используется ли файл кем-нибудь, или не защищён ли он от записи, хватает ли прав на запись.


Это заблуждение. Убедился буквально недавно, когда в чате админов в организации возникла похожая ситуация. Причем человек проверил ПО под своей учеткой. Оказалось что все работает. Дал права пользователю для работы, но на разрешение прав на папку так и не догадался дать
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40

Рейтинг@Mail.ru