Пользовательский интерфейс. Обмен опытом.
Модератор: Модераторы
Я ещё раз повторюсь. Диалоги с ошибками в ПЕРВУЮ ОЧЕРЕДЬ нужны именно разработчикам, а не пользователям.
Если есть диалог: "Произошла ошибка. Нажимте ОК". С чего начать её устранение? попросить пользователя выслать информацию о системе 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 минуты.
Если есть диалог: "Произошла ошибка. Нажимте ОК". С чего начать её устранение? попросить пользователя выслать информацию о системе 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 12:35:40, всего редактировалось 4 раза.
было бы замечательно, такой отчёт об ошибке, оформить в виде компонента (кросс-платформенного).
Т.е. начал разработчик писать новую прогу, выложил компонент на форму и всё! Остальное - автоматически делается, без его участия.
Есть желание (возможность) кодом поделиться?
К сожалению кодом поделиться тут не получиться, даже не потому что продукт коммерческий и мы писали что-то вроде договора о неразглашении исходников, а просто потому что использовалась Delphi6 + наши собственные компоненты-скины+сервер у нас висел в инете написанный на PHP который принимал простой HTTP запрос, типа формы (картинка была в Base64 закодирована из-за чего были проблемы с трафиком) и этот сервер уже отправлял на почту... Вот как оно выглядело:
Но идея хорошая, может попробую сегодня что-то накидать на Lazarus. Вот только как быть с отправкой данных? Стоит-ли её непосредственно в компоненте реализовывать, и если да то как лучше? Я до этого пользовал только LNet и Synapse, но не хотелось-бы в компоненте к ним привязываться.. А писать прямо на сокетах что-то сильно муторно и как-то нелепо для такой цели.
Padre_Mortius
тут сложно что-то говорить однозначно, во многих случаях сообщения об ошибках всё-таки могут помочь.. по-моему надо просто смотреть по обстоятельствам.. не помню точно где, но в какой-то программе я даже видел в настройках что-то типа скроллера "уровень автоматической обработки ошибок". В одном крайнем положении программа сама пыталась принимать решения о большинстве ошибок, в другом крайнем положении постоянно спрашивала у пользователя что делать. И ещё кажеться в каком-то антивируснике тоже что-то подобное было. Например в одно время я занят важной работой и не хочу чтоб меня отвлекали, в другое время я буду рад если тот же тумббокс сам предложит мне скачать кодеки (какое счастье что мне не надо рыться в его настройках или ещё хуже в Синаприке в поиске всех необходимых кодеков.).
- dunin
- энтузиаст
- Сообщения: 634
- Зарегистрирован: 02.05.2007 13:18:11
- Откуда: Тољя††и
- Контактная информация:
AbakAngelSoft писал(а):dunin писал(а):А в двух словах что он там предлагает?
Эту книгу любой разработчик должен помнить наизусть, от корки до корки, двумя словами не отделаешься.
Похоже, что ничего революционного он и не предлагает. Скачал отсюда "Глава 14. Визуальный дизайн интерфейсов" - почитал - набор банальностей и прописных истин. Как сразу и подумал: основную (революционную) мысль ни кто сформулировать не может - значит ее попросту нет.
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
скалогрыз писал(а):Чтобы пользователь мог эту информацию передать разработчику для исправления ошибки.
Повторюсь, если не заметили предыдущий пост. Зачем заставлять пользователя передавать это разработчику? Программа может, и должна, делать это самостоятельно!
Мой вариант диалога с пользователем:
П: У меня программа не работает.
Р: Мы уже работаем над исправлением этой ошибки, завтра к обеду все будет работать хорошо.
или подробнее
П: У меня программа не работает.
Р: Мы не получали сообщение, вы не могли-бы открыть вкладку настройки.
П: угу
Р: У Вас установлена галочка "автоматически отправлять отчет об ошибках"?
П: Нет, я ее снял когда настраивал программу. Мне друзья сказали что это съест много трафика и хакеры пролезут на мой компьютер.
Р: У Вас активна кнопка неоправленные отчеты.
П: Да, здесь два каких-то файла по 3Кб.
Р: Нажмите кнопку отправить это израсходует не более 7Кб Вашего трафика, а мы сможем сразу приступить к решению Вашей проблемы. Мы гарантируем что эта функция безопасна, так-же Вы можете прочесть наше "заявлении о конфидециальности".
П: Мне все равно жалко целых 7Кб, у меня ночью интернет безлимитный, но ночью я сплю и не смогу нажать кнопку...
Р: Тогда закройте список файлов и выберите вкладку "настройка времени отправки отчетов" ... Оставьте компьютер включенным на ночь.
П: Хорошо! Какая у Вас удобная программа!
скалогрыз писал(а):Даже приходя к врачу, пациентов спрашивают "что и где у вас болит?"
А как педиаторы работают с новорожденными? У меня дочке 3 года и я видел их работу.
скалогрыз писал(а):Например сообщение "Не хватает кодаков" ("У вас старые драйвера"/"Не могу найти новое OpenGL расширение"), может намекнуть продвинутому человеку
Я расказывал, что мне, подобное важное сообщение, намекнуло, что кодеков не хватает в моем cgi приложении.
amateur писал(а):Хотя нет, в тотале выскакивает)) при копировании и удалении файлов
)) Может подобное тоже не нужно ??? Пускай пользователь нажмет копочку, а потома: хде файлик
) ой, млин, я его удалило. При удалении строки из бызы тоже может не нужен диалог (удалить? или не удалить?).
Нет, такой диалог не нужен! Зачем? Если пользователь нажал Del он на автомате нажмет Ok и все равно расстроиться из-за потерянной информации. Лишний клик мышкой не защитит, а только увеличит раздражение. Надо бережно относиться к информации пользователя - за функции "удалить безвозвратно" надо удалять программистов.
Кстати, это относится не только к удалению, но и к модификациям. Программа должна помнить всю историю изменений документа, а не только сегодняшний "снимок".
Вернемся к ошибкам есть три варианта развития:
1. программа в состоянии исправить ошибку самостоятельно и продолжить работу. Никаких сообщений не надо исправляй и продолжай.
2. программа не в состоянии исправить ошибку, но может продолжить работу. По тихому отправляем отчет разработчику и продолжаем работать.
3. программа не в состоянии продолжать работу. По тихому отправляем отчет разработчику и умираем как истиный воин - без истошных криков и стенаний, пользователь не должен видеть агонию.
imho
Добавлено спустя 6 минут 3 секунды:
dunin писал(а):Похоже, что ничего революционного он и не предлагает. Скачал отсюда "Глава 14. Визуальный дизайн интерфейсов" - почитал - набор банальностей и прописных истин. Как сразу и подумал: основную (революционную) мысль ни кто сформулировать не может - значит ее попросту нет.
Почему бы не начать читать книгу с начала, а не с 14-й главы? Купер не предлагает готовых решений, он описывает проблемы, направление поиска их решений и идеологию разработки программных продуктов уменьшающую количество подобных проблем.
AbakAngelSoft писал(а):Я расказывал, что мне, подобное важное сообщение, намекнуло, что кодеков не хватает в моем cgi приложении.
только разработчик знает, где он поместил сообщение о нехватке драйверов
развлечения ради можно написать: "кто ходит в гости по-утрам, тот поступает мудро"... это не более чем указание разработчику в каком месте произошла ошибка.
Добавлено спустя 6 минут 20 секунд:
AbakAngelSoft писал(а):Повторюсь, если не заметили предыдущий пост. Зачем заставлять пользователя передавать это разработчику? Программа может, и должна, делать это самостоятельно!
Мой вариант диалога с пользователем:Р: Мы уже работаем над исправлением этой ошибки, завтра к обеду все будет работать хорошо.
или подробнееР: Тогда закройте список файлов и выберите вкладку "настройка времени отправки отчетов" ... Оставьте компьютер включенным на ночь.
всё красиво! можешь готовый компонент посоветовать?
AbakAngelSoft писал(а):Надо бережно относиться к информации пользователя - за функции "удалить безвозвратно" надо удалять программистов.
Кстати, это относится не только к удалению, но и к модификациям. Программа должна помнить всю историю изменений документа, а не только сегодняшний "снимок".
...
Почему бы не начать читать книгу с начала, а не с 14-й главы? Купер не предлагает готовых решений, он описывает проблемы, направление поиска их решений и идеологию разработки программных продуктов уменьшающую количество подобных проблем.
Вы же понимаете что всё это в "идеале". В реальности если постоянно делать скажем бекапинг базы и прочих данных, то вскоре винт пользователя переполниться и... ничего хорошего из этого не выйдет.. Купер - теоретик, он как вы сами заметили, не даёт ответов, а то что он даёт направление решения проблем ещё не означает, что решения вообще существуют. И всё-таки всё очень сильно зависит от ситуации.
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
скалогрыз писал(а):только разработчик знает, где он поместил сообщение о нехватке драйверов
в моем приложении не использовались кодеки и драйверы. Сообщение было выдано посторонней программой, а было воспринято неоднозначно всязи с тем, что его появление совпало с моментом копиляции. В этот момент я ждал сообщений от компилятора!
скалогрыз писал(а):всё красиво! можешь готовый компонент посоветовать?
Нет, мы только работаем над этой системой. Да и итог показать не смогу - код будет проприетарный и закрытый.
FedeX писал(а):Вы же понимаете что всё это в "идеале"
А мы к нему (идеалу) и стремимся. Иначе, зачем жить?
FedeX писал(а):В реальности если постоянно делать скажем бекапинг базы и прочих данных, то вскоре винт пользователя переполниться
Паковать, делать инкрементальные бекапы, разрабытывать новые алгоритмы. 80% моего винта занято музыкой - я не задумываясь отдам 1% под историю изменений документов.
AbakAngelSoft писал(а):Нет, мы только работаем над этой системой. Да и итог показать не смогу - код будет проприетарный и закрытый.
Тогда вернёмся к реальной жизни.
Разработчики редко используют дополнительные (и платные) компоненты, для баг репорта. Своих не пишут, потому что это трата сил и времени (которого часто не хватает). Чаще всего обходятся своими силами и бесплатными средствами, вроде ShowMessage();
Тем более, если программист - фрилансер, то добавлять подобные вещи в программу, он будет за дополнительную плату. И заказчик не всегда будет этому рад
и как же лучше оповещать об ошибке, не имея под рукой удобного компонента (где всё уже продумано с авто-оповещением), и при этом извлекать из этого сообщения пользу, облегчая, себе труд в устранении этой ошибки?
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
скалогрыз писал(а):и как же лучше оповещать об ошибке, не имея под рукой удобного компонента
Писать, искать, покупать.
Тема озаглавлена как "Пользовательский интерфейс. Обмен опытом." вот я и обмениваюсь.
Предлагаю написать такой компонент здесь, под лицензией LGPL. Я приостановлю работы над этой частью в нашей конторе, зато будем пользоватся все вместе.
Нет, такой диалог не нужен! Зачем? Если пользователь нажал Del он на автомате нажмет Ok и все равно расстроиться из-за потерянной информации. Лишний клик мышкой не защитит, а только увеличит раздражение. Надо бережно относиться к информации пользователя - за функции "удалить безвозвратно" надо удалять программистов.
Вот по этому в тотале, как и в большинстве менеджерах есть 2 варианта удаления
А надпись эту может ктот и прочитает... Кстати читают сейчас все меньше и меньше. Жаль.
- эт какой винт для бекапа файлов нуженне задумываясь отдам 1% под историю изменений документов.
Вообще-то спорить мона оооочень долго... Толка нуль. В вики сказано:
и нашли альтернативувдобавок, при наличии лучших альтернатив[2].
. Вывод напрашивается сам. Альтернатив пока нет. Может кто и краше придумает«диалоговое модальное окно для документа»
- смешно. А Вы случаем не про ИИ пишете3. программа не в состоянии продолжать работу. По тихому отправляем отчет разработчику и умираем как истиный воин - без истошных криков и стенаний, пользователь не должен видеть агонию.
imho
А спор похож на: ПАСКАЛЬ и СИ; ЛИНУКС и ВИНДА и т.д.
А интерфейс, кака такая неописуемая. У меня стоит прога (работа с документами). Суперская до безообразия. Главное окно - диалог (есть токо кнопка закрыть
Еще раз скажу: все зависит от кривизны рук.
AbakAngelSoft писал(а):Предлагаю написать такой компонент здесь, под лицензией LGPL. Я приостановлю работы над этой частью в нашей конторе, зато будем пользоватся все вместе.
я согласен! а есть публичный репозиторий для совместной разработки? хотя, у меня есть один, если что
Использовать компонент? А из блага в зло он превратиться не может?
Как я понял: у Вас есть наработки. На что способен Ваш компонент? Или это только теория...
Кстати: учесть все ошибки
- нонсенс (мое мнение).
Как я понял: у Вас есть наработки. На что способен Ваш компонент? Или это только теория...
Кстати: учесть все ошибки
- AbakAngelSoft
- постоялец
- Сообщения: 273
- Зарегистрирован: 06.08.2008 19:28:26
- Откуда: Краснодар
- Контактная информация:
http://freepascal.ru/forum/viewtopic.php?f=10&t=5385 не будем забивать эту тему, здесь есть еще, что обсудить помимо баг репортов.
А пожалуй я наконец сформулировал своё мнение по вопросу "Модальность - быть, или не быть". Уверен те кто твердят о категорическом отказе от модальных и диалоговых оконон в корне не правы, возможно их черезмерное использование имеет пагубные последствия потребляемых ресурсов, удобство интерфейса и т. д., но и тотальное искоренение вышеупомянутых средств это то же крайность, и она не преведёт к заявленному комфорту, логичносте и простоте... я вполне любил WinXP, а что касается заслуженно обосраной Висты и восхваляемой как идола Вин7, я их неперевариваю (личная несовместимость)... моё мнение (без притензий на истину): убойно не продуманные, не логично выстроенные, красивые но вычурные и неудобные интерфейсы, вообще работа с ними (с этими ОС) напоминает работу с перераспантованым сайтом - это и есть передовая мысль в интерфейсной архитектуре? Ну да и ладно, не исключаю что это я такой консерватор... один только вопрос тогда, а кто собственно опредилил статус "истина" для этих новых веиней?
Случай у нас был такой на предприятии... внедряли документооборот (а воз и ныне там), наняли на постоянную работу несколько интеграторов, ребята как показало время оказались весма дельными и к работе относились весьма серьёзно... презентовали несколько систем, опредилились что будут внедрять, переписали пол программы под этих фашистов (пользователей), причём каждый раз когда они заканчивали выполнять последнее подписаное Т.З. заказчики и пользователи оставались недовольны, а ещё ведь есть учредители компании...
Вобщем итог был следующим: учредители, имеющие весьма реальное представление о внедрении и результате применения этого продукта на подразделениях ничего не получили, деректора подразделений обвинили интеграторов в непрофессионализме и добились их увольнения, а ещё директора подразделений и потенциальные пользователи имели своё видение внедрения этого дела на предприятии... ну чтож поделаеш... учредителям надо - перечить нельзя... но пускай нам напишут такую кнопуку, чтоб вот мы подумали что там надо сделать, нажали её одну и всё сделалось как надо и чтоб учредители при этом получили что хотели и отвязались.
Есть программы которым достаточно пол окна и две кнопки, и даже умственно отсталый с ней справится, а есть гиперфункциональные программы, и ориентированны они на подготовленную аудиторию, и доп окна впринципе, как явление, - нифига злом не является. Допустим, можно своять тот же фотошоп на одно окно... но я даже допустить не могу что он от этого вдруг станет удобнее!!!
А кстате переходя к практике!!!
Вспомнил тут как то на досуге что ещё давным давно находил занятный графический компонент, позволяет сворачивать и разворачивать панель в кнопку, при этом используя свойство айлинг можно сделать её частью окна... в общем с её помощью можно исбавиться от многих диалогов... вот тока не разобрался как обращаться к объектам расположенным на ней... мож ща кто подскажет
viewtopic.php?f=5&t=4241
Добавлено спустя 10 минут 37 секунд:
Браво!!!! Нет в этом истины - это просто галимая мода!!!
Случай у нас был такой на предприятии... внедряли документооборот (а воз и ныне там), наняли на постоянную работу несколько интеграторов, ребята как показало время оказались весма дельными и к работе относились весьма серьёзно... презентовали несколько систем, опредилились что будут внедрять, переписали пол программы под этих фашистов (пользователей), причём каждый раз когда они заканчивали выполнять последнее подписаное Т.З. заказчики и пользователи оставались недовольны, а ещё ведь есть учредители компании...
Вобщем итог был следующим: учредители, имеющие весьма реальное представление о внедрении и результате применения этого продукта на подразделениях ничего не получили, деректора подразделений обвинили интеграторов в непрофессионализме и добились их увольнения, а ещё директора подразделений и потенциальные пользователи имели своё видение внедрения этого дела на предприятии... ну чтож поделаеш... учредителям надо - перечить нельзя... но пускай нам напишут такую кнопуку, чтоб вот мы подумали что там надо сделать, нажали её одну и всё сделалось как надо и чтоб учредители при этом получили что хотели и отвязались.
Есть программы которым достаточно пол окна и две кнопки, и даже умственно отсталый с ней справится, а есть гиперфункциональные программы, и ориентированны они на подготовленную аудиторию, и доп окна впринципе, как явление, - нифига злом не является. Допустим, можно своять тот же фотошоп на одно окно... но я даже допустить не могу что он от этого вдруг станет удобнее!!!
А кстате переходя к практике!!!
Вспомнил тут как то на досуге что ещё давным давно находил занятный графический компонент, позволяет сворачивать и разворачивать панель в кнопку, при этом используя свойство айлинг можно сделать её частью окна... в общем с её помощью можно исбавиться от многих диалогов... вот тока не разобрался как обращаться к объектам расположенным на ней... мож ща кто подскажет
viewtopic.php?f=5&t=4241
Добавлено спустя 10 минут 37 секунд:
dunin писал(а):AbakAngelSoft писал(а):dunin писал(а):А в двух словах что он там предлагает?
Эту книгу любой разработчик должен помнить наизусть, от корки до корки, двумя словами не отделаешься.
Похоже, что ничего революционного он и не предлагает. Скачал отсюда "Глава 14. Визуальный дизайн интерфейсов" - почитал - набор банальностей и прописных истин. Как сразу и подумал: основную (революционную) мысль ни кто сформулировать не может - значит ее попросту нет.
Браво!!!! Нет в этом истины - это просто галимая мода!!!
