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

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

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

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

Сообщение скалогрыз » 27.01.2010 13:19:48

Я ещё раз повторюсь. Диалоги с ошибками в ПЕРВУЮ ОЧЕРЕДЬ нужны именно разработчикам, а не пользователям.

Если есть диалог: "Произошла ошибка. Нажимте ОК". С чего начать её устранение? попросить пользователя выслать информацию о системе dxdiag?

Зато если есть диалог: "Не могу соединиться с сервером" или "Не могу записать файл". То такие сообщения укажут разработчику что ошибка, скорее всего не в программе, а в плохом окружении для программы. Меньше тратиться времени на устранение несуществующих ошибок.

Или все предпочитают, чтобы программа тупо закрывалась?

Пример с Лазарем. Отладчик. Если-что то не так, то пользователи видят легендарный "Ooops...", вместо "No debug info found!" или "Unknown GDB message, please inform the developers" или "debugger error #XXX". В частности, из-за плохой обратной информации, постоянно возникают одни и те же вопросы, которые устраняются после того как пользователь вышлет Debug Window output.

viewtopic.php?f=5&t=5296 Например, на решение этой проблемы, было потрачено 4 дня. При правильной обратной связи, возможно всего 4 минуты.
Последний раз редактировалось скалогрыз 27.01.2010 13:35:40, всего редактировалось 4 раз(а).
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48


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

Сообщение FedeX » 27.01.2010 13:35:08

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

К сожалению кодом поделиться тут не получиться, даже не потому что продукт коммерческий и мы писали что-то вроде договора о неразглашении исходников, а просто потому что использовалась Delphi6 + наши собственные компоненты-скины+сервер у нас висел в инете написанный на PHP который принимал простой HTTP запрос, типа формы (картинка была в Base64 закодирована из-за чего были проблемы с трафиком) и этот сервер уже отправлял на почту... Вот как оно выглядело:
Изображение
Но идея хорошая, может попробую сегодня что-то накидать на Lazarus. Вот только как быть с отправкой данных? Стоит-ли её непосредственно в компоненте реализовывать, и если да то как лучше? Я до этого пользовал только LNet и Synapse, но не хотелось-бы в компоненте к ним привязываться.. А писать прямо на сокетах что-то сильно муторно и как-то нелепо для такой цели. :shock: Наверно оставлю это на программиста который компонентом будет пользоваться..
Padre_Mortius
тут сложно что-то говорить однозначно, во многих случаях сообщения об ошибках всё-таки могут помочь.. по-моему надо просто смотреть по обстоятельствам.. не помню точно где, но в какой-то программе я даже видел в настройках что-то типа скроллера "уровень автоматической обработки ошибок". В одном крайнем положении программа сама пыталась принимать решения о большинстве ошибок, в другом крайнем положении постоянно спрашивала у пользователя что делать. И ещё кажеться в каком-то антивируснике тоже что-то подобное было. Например в одно время я занят важной работой и не хочу чтоб меня отвлекали, в другое время я буду рад если тот же тумббокс сам предложит мне скачать кодеки (какое счастье что мне не надо рыться в его настройках или ещё хуже в Синаприке в поиске всех необходимых кодеков.).
Аватара пользователя
FedeX
постоялец
 
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

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

Сообщение dunin » 27.01.2010 13:46:40

AbakAngelSoft писал(а):
dunin писал(а):А в двух словах что он там предлагает?

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

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

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

Сообщение AbakAngelSoft » 27.01.2010 14:07:46

скалогрыз писал(а):Чтобы пользователь мог эту информацию передать разработчику для исправления ошибки.

Повторюсь, если не заметили предыдущий пост. Зачем заставлять пользователя передавать это разработчику? Программа может, и должна, делать это самостоятельно!
Мой вариант диалога с пользователем:
П: У меня программа не работает.
Р: Мы уже работаем над исправлением этой ошибки, завтра к обеду все будет работать хорошо.

или подробнее
П: У меня программа не работает.
Р: Мы не получали сообщение, вы не могли-бы открыть вкладку настройки.
П: угу
Р: У Вас установлена галочка "автоматически отправлять отчет об ошибках"?
П: Нет, я ее снял когда настраивал программу. Мне друзья сказали что это съест много трафика и хакеры пролезут на мой компьютер.
Р: У Вас активна кнопка неоправленные отчеты.
П: Да, здесь два каких-то файла по 3Кб.
Р: Нажмите кнопку отправить это израсходует не более 7Кб Вашего трафика, а мы сможем сразу приступить к решению Вашей проблемы. Мы гарантируем что эта функция безопасна, так-же Вы можете прочесть наше "заявлении о конфидециальности".
П: Мне все равно жалко целых 7Кб, у меня ночью интернет безлимитный, но ночью я сплю и не смогу нажать кнопку...
Р: Тогда закройте список файлов и выберите вкладку "настройка времени отправки отчетов" ... Оставьте компьютер включенным на ночь.
П: Хорошо! Какая у Вас удобная программа!


скалогрыз писал(а):Даже приходя к врачу, пациентов спрашивают "что и где у вас болит?"

А как педиаторы работают с новорожденными? У меня дочке 3 года и я видел их работу.
скалогрыз писал(а):Например сообщение "Не хватает кодаков" ("У вас старые драйвера"/"Не могу найти новое OpenGL расширение"), может намекнуть продвинутому человеку

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

Нет, такой диалог не нужен! Зачем? Если пользователь нажал Del он на автомате нажмет Ok и все равно расстроиться из-за потерянной информации. Лишний клик мышкой не защитит, а только увеличит раздражение. Надо бережно относиться к информации пользователя - за функции "удалить безвозвратно" надо удалять программистов.
Кстати, это относится не только к удалению, но и к модификациям. Программа должна помнить всю историю изменений документа, а не только сегодняшний "снимок".

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

Добавлено спустя 6 минут 3 секунды:
dunin писал(а):Похоже, что ничего революционного он и не предлагает. Скачал отсюда "Глава 14. Визуальный дизайн интерфейсов" - почитал - набор банальностей и прописных истин. Как сразу и подумал: основную (революционную) мысль ни кто сформулировать не может - значит ее попросту нет.

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

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

Сообщение скалогрыз » 27.01.2010 14:16:36

AbakAngelSoft писал(а):Я расказывал, что мне, подобное важное сообщение, намекнуло, что кодеков не хватает в моем cgi приложении. :shock:

только разработчик знает, где он поместил сообщение о нехватке драйверов ;) так что ты уже знаешь на какой строчке программа скорее всего загнулась!
развлечения ради можно написать: "кто ходит в гости по-утрам, тот поступает мудро"... это не более чем указание разработчику в каком месте произошла ошибка.

Добавлено спустя 6 минут 20 секунд:
AbakAngelSoft писал(а):Повторюсь, если не заметили предыдущий пост. Зачем заставлять пользователя передавать это разработчику? Программа может, и должна, делать это самостоятельно!
Мой вариант диалога с пользователем:
Р: Мы уже работаем над исправлением этой ошибки, завтра к обеду все будет работать хорошо.

или подробнее
Р: Тогда закройте список файлов и выберите вкладку "настройка времени отправки отчетов" ... Оставьте компьютер включенным на ночь.


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

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

Сообщение FedeX » 27.01.2010 14:27:43

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

Вы же понимаете что всё это в "идеале". В реальности если постоянно делать скажем бекапинг базы и прочих данных, то вскоре винт пользователя переполниться и... ничего хорошего из этого не выйдет.. Купер - теоретик, он как вы сами заметили, не даёт ответов, а то что он даёт направление решения проблем ещё не означает, что решения вообще существуют. И всё-таки всё очень сильно зависит от ситуации.
Аватара пользователя
FedeX
постоялец
 
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

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

Сообщение AbakAngelSoft » 27.01.2010 14:56:00

скалогрыз писал(а):только разработчик знает, где он поместил сообщение о нехватке драйверов

в моем приложении не использовались кодеки и драйверы. Сообщение было выдано посторонней программой, а было воспринято неоднозначно всязи с тем, что его появление совпало с моментом копиляции. В этот момент я ждал сообщений от компилятора!
скалогрыз писал(а):всё красиво! можешь готовый компонент посоветовать?

Нет, мы только работаем над этой системой. Да и итог показать не смогу - код будет проприетарный и закрытый.
FedeX писал(а):Вы же понимаете что всё это в "идеале"

А мы к нему (идеалу) и стремимся. Иначе, зачем жить? :)
FedeX писал(а):В реальности если постоянно делать скажем бекапинг базы и прочих данных, то вскоре винт пользователя переполниться

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

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

Сообщение скалогрыз » 27.01.2010 15:51:50

AbakAngelSoft писал(а):Нет, мы только работаем над этой системой. Да и итог показать не смогу - код будет проприетарный и закрытый.

Тогда вернёмся к реальной жизни.
Разработчики редко используют дополнительные (и платные) компоненты, для баг репорта. Своих не пишут, потому что это трата сил и времени (которого часто не хватает). Чаще всего обходятся своими силами и бесплатными средствами, вроде ShowMessage();
Тем более, если программист - фрилансер, то добавлять подобные вещи в программу, он будет за дополнительную плату. И заказчик не всегда будет этому рад :)

и как же лучше оповещать об ошибке, не имея под рукой удобного компонента (где всё уже продумано с авто-оповещением), и при этом извлекать из этого сообщения пользу, облегчая, себе труд в устранении этой ошибки?
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

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

Сообщение AbakAngelSoft » 27.01.2010 16:19:10

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

Писать, искать, покупать.
Тема озаглавлена как "Пользовательский интерфейс. Обмен опытом." вот я и обмениваюсь.
Предлагаю написать такой компонент здесь, под лицензией LGPL. Я приостановлю работы над этой частью в нашей конторе, зато будем пользоватся все вместе.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

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

Сообщение amateur » 27.01.2010 16:20:41

Нет, такой диалог не нужен! Зачем? Если пользователь нажал Del он на автомате нажмет Ok и все равно расстроиться из-за потерянной информации. Лишний клик мышкой не защитит, а только увеличит раздражение. Надо бережно относиться к информации пользователя - за функции "удалить безвозвратно" надо удалять программистов.

Вот по этому в тотале, как и в большинстве менеджерах есть 2 варианта удаления :) Защита от супер пользователей..
А надпись эту может ктот и прочитает... Кстати читают сейчас все меньше и меньше. Жаль.

не задумываясь отдам 1% под историю изменений документов.
- эт какой винт для бекапа файлов нужен :)

Вообще-то спорить мона оооочень долго... Толка нуль. В вики сказано:
вдобавок, при наличии лучших альтернатив[2].
и нашли альтернативу :)
«диалоговое модальное окно для документа»
. Вывод напрашивается сам. Альтернатив пока нет. Может кто и краше придумает :)

3. программа не в состоянии продолжать работу. По тихому отправляем отчет разработчику и умираем как истиный воин - без истошных криков и стенаний, пользователь не должен видеть агонию.
imho
- смешно. А Вы случаем не про ИИ пишете :) Так она может поступить- если разработчик учел подобное поведение... А если не учел???

А спор похож на: ПАСКАЛЬ и СИ; ЛИНУКС и ВИНДА и т.д.


А интерфейс, кака такая неописуемая. У меня стоит прога (работа с документами). Суперская до безообразия. Главное окно - диалог (есть токо кнопка закрыть :)), при выборе справочников - диалог (можна комбобоксами заменить) и т.д. и т.п. . А скажи этому прог.... что можна по другому. Дык и с работы мона таво :(... Вот и интерфейс. Откуда токо такие крутые програмеры берутся...
Еще раз скажу: все зависит от кривизны рук.
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

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

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

AbakAngelSoft писал(а):Предлагаю написать такой компонент здесь, под лицензией LGPL. Я приостановлю работы над этой частью в нашей конторе, зато будем пользоватся все вместе.

я согласен! а есть публичный репозиторий для совместной разработки? хотя, у меня есть один, если что ;)
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

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

Сообщение amateur » 27.01.2010 16:46:27

Использовать компонент? А из блага в зло он превратиться не может?
Как я понял: у Вас есть наработки. На что способен Ваш компонент? Или это только теория...

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

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

Сообщение AbakAngelSoft » 27.01.2010 16:48:18

http://freepascal.ru/forum/viewtopic.php?f=10&t=5385 не будем забивать эту тему, здесь есть еще, что обсудить помимо баг репортов.
Аватара пользователя
AbakAngelSoft
постоялец
 
Сообщения: 273
Зарегистрирован: 06.08.2008 19:28:26
Откуда: Краснодар

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

Сообщение qivi » 27.01.2010 16:54:23

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

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

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

А кстате переходя к практике!!!

Вспомнил тут как то на досуге что ещё давным давно находил занятный графический компонент, позволяет сворачивать и разворачивать панель в кнопку, при этом используя свойство айлинг можно сделать её частью окна... в общем с её помощью можно исбавиться от многих диалогов... вот тока не разобрался как обращаться к объектам расположенным на ней... мож ща кто подскажет :wink:
viewtopic.php?f=5&t=4241

Добавлено спустя 10 минут 37 секунд:
dunin писал(а):
AbakAngelSoft писал(а):
dunin писал(а):А в двух словах что он там предлагает?

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

Похоже, что ничего революционного он и не предлагает. Скачал отсюда "Глава 14. Визуальный дизайн интерфейсов" - почитал - набор банальностей и прописных истин. Как сразу и подумал: основную (революционную) мысль ни кто сформулировать не может - значит ее попросту нет.


Браво!!!! Нет в этом истины - это просто галимая мода!!!
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru