Про удаление обобщенных состояний

Здесь обсуждается всё, что касается макросов.
Post Reply

<t>Удалить макросостояния общего назначения?</t>

Удалить в пользу специализированных
10
63%
Оставить как описано в Писании
2
13%
Не удалять по другим причинам (необходимо прокомментировать почему)
0
No votes
Кто здесь?
4
25%
 
Total votes: 16

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Про удаление обобщенных состояний

Post by Skirda »

Небольшой соцопрос про удаление макросостояний общего назначения:
  • Bof
  • Eof
  • Empty
  • Selected
  • CurPos
  • Title
  • Height
  • Width
  • ItemCount
в пользу конкретно-специализированных, типа [A|P]Panel.Empty, Editor.CurPos и т.п.
Причина: невозможно всех удовлетворить :-)
Каждый считает, что ЭТО должно быть таким и ни иначе.
Если какого аналога нет - добавим.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Про удаление обобщенных состояний

Post by John Doe »

Не нашёл в вариантах ответа пункта "Оставить и (возможно) улучшить"
Удалять точно не надо: они коротки, привычны, уже используются во многих макросах.
Причина: невозможно всех удовлетворить
Каждый считает, что ЭТО должно быть таким и ни иначе.
Уверен что удовлетворить можно всех.

P.S.
Для истории: вопрос изначально родился тут.
User avatar
Toxa
Posts: 275
Joined: Wed 27 Jul, 2005 14:35
Location: Москва
Contact:

Re: Про удаление обобщенных состояний

Post by Toxa »

Title в панелях отвалился — это уже оно?
Я проголосовал ЗА удаление, но в таком случае надо бы добавить APanel.Title и PPanel.Title и т. п.
Сейчас если открыть, скажем, панель плагина Process list (Title ожидается «Process list»), APanel.UNCPath будет пустой, а APanel.Path и вовсе показывает текущий каталог.
Может кому пригодится.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Вред и польза обобщённых состояний

Post by John Doe »

Возможно некоторые обобщённые состояния действительно стоит удалить, но определённо не все. Более того: возможно стоит даже добавить.
Обосную их полезность:
  1. Некоторые элементы имеют много общего, например:
    1. строка ввода в диалоге, в редакторе, командная строка.
    2. меню, выпадающий список комбобокса, список истории.
    3. ...
    Чтобы составлять универсальные макросы, одинаково работающие в разных областях, удобно иметь обобщённые состояния.
  2. Названия обобщённых состояний короче специализированных, и запись получается компактнее.
  3. Их проще запомнить, а значит быстрее применить, не подглядывая в Писание.
Если же взять и на каждую область продублировать своё состояние, то никакой пользы мы не получим, напрасно только умножим сущности...

Но: определённый порядок навести в состояниях конечно стоит: обобщённые состояния должны действительно значить одно и то же.
Например:
  • Не очень удачно что bof в панелях относится к файлам, а в строках - к тексту.
    В особенности странно что в некоторых панелях bof тоже может относится к тексту (в командной строке).
    Бардак-с!
  • Также не очень удачна ситуация, когда одновремено существуют одноимённые специализированные и обобщённые состояния.
Резюме
1. Действительно одинаковые по функциональности и сходные в практике применения состояния оставить, а прочие извести.
2. От одноимённости избавиться.
Yegor
Posts: 1326
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Re: Про удаление обобщенных состояний

Post by Yegor »

Считаю, что нужно удалить все в пользу специализированных. (и без вариантов)
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Про удаление обобщенных состояний

Post by John Doe »

Yegor wrote:(и без вариантов)
Красивая аргументация.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Про удаление обобщенных состояний

Post by John Doe »

"Обобщённые" состояния сейчас помещены в таблицу Object, но логической стройности от этого не прибавилось.
В некоторых случаях разные поля этой таблицы относятся к разным объектам.
(В любых составных объектах, таких как панели+комстрока, диалог+текстбох, диалог+листбокс)

Это конечно не имеет значения, если считать макро апи пережитком, оставленном в фаре для совместимости.
Но такой подход тоже вызывает вопросы: если макро апи только для совместимости, то в дистрибутиве не нужна никая документация о нём (и даже вредна).
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Про удаление обобщенных состояний

Post by John Doe »

В чём нелогичность обобщённых свойств из таблицы Object
1. Там "надёрганы" и стоят рядом свойства относящиеся к разным контекстам.
2. Нередко эти свойства просто дублируются, без всякой необходимости.

Например, в файловой панели:
а) Bof/Eof/Empty/Selected — дублируют свойства из таблицы Cmdline
б) CurPos,ItemCount — дублируют свойства из таблицы APanel
в) Height/Width — дублируют свойства из таблицы Far
г) Title ничего не дублирует, но по логике ожидается в таблице APanel

На мой взгляд это дублирование вредит.

На данном этапе реформировать ничего не предлагаю, чтобы не ломать потенциально существующие legacy-макросы.
Но кое-что сделать всё-таки стоит: упростить документацию, исключив описание дублей.
Post Reply

Return to “Обсуждение макросов”