Пятница, 11.10.2024, 15:31
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Консоль кода. Раздражающее открытие окна настроек
MaxДата: Вторник, 13.04.2021, 14:48 | Сообщение # 1
Генерал-майор
Группа: Пользователи
Сообщений: 276
Репутация: 148
Статус: Оффлайн

Открываю консоль кода, встаю на нужном алгоритме и нажимаю кнопку "Выполнить".
При каждом первом выполнении алгоритма (в каждом новом клиентском сеансе) появляется такое окно:

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

Можно как-нибудь избавиться от появления этого всплывающего окна?
Оно надоедает при сценарии: внесли правки в конфигурацию, обновили базу, переоткрыли базу и выполняем заготовленный в консоли код. Это может происходить довольно часто в ходе разработки.
Если нельзя, то в этом окне хотя бы добавить пояснение, что же нужно сделать, чтоб оно перестало появляться.
Прикрепления: 0589953.png (11.3 Kb)
 
tormozitДата: Вторник, 13.04.2021, 19:17 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Цитата Max ()
Кстати, неплохо бы по двойному клику в это сообщение открывать ту форму, о которой в нем говорится.
Это сообщение выводится в системное окно, которое не предоставляет такой возможности.
 
tormozitДата: Вторник, 13.04.2021, 19:21 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Цитата Max ()
добавить пояснение, что же нужно сделать, чтоб оно перестало появляться
Это пояснение программа выводит одновременно с открытием окна. Ты его процитировал. Кажется связь между окном и сообщением достаточно явная. Как минимум потому что в сообщении есть фраза "обновлять кэш модулей" и в окне левая верхняя кнопка имеет практически такой же текст.
 
tormozitДата: Вторник, 13.04.2021, 19:39 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Причиной тому, что при выполнении кода вызывается обращение к контекстной подсказке, является включенный переключатель "Автозаполнение" над списком параметров. Чтобы он мог корректно классифицировать лексемы в тексте, ему требуется построить глобальный контекст. А его корректно построить можно только зная экспортные переменные модуля приложения. А их получить можно только через кэш модулей.
 
MaxДата: Вторник, 13.04.2021, 19:56 | Сообщение # 5
Генерал-майор
Группа: Пользователи
Сообщений: 276
Репутация: 148
Статус: Оффлайн
Цитата tormozit ()
Это пояснение программа выводит одновременно с открытием окна
Окно забирает все внимание на себя и поэтому сообщение внизу уже не воспринимается как причина этого - его я читаю уже после того, как закрыл всплывающее окно настроек.
К тому же из текста этого сообщения не ясна причина, по которой все это происходит: ну хочет оно получить какие-то там экспортные методы и переменные, но я-то программу этого не просил. В результате у меня, как пользователя, возникает желание поскорее отказаться от всего того, что там в сообщении пишется, но найти как это отключить не получается.

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


Сообщение отредактировал Max - Вторник, 13.04.2021, 20:06
 
tormozitДата: Вторник, 13.04.2021, 20:21 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Этот код выполняется на большой глубине в стеке и увидеть кнопку или форму, на которую нажал пользователь, он не сможет. Мест, откуда он вызывается, довольно много. Перечисление этих мест вызовет у пользователя быстрое утомление и он вообще не захочется разбираться. Поэтому я выбрал наиболее вероятный сценарий для массы пользователей и сделал максимально удобным путь именно по нему, местами в ущерб удобству других сценариев (например твоему).
По какой причине ты не хочешь заполнить кэш модулей?
 
nclockworkerДата: Вторник, 13.04.2021, 20:40 | Сообщение # 7
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
Цитата tormozit ()
По какой причине ты не хочешь заполнить кэш модулей?

Я, например, потому, что нет возможности изменить папку хранения кэша модулей.
 
MaxДата: Вторник, 13.04.2021, 22:11 | Сообщение # 8
Генерал-майор
Группа: Пользователи
Сообщений: 276
Репутация: 148
Статус: Оффлайн
Цитата tormozit ()
По какой причине ты не хочешь заполнить кэш модулей?
По причине того, что не понимаю, как это работает: механизм создания, время жизни и соответственно с какой частотой необходимо его будет обновлять.
При непонимании занимаю позицию "у меня лапки, я не хочу ничего решать, отстанте от меня" и просто каждый раз закрываю это окно, чтобы поскорее добраться до цели открытия консоли кода и приступить к пользованию ею.
 
tormozitДата: Вторник, 13.04.2021, 23:27 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Цитата Max ()
По причине того, что не понимаю, как это работает: механизм создания, время жизни и соответственно с какой частотой необходимо его будет обновлять.
У меня довольно сложный выбор. Если я дам тебе флажок для отключения этой навязчивости, ты его включишь и надолго (возможно даже навсегда) лишишься большого блока функционала. Если не дам, то ты будешь издеваться над собой бесконечным откладыванием заполнения кэша. Кажется страдания от периодического появления этого окна стоят того, чтобы быстрее склонить пользователя к заполнению кэша. Тем более я уже подсказал как можно снизить число ситуаций, в которых выполняется обращение к этому коду.
Про понимание работы кэша вопрос тоже во многом философский. Хорошо ли вываливать на пользователя море внутренней логики программы? Кажется она в большинстве случаев ему неинтересна, а интересны ему в первую очередь фичи. Кэши всякие разные используют все сложные программы. Ты в каждой требуешь объяснения их работы? Думаю что нет. А в моем случае заполнение делается не автоматически потому, что требуется конфигуратор, который может быть запущен только монопольно, и выполняться это заполнение может долго.
 
tormozitДата: Среда, 14.04.2021, 07:45 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Буду открывать окно без захвата фокуса https://www.hostedredmine.com/issues/925731
Думаю, что захват фокуса составляет 90% негативного эффекта, а само появление формы в списке окон - оставшиеся 10%.
 
MaxДата: Среда, 14.04.2021, 09:08 | Сообщение # 11
Генерал-майор
Группа: Пользователи
Сообщений: 276
Репутация: 148
Статус: Оффлайн
Цитата tormozit ()
Хорошо ли вываливать на пользователя море внутренней логики программы?
Когда программа говорит, что ей что-то нужно, то у пользователя должна быть возможность легко посмотреть, почему и зачем, и только тогда уже принимать решение.
Это кажется явно лучше, чем просто сказать - дай мне что-то непонятное, а то у меня что-то не получается, но я тебе не скажу, что.
 
tormozitДата: Воскресенье, 18.04.2021, 23:35 | Сообщение # 12
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Исправлено в 5.88
 
MaxДата: Среда, 21.04.2021, 17:24 | Сообщение # 13
Генерал-майор
Группа: Пользователи
Сообщений: 276
Репутация: 148
Статус: Оффлайн
Проверил в 5.88.2 - окно открывается без захвата фокуса. Спасибо.
 
  • Страница 1 из 1
  • 1
Поиск: