Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 106 107 108 109 110 111 112 [113] 114 115   вперед  Ctrl
 Re: Какие новости в мире Delphi ?  [new]
roschinspb
Member

Откуда: С-Пб
Сообщений: 1511
Спасибо
14 авг 18, 14:26    [21641910]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2808
cnpack хорошо чистит
14 авг 18, 15:27    [21642015]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29045

14.08.2018 15:27, makhaon пишет:
> cnpack хорошо чистит

только в том случае, если все твои твои модули включены в проект явно.
если же модули проекта "ищутся в путях", то не фонтан.

Posted via ActualForum NNTP Server 1.5

14 авг 18, 15:34    [21642030]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10006
вроде ModelMaker Explorer умеет чистить uses
14 авг 18, 16:04    [21642090]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Василий 2
Member

Откуда:
Сообщений: 189
Мне в FPC понравилась фича поиска неиспользуемых юнитов. Всё же лучше компилятора такие вещи никто не сделает. Т.ч. если проект собираемый под FPC, то можно испробовать такой вариант
14 авг 18, 19:11    [21642328]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9583
Остается не исключить юниты регистрирующие фабрики (или подобное) в initialization. Часто их интерфейсная секция мало (или не) используется или она вообще пустая.
14 авг 18, 19:19    [21642332]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10006
Dmitry Arefiev,

К счастью, теперь есть классовые конструкторы, т.е. можно делать "фабрики" подключаемые по факту использования класса где-то.

В случае просто подключения юнита без реального использвоания - смарт линкер его выкинет.
В случае же упоминания класса (хотя бы просто использования типа для переменной или заглушки "if X is Y then ;") уже статический анализатор пометит юнит, как использованный
14 авг 18, 20:06    [21642364]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9583
Которые не работают в С++ ... Да и классовый конструктор не решает определения надобности юнита ...
14 авг 18, 21:25    [21642393]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 53452
Блог
Arioch
К счастью, теперь есть классовые конструкторы, т.е. можно делать "фабрики" подключаемые по факту использования класса где-то.

Не вижу особого счастья. Имхо, гораздо более актуальна обратная задача - и большое спасибо initialization за то, что она её решает. В той же яве, например, без такой фичи весьма тоскливо.
14 авг 18, 21:27    [21642395]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
vavan
Member

Откуда: Казань
Сообщений: 3106
Dmitry Arefiev
Которые не работают в С++ ... Да и классовый конструктор
а что, их так и не починили?? во времена 2010 когда там у них порядок вызова был сломан в ulink харон сделал за них исправление, а в родном тулчейне так и не поправили?
15 авг 18, 11:26    [21642723]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3267
Dmitry Arefiev
Которые не работают в С++ ... Да и классовый конструктор не решает определения надобности юнита ...
я не проверял детально, но вроде как с генериками они и в дельфи не пашут адекватно:-(
15 авг 18, 11:37    [21642747]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9583
Честно говоря, давно не проверял ...
15 авг 18, 11:45    [21642759]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12230
zinpub
X11
zinpub, оно не на 100% красиво чистит. Перед чисткой лучше сделать резервное копирование.


Возможно, я им только скины девовские чистил.

Так есть же меню: Project/Modify skin options
15 авг 18, 12:14    [21642814]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
zinpub
Member

Откуда:
Сообщений: 214
X11,
Из этого меню, вроде, не удаляется.
15 авг 18, 12:23    [21642831]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
defecator
Member

Откуда:
Сообщений: 38569
X11
zinpub
пропущено...


Возможно, я им только скины девовские чистил.

Так есть же меню: Project/Modify skin options


если юниты скинов уже попали в проект,
то опции в Project/Modify skin options не помогут их оттуда убрать
15 авг 18, 12:30    [21642847]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10006
softwarer
Не вижу особого счастья. Имхо, гораздо более актуальна обратная задача


обратная задача - это фактически "выносим состав (т.е. частично - структуру) программы в настроечные XML-файлы".
Не в той степени, что полномасштабное dependency injection, со всякими там аспектами и доп-условиями, безусловно, но шаг в ту же сторону.
От "инверсии управления" естественно переходим к "инверсии состава" и далее в разных JVM и CLR к "инверсии структуры программы"

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

Да, я понимаю, надо писать юнит-тесты на наличие в собранном проекте каждой фабрики.
А если проект - жестко интерактивное GUI (или WWWUI) приложение - вставлять бэкдоры для юниттестов? Или тестировать одну программу, с DUnit вместо GUI, а заказчику отдавать другую программу?
А если у проекта разные издания с разными наборами фабрик?

Поэтому "классовый конструктор решает определения надобности юнита" - он убирает инверсию структуры, он заставляет в основном проекте явно задействовать тип из фабрики, задокументировать её необходимость в явном виде.
И попутно решить пробелму чрезмерной "чистки неиспользуемых юнитов"
15 авг 18, 12:31    [21642850]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3267
Arioch,

хороший ответ, фабрики классов без явного задания классов элементов - такое же зло как и uses в implementation. Ещё больше проблем они создают когда нарушают порядок финализации.
15 авг 18, 12:41    [21642879]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1882
Может доживем когда менеджмент юнитов будет из коробки на уровне компилятора. Чтоб ещё раскрутку инлайнов понимал. Хотя регистрилки и фабрики и ему не под силу
15 авг 18, 13:27    [21642971]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10006
kealon(Ruslan)
Ещё больше проблем они создают когда нарушают порядок финализации.


ну если нет круговой зависимости - то вроде не нарушают

а если сделал круговую зависимость, но при этом предполагаешь фиксированный порядок - сам дурак.

лично меня с инициализацией и финализацией больше огорчают дырки при смешиваниии статически загружаемых и динамически загружаемых BPL

Примерно как EXE ==> Common BPL ( Factories base class and list + Other Units ) <== динамически загружаемые BPL-плагины с регистрилками своих фабрик

Таки вот, с теми из Other Unit, которые используются в плагинах, но не используются в основном EXE - чехарда та ещё.

Вплоть до разрушения глобальных const X : array[...] of string = ( .... );
15 авг 18, 13:46    [21643023]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
roschinspb
Member

Откуда: С-Пб
Сообщений: 1511
JaDi
roschinspb,

речь шла про RFindUnit -- умеет искать и добавлять uses, искать неиспользуемые, сортировать.

Пощупал. Чето печально. Неиспользуемые юниты ни как не помечает. Нужные юниты находит примерно с тем же "успехом", что и стандартный Ctrl+Shift+A. Сортирует только по алфавиту, а хотелось бы в порядке использования. Может я что-то не докрутил... кто-то этим пользовался?
15 авг 18, 13:48    [21643028]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10006
kealon(Ruslan),

фабрики классов - изначально просто затычка в Java на предмет отстуствия типа TClass

да, потом на это навернули много дополнительного функционала, типа создания объектов РАЗНЫХ типов в отличие от каких-нибудь локальных и глобальных параметров. Иногда полезного, иногда мешающего.

соответственно в Delphi необходимости в фабриках просто не было, ввиду изначального наличия TClass
поэтому Delphi в практике использования фабрик естественным образом отстаёт - они нужна либо ради того самого дополнительного функционала, либо ради "сделать по книжке" и "портануть с Жабы готовый код" - т.е. намного реже.
15 авг 18, 13:50    [21643035]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1882
roschinspb
Пощупал. Чето печально. Неиспользуемые юниты ни как не помечает. Нужные юниты находит примерно с тем же "успехом", что и стандартный Ctrl+Shift+A. Сортирует только по алфавиту, а хотелось бы в порядке использования. Может я что-то не докрутил... кто-то этим пользовался?
У меня работает. И подчеркивает юниты. Правда в начале авешил в моей среде - пришлось допилить. И пришлось блог почитать чтоб понять как с плагином работать
15 авг 18, 14:02    [21643073]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10006
Мимопроходящий
14.08.2018 15:27, makhaon пишет:
> cnpack хорошо чистит

только в том случае, если все твои твои модули включены в проект явно.
если же модули проекта "ищутся в путях", то не фонтан.


кстати +1

я люблю CnWizards, особенно их подсветку структуры кода, но чистить им юниты - пробовал пару раз и плонял, что руками лучше
15 авг 18, 14:17    [21643107]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
Arioch
Member

Откуда:
Сообщений: 10006
white_nigger
Правда в начале авешил в моей среде - пришлось допилить


форкнул и залил на свой гитхаб?
15 авг 18, 14:17    [21643109]     Ответить | Цитировать Сообщить модератору
 Re: Какие новости в мире Delphi ?  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1882
Arioch
форкнул и залил на свой гитхаб?
Нунах. Локально фиксил. Собсно у меня удален ErrorInsite, а в плагине было обращение к его интерфейсу. Просто добавил проверку
15 авг 18, 18:50    [21643551]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 106 107 108 109 110 111 112 [113] 114 115   вперед  Ctrl
Все форумы / Delphi Ответить