Far 3.0 & Guids

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Far 3.0 & Guids

Post by techie »

Latest post of the previous page:

Ну и зачем мне это всё знать? На вопросы ответье лучше кто-нибудь. Вместо "ты должен плясать с такими вот бубнами" сказать, зачем эти танцы нужны. Пока эти GUID'ы выглядят, как повод для геноцида тех, кто отказывается плясать "как положено", а почему положено и кем положено, никто не объясняяет, а хотелось бы. GUID не гарантирует, что люди, которым влом заморачиваться с генерацией, не будут писать GUID ручками, а человек. которые понимает, что нужен уникальный ID плагина, уж как-то постарается решить эту проблему. На крайняк возьмёт этот GUID счастливый. Вот форматирование айдишника под специфический формат должно быть технически оправдано. Пусть даже эстетически. Но вот страхи распространять, что "без бубна сертифицированного проклятие накликаешь", ну ё-маё..
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Far 3.0 & Guids

Post by HaRT »

techie wrote: Ну и зачем мне это всё знать?
Чтобы из-за кривых гуидов не возникло конфликтов впоследствии.
Если выполнение одной простой команды для генерации гуида Вы называете танцем с бубном, то как же Вас вообще занесло в разработку плагинов для Фара?!
Last edited by HaRT on Thu 11 May, 2017 20:15, edited 1 time in total.
Reason: Исправлены опечатки
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Far 3.0 & Guids

Post by HaRT »

techie wrote: повод для геноцида тех, кто отказывается плясать "как положено"
„«А это мысль!» — подумали дети.“ :ha:
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Far 3.0 & Guids

Post by Smitis »

techie wrote:Я ещё не настолько сектант, чтобы лазить на специальный сайт для того, чтобы сгенерить случайное число, уникальное в пределах всей экосистемы фара с вероятностью > 99.99999%
ФАР уже сто лет в обед умеет сам генерировать гуиды. И в этой теме это уже было.
  1. Macro {
  2.  
  3.     description="UUID";
  4.  
  5.     area="Shell Editor";
  6.  
  7.     key="CtrlAltShiftU";
  8.  
  9.     action=function()
  10.  
  11.         print(win.Uuid(win.Uuid()):upper())
  12.  
  13.     end;
  14.  
  15. }
Разум когда-нибудь победит.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Far 3.0 & Guids

Post by techie »

HaRT wrote: Чтобы из-за кривых гуидов не возникло конфликтов впоследствии.
2. Почему Far не чекает плагины на дублицирующиеся GUIDы, и не предупреждает/вываливается, если для него это так важно?
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Far 3.0 & Guids

Post by citRiks »

Не буду спорить или доказывать, так как вопрос не выглядит слишком важным или принципиальным.
мне, лично, длинный непонятный номер хоть и нарушает чувство прекрасного, но можно и мирится с этим.
Прочитал все что нашел касательно нужности назначения ГУИДов, так и не понял нужности.
Возможно потому что кругозора не хватает, но тем не менее.

Мне кажется что бОльший смысл имеет автогенерация ГУИДов.
Например:
Для плагинов - берется имя плагина+версия, на них автоматом делается MD5, назначается ГУИДом.
Для диалогов (и меню) берется menu_props + menu_items на них автоматом делается MD5, назначается ГУИДом.
Для пущей красоты в базу для МД5 можно добавлять:
* имя (и путь?) файла (плагина, скрипта) вызвавшего Меню
* то же самое только уже ГУИД плагина/скрипта.

Таким образом ГУИД может начать иметь смысл, как "отпечаток пальцев" для верификации, а не просто какой-то номер с потолка..

PS
вышесказанное не означает что что я против ручного назначения ГУИДов (как сейчас),
это тоже имеет смысл в некоторых понятных и мне сценариях
Last edited by citRiks on Sun 06 Sep, 2020 21:39, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Far 3.0 & Guids

Post by buniak_a_h »

citRiks, Вы, видимо, не поняли смысл ГУИДа. Главное: он (а) уникален и (б) постоянен для некоего плагина. Т.е. не должен зависеть ни от версии, ни от пути к ДЛЛ (как отпечатки пальцев не зависят от возраста и адреса). Именно для идентификации плагина.
Технология генерации ГУИДа такова, что уникальность обеспечивается (во всяком случае, это декларируется авторами). В т.ч. некоторые параметры компа (MAC-адрес)., а также дата-время. Поэтому, якобы он практически уникален.
В то же время генерировать его, как Вы предлагаете, сделает его непостоянным, а значит, использовать для идентификации (как вы сравнили с отпечатками пальцев) станет невозможно.
----
Нет, автор плагина (ну, или сертифицированный распространитель) должен сам сгенерировать ГУИД и присвоить его плагину навсегда.
Сорри, Вы поняли (я не дочитал Ваше сообщение до конца), но сделали странные выводы
Last edited by buniak_a_h on Sun 06 Sep, 2020 21:59, edited 2 times in total.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Far 3.0 & Guids

Post by zg »

citRiks wrote: Sun 06 Sep, 2020 21:27Для плагинов - берется имя плагина+версия, на них автоматом делается MD5, назначается ГУИДом.
т.е. вы предлагаете вместо банального Plugin.SyncCall('9860393A-918D-450F-A3EA-84186F21B0A2',…) держать список уидов для всех возможных версий и битностей, при помощи far.FindPlugin каждый раз искать, а какая версия плагина есть, и уже только потом вызывать Plugin.SyncCall. а при выходе новой версии плагина обязательно обновлять макрос. я вас правильно понимаю?
Last edited by zg on Sun 06 Sep, 2020 22:14, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Far 3.0 & Guids

Post by buniak_a_h »

zg wrote: Sun 06 Sep, 2020 22:14 список уидов для всех возможных версий и битностей
да-да, а ещё (у меня, например, только 64-разрядных ФАР-ов штук 5 плюс "переносимая", которая может у юзера быть запущена откуда угодно.)
Last edited by buniak_a_h on Sun 06 Sep, 2020 22:47, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Far 3.0 & Guids

Post by citRiks »

zg wrote: Sun 06 Sep, 2020 22:14
citRiks wrote: Sun 06 Sep, 2020 21:27Для плагинов - берется имя плагина+версия, на них автоматом делается MD5, назначается ГУИДом.
т.е. вы предлагаете вместо банального Plugin.SyncCall('9860393A-918D-450F-A3EA-84186F21B0A2',…) держать список уидов для всех возможных версий и битностей, при помощи far.FindPlugin каждый раз искать, а какая версия плагина есть, и уже только потом вызывать Plugin.SyncCall. а при выходе новой версии плагина обязательно обновлять макрос. я вас правильно понимаю?
да, это хороший обьясняющий пример
Post Reply

Return to “Разработка плагинов”