Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Чистка кода   Найти похожие ветки 

 
Dudao   (2004-03-20 04:00) [0]

Не подскажете ли утилиту для уборки и оптимизации кода Delphi ?
Код довольно-таки большой и вручную убирать лишние комментарии,
оформлять отступы сложно. Писать свою утилиту- не охота.


 
Германн ©   (2004-03-20 04:30) [1]

А как вы себе представляете критерии "лишности" комментариев?


 
Dudao   (2004-03-20 08:22) [2]

они избыточны, и не объективны


 
Sergey Masloff   (2004-03-20 08:26) [3]

google -> delphi formatter -> полно ссылок


 
Sergey Masloff   (2004-03-20 11:14) [4]

Dudao   (20.03.04 08:22) [2]
>они избыточны, и не объективны
И программа это будет решать? Напишешь такую нобелевская премия твоя.


 
Игорь Шевченко ©   (2004-03-20 13:10) [5]


> Не подскажете ли утилиту для уборки и оптимизации кода Delphi


Peganza Pascal Analyzer (www.peganza.com)


 
имя   (2004-03-20 13:11) [6]

Удалено модератором


 
Mox Fulder ©   (2004-03-20 13:28) [7]

Ух ты, какие умники появились!


 
Sergey Masloff   (2004-03-20 14:10) [8]

Игорь Шевченко ©   (20.03.04 13:10) [5]
>Peganza Pascal Analyzer (www.peganza.com)
Вещь классная но 120 у.е. дороговато за такого рода утилиту. ИМХО.


 
Игорь Шевченко ©   (2004-03-20 17:51) [9]

Sergey Masloff   (20.03.04 14:10)

Я давно мучился идеей разыскать нечто, что позволяет узнать "declared, but never used" не в рамках одного unit"а, а в рамках всего проекта, потому что висящие неиспользуемые функции, переменные и методы классов довольносильно загромождают проект, впрочем, что я рассказываю, это все и так известно :)
Судя по триалу этого Pascal Analyzer"а, он именно эту задачу довольно неплохо решает, только вот жалко, в триальном режиме он здорово оганичивает свою диагностику.

Для себя - конечно, дорого. Но свое писать еще дороже.


 
Dimaxx ©   (2004-03-20 23:57) [10]

Если в опциях проекта на вкладке Compiler в разделе Code generation стоит Optimization, то компилятор не будет включать в экзешник все неиспользуемые функции, переменные и прочее. Так что не мучайся, а пиши спокойно. В dcu будет все, а в экзешнике только то, что реально используется, вызывается и т.п.


 
Игорь Шевченко ©   (2004-03-21 00:42) [11]

Dimaxx ©   (20.03.04 23:57)

1) Речь идет о "чистке" исходного кода.
Если он будет замусорен неиспользуемыми функциями/переменными,методами, его будет довольно трудно сопровождать. Особенно в случаях, когда его объем исчисялется десятками или сотнями тысяч строк.

2) Компилятор включает очень многое, все виртуальные и динамические методы классов, и т.п.

3) Матчасть учить - оно рулез.


 
Piter ©   (2004-03-21 00:48) [12]

Dimaxx (20.03.04 23:57) [10]
Если в опциях проекта на вкладке Compiler в разделе Code generation стоит Optimization, то компилятор не будет включать в экзешник все неиспользуемые функции, переменные и прочее


По-моему, он вообще никогда не будет включать неиспользуемые функции в проект. Но уверяю тебя, Игорь об этом знает не хуже твоего :)

Хотя немного непонятно
Я давно мучился идеей разыскать нечто, что позволяет узнать "declared, but never used" не в рамках одного unit"а, а в рамках всего проекта

Это наподобие того, что если у класса есть public метод, но он нигде не используется - должно выдаваться предупреждение?


 
Piter ©   (2004-03-21 00:54) [13]

Игорь Шевченко (21.03.04 00:42) [11]
Компилятор включает очень многое, все виртуальные и динамические методы классов


а статические методы не включает?


 
Игорь Шевченко ©   (2004-03-21 01:31) [14]

Piter ©   (21.03.04 00:48)


> Это наподобие того, что если у класса есть public метод,
> но он нигде не используется - должно выдаваться предупреждение?


Да, именно это. Или в интерфейсной части объявлена функция которая используется только в том же юните. Или объявлены глобальные переменные, которые за давностью лет давно перестали использоваться.
Кстати, на том же сайте лежит бесплатная программа для определения нужности включения того или иного юнита в uses, и рекомендации по перемещению его из uses в разделе interface в uses в раздел implementation. Программа называется ICARUS, весит около мегабайта, мной регулярно используется с большой пользой.


> а статические методы не включает?


Если они не используются, то не включает. Статический метод класса - это самая обычная процедура/функция с дополнительным неявным параметром Self, поэтому линкер использует тот же подход, что для функций/процедур, не являющихся методами, когда принимает решение о включении или невключении функции в EXE-файл.


 
Dudao   (2004-03-21 06:26) [15]

на torry.net кое-что нашел, но очень замутный и старый софт.


 
Dudao   (2004-03-21 07:30) [16]

Peganza Pascal Analyzer (www.peganza.com)
-утилита, выдающая рипорты, как я понял и она к сожалению не походит.
Нужна программа, делающая из такого кода:


procedure TForm1.Something;vari:integer;
begin
beginbegin
         ...
   begin beginend;



procedure TForm1.Something;
var
i:integer;
begin
begin
   begin
         ...
   begin
begin
end;



т.е. нужно формирование красивого, читаемого, ступенчатого кода.
спасибо.


 
Игорь Шевченко ©   (2004-03-21 15:02) [17]

DelForEx - форматировщик исходного кода


 
Piter ©   (2004-03-21 18:03) [18]

Игорь Шевченко (21.03.04 01:31) [14]
> Это наподобие того, что если у класса есть public метод,
> но он нигде не используется - должно выдаваться предупреждение?

Да, именно это


а что с VCL делать тогда? И вообще со сторонними компонентами/модулями?



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.074 c
1-1082853146
val_5
2004-04-25 04:32
2004.04.11
препроцессорная переменная - где компил: D6 или D7


14-1082129497
X9
2004-04-16 19:31
2004.04.11
Assembler


1-1082487598
KLAUS
2004-04-20 22:59
2004.04.11
HELp строку из файла с LAbel


11-1067529739
Fly`
2003-10-30 19:02
2004.04.11
KOL. Proxies.dcu


4-1079688851
Desdechado
2004-03-19 12:34
2004.04.11
HBITMAP LoadBitmap(...)