Отобразить тяжелую/долгую операцию в UI
От: r0nd  
Дата: 10.04.24 23:20
Оценка:
Есть список опций в некотором мастер-диалоге, из шагов типичных для какого-то ETL (это неважно), и представленных как обычный список из checkbox-ов на подготовительном шаге. Типа:

[x] легковесная опция 1
[ ] безобидное название тяжеловесной и долгой опции 2
[x] легковесная опция 3


Допустим опция 2 — занимает, например 50% всей работы если нажать кнопку мастера «Next >». Накидайте примеры, где и как лучше всего эта проблема решалась. То есть вопрос, как пользователя предупредить, что до запуска визарда, что для пользователя опция 2 — долгая. Пока идеи у меня какие-то: от черепашки в скобочках в строке названия, до всплывающей подсказки при нажатии на check box.

❧ “Our greatest glory is not in never falling, but in rising every time we fall.” — Confucius
Re: Отобразить тяжелую/долгую операцию в UI
От: kov_serg Россия  
Дата: 10.04.24 23:38
Оценка: :))
Здравствуйте, r0nd, Вы писали:

R>Допустим опция 2 — занимает, например 50% всей работы


Снизу пишите сумму при нажатии на check box обновляйте.
ps: сумму лучше в $
Re: Отобразить тяжелую/долгую операцию в UI
От: m2user  
Дата: 11.04.24 00:12
Оценка: 1 (1) +1
Да, пояснение в скобках в строке названия опции 2, словами.
Либо при выборе 2 опции показывать messagebox с тем же пояснением и просьбой подтвердить выбор.
Re: Отобразить тяжелую/долгую операцию в UI
От: Miroff Россия  
Дата: 11.04.24 02:17
Оценка: 1 (1)
Здравствуйте, r0nd, Вы писали:

R>То есть вопрос, как пользователя предупредить, что до запуска визарда, что для пользователя опция 2 — долгая.


Самый вменяемый способ это прогнозировать время выполнения и показывать пользователю прямо на кнопке "Начать". Это не очень сложно с современным ML
Re: Отобразить тяжелую/долгую операцию в UI
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 11.04.24 11:38
Оценка: 1 (1) +1
Здравствуйте, r0nd, Вы писали:

R>То есть вопрос, как пользователя предупредить, что до запуска визарда, что для пользователя опция 2 — долгая. Пока идеи у меня какие-то: от черепашки в скобочках в строке названия, до всплывающей подсказки при нажатии на check box.


Во время операции меняющийся прогресс бар, чтобы было видно, что программа не зависла. А так оформить в виде запуска операций, вроде кнопки начать.

Если совсем параноить, то всплывающее сообщение при выборе галки типа операция займёт много времени, продолжить да нет больше не напоминать. Но на мой взгляд это не нужно, только раздражать.

А вот спец. символы в названии чекбокса никто кроме тебя не поймёт. Да и слова неизвестно будут ли читать. Но слова вроде длительная операция ещё ладно, символы однозначно плохо.

Я и в документации советовал бы писать слова, а не выдумывать оформление спец. символами и графикой. Потом сам забудешь, что это.
Re: Отобразить тяжелую/долгую операцию в UI
От: Osaka  
Дата: 11.04.24 12:10
Оценка: 1 (1) +2
R>[x] легковесная опция 1
R>[ ] безобидное название тяжеловесной и долгой опции 2
R>[x] легковесная опция 3
R>как пользователя предупредить, что до запуска визарда, что для пользователя опция 2 — долгая. Пока идеи у меня какие-то: от черепашки в скобочках в строке названия, до всплывающей подсказки при нажатии на check box.
Операции написать в виде дерева, прогнозируемое соотношение времени показать разной максимальной шириной прогрессбара напротив каждого пункта.
А всякие дурацкие крутилки с 0 информации по делу, которые продолжают крутиться даже если рабочий тред давно повис — это издевательство.
Re[2]: Отобразить тяжелую/долгую операцию в UI
От: r0nd  
Дата: 11.04.24 12:20
Оценка:
On Apr 11, 2024, 3:10 PM, Osaka <26973@users.rsdn.org> wrote:

O>Операции написать в виде дерева, прогнозируемое соотношение времени показать разной максимальной шириной прогрессбара напротив каждого пункта.


На подготовительном этапе (когда пользователю предложено выбрать из списка операций с check-box) нет информации ни о предположительном времени выполнения, ни о количество обработанной информации. Сильно зависит от многих факторах — природы, неопределенности, количества данных итд. Вариант с полосой прогресса выглядит не применимым.

❧ “No one changes the world who isn’t obsessed.” — Billie Jean King
Re[3]: Отобразить тяжелую/долгую операцию в UI
От: Wawan Россия http://www.wawan.ru/resume
Дата: 11.04.24 16:57
Оценка:
не лишай пользователя времени для отдыха и чаепития, может быть вторая галочка у него поэтому самая любимая
Re[3]: Отобразить тяжелую/долгую операцию в UI
От: kov_serg Россия  
Дата: 11.04.24 17:21
Оценка: +2
Здравствуйте, r0nd, Вы писали:

R>На подготовительном этапе (когда пользователю предложено выбрать из списка операций с check-box) нет информации ни о предположительном времени выполнения, ни о количество обработанной информации.

Так сделайте оценки, по похожим данным (простую линейную модель)
R>Сильно зависит от многих факторах — природы, неопределенности, количества данных итд. Вариант с полосой прогресса выглядит не применимым.
Просто в абстрактных "work units" сделайте, мол операция обычно 2 в 32 раза дольше чем операция 1. А операция 3 в два раза быстрее чем 1.
 2 [ ] - опция 1
64 [x] - опция 2
 1 [x] - опция 3
-----------------
65 ⏳ total

Далее в процессе выполнения стройте оценку времени выполнения (если это всё дольше 5 сек длиться).
Re[4]: Отобразить тяжелую/долгую операцию в UI
От: r0nd  
Дата: 11.04.24 17:27
Оценка:
On Apr 11, 2024, 7:57 PM, Wawan <57148@users.rsdn.org> wrote:

W>не лишай пользователя времени для отдыха и чаепития, может быть вторая галочка у него поэтому самая любимая


Это смешно, когда такая длительная операция занимает меньше 9 часов, иначе шеф прикажет приходить в 8 утра, чтоб успеть запустить еще перед уходом второй раз. У тебя не было опыта использования подобных продуктов?

❧ “If we take care of the moments, the years will take care of themselves.” — Maria Edgeworth
Re[4]: Отобразить тяжелую/долгую операцию в UI
От: r0nd  
Дата: 11.04.24 17:42
Оценка:
On Apr 11, 2024, 8:21 PM, kov_serg <39543@users.rsdn.org> wrote:

KS>Просто в абстрактных "work units" сделайте, мол операция обычно 2 в 32 раза дольше чем операция 1. А операция 3 в два раза быстрее чем 1.


Не понял, можете продемонстрировать как это выглядит например на этом конкретном примере с тремя опциями:


Будем считать что второй пункт сильно тяжелее других. Пример с 3 пунктами, он не окончателен, а лишь для демонстрации концепции, пунктов может быть и 20, и тяжелых операций моет быть не одна а, допустим, 5.

❧ “Courage is like a muscle. We strengthen it by use.” — Ruth Gordo
Re[5]: Отобразить тяжелую/долгую операцию в UI
От: kov_serg Россия  
Дата: 11.04.24 18:09
Оценка: 1 (1)
Здравствуйте, r0nd, Вы писали:

R>Не понял, можете продемонстрировать как это выглядит например на этом конкретном примере с тремя опциями:

Вот с 6-тью на lua
options={
    { params={1, 1},title="Поиск и исправление в потерянных сущностях" },
    { params={1,10},title="Исправление некорректных данных агрегатов в моделях <название>" },
    { params={1, 2},title="Исправление мето-данных сущностей" },
    { params={1, 3},title="Исправление мето-данных сущностей" },
    { params={1,20},title="Допустим еще операция" },
    { params={1,15},title="Допустим еще одна операция" },
}

selected={2,3,5}

--------------------------------------------------------------------------------
model=function(data_estimation,params)
    -- простая линеёная модель на основе одного параметра (кол-во элементов)
    return data_estimation.count*params[2]+params[1]
end
-- оценка кол-ва элементов. Например ~100
data_estimation={ count=100 }
--------------------------------------------------------------------------------

total=0 map={}
for k,v in pairs(selected) do
    map[v]=true
    total=total+model( data_estimation, options[v].params )
end
for k,v in pairs(options) do
    if map[k] then x="x" else x=" " end
    est=model(data_estimation,v.params)
    print(string.format("%6d [%s] %s",est,x,v.title))
end
print(("-"):rep(78))
print(string.format("%6d ⏳ total",total))

   101 [ ] Поиск и исправление в потерянных сущностях
  1001 [x] Исправление некорректных данных агрегатов в моделях <название>
   201 [x] Исправление мето-данных сущностей
   301 [ ] Исправление мето-данных сущностей
  2001 [x] Допустим еще операция
  1501 [ ] Допустим еще одна операция
------------------------------------------------------------------------------
  3203 ⏳ total
Re: Отобразить тяжелую/долгую операцию в UI
От: goto Россия  
Дата: 12.04.24 12:24
Оценка: 3 (1) +1
Здравствуйте, r0nd, Вы писали:

R>Есть список опций в некотором мастер-диалоге, из шагов типичных для какого-то ETL (это неважно), и представленных как обычный список из checkbox-ов на подготовительном шаге. Типа:


R>
R>[x] легковесная опция 1
R>[ ] безобидное название тяжеловесной и долгой опции 2
R>[x] легковесная опция 3
R>


R>Допустим опция 2 — занимает, например 50% всей работы если нажать кнопку мастера «Next >». Накидайте примеры, где и как лучше всего эта проблема решалась. То есть вопрос, как пользователя предупредить, что до запуска визарда, что для пользователя опция 2 — долгая. Пока идеи у меня какие-то: от черепашки в скобочках в строке названия, до всплывающей подсказки при нажатии на check box.


Непонятно, что есть "тяжелая опция": программа думает лишние несколько секунд или час? Если час, то разумнее запускать думанье в конце, по отдельной кнопке "старт процесс" на последней странице визарда. Вот прям сильно нехорошо заставлять человека ждать на промежуточной странице, когда сделано полдела. А если "старт" в конце — сделал дело, все настроил, запустил и занялся другими делами с чистой совестью.

Если человек пользуется программой постоянно, он и так знает, какие опции тяжелые. Например, если я буду рендерить рейтрэйсингом, то это надолго, или этот тяжелый проект будет пересобираться полчаса. Но если все же необходимо подчеркнуть тяжесть какой-то опции, я бы скорее написал об этом около нее в скобках, может, выделил текст жирным шрифтом или цветом. Можно перед стартом показывал диалог ("старт/вернуться к настройкам"), где расписаны опции и сказано, из-за чего процесс будет долгим. И индикатор прогресса нужен. Многое зависит от того, на какого пользователя ориентировано.
Re[2]: Отобразить тяжелую/долгую операцию в UI
От: goto Россия  
Дата: 12.04.24 13:37
Оценка: +1
Добавлю. Тяжелая опция или нет, может зависеть от других настроек, которые могут находиться на других страницах визарда. Тогда — спагеттизация, и визард может стать не лучшим вариантом UI.
Re: Отобразить тяжелую/долгую операцию в UI
От: vsb Казахстан  
Дата: 12.04.24 14:45
Оценка:
Если таких пунктов мало, нарисовать с жёлтым фоном. Что-то вроде предупреждения. При выборе раскрывать текст предуждения, в котором написать, что операция займёт длительное время.
Re[2]: Отобразить тяжелую/долгую операцию в UI
От: goto Россия  
Дата: 13.04.24 14:56
Оценка:
Тихо сам с собою я веду беседу...

Визард в основном хорош для новичков, или когда требуется именно последовательное прохождение "квеста". А так, это может быть диалог опций со свободно переключаемыми табами, возможно, с кнопками next тоже, а кнопка "старт" там может быть расположена отдельно и доступна всегда, возможно, иногда задизэйблена. Допустим, я хочу изменить 1 параметр и сразу запустить. Зачем для этого проходить визард? Тут главное — не перемудрить, и чтоб юзеру было понятно.
Re: Отобразить тяжелую/долгую операцию в UI
От: kov_serg Россия  
Дата: 13.04.24 17:07
Оценка: :)
Здравствуйте, r0nd, Вы писали:

https://pikabu.ru/story/ocherednaya_tayna_drevnosti_razgadana_11318468
Re[3]: Отобразить тяжелую/долгую операцию в UI
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.04.24 15:46
Оценка:
Здравствуйте, r0nd, Вы писали:

R>На подготовительном этапе (когда пользователю предложено выбрать из списка операций с check-box) нет информации ни о предположительном времени выполнения, ни о количество обработанной информации.

А откуда тогда вы знаете, что опция 2 — "тяжеловесная и долгая"?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Отобразить тяжелую/долгую операцию в UI
От: r0nd  
Дата: 18.04.24 17:35
Оценка:
On Apr 18, 2024, 6:46 PM, Sinclair <5743@users.rsdn.org> wrote:

S>А откуда тогда вы знаете, что опция 2 — «тяжеловесная и долгая»?


Экспериментально это было выяснено, да и вообще по логике поведения получается что вторая должна быть тяжелее.

Но, если абстрагироваться от конкретики проблемы, то как отображать красную/оранжевую/зеленую области:


❧ “The thing women have yet to learn is nobody gives you power. You just take it. ” ― Roseanne Barr
Re[5]: Отобразить тяжелую/долгую операцию в UI
От: kov_serg Россия  
Дата: 18.04.24 17:43
Оценка:
Здравствуйте, r0nd, Вы писали:

R>Экспериментально это было выяснено, да и вообще по логике поведения получается что вторая должна быть тяжелее.

Значит есть статистика по времени исполнения и можно спокойно строить прогнозы на время выполнения операций

R>Но, если абстрагироваться от конкретики проблемы, то как отображать красную/оранжевую/зеленую области:

Очень просто красным оранжевым и зелёным цветом
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.