Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.053 c
9-1069517788
Pa5ha
2003-11-22 19:16
2004.04.11
Direct3D Эффекты


14-1082202368
garry79
2004-04-17 15:46
2004.04.11
Народ, где можно поискать avi шки или gif ы для заставок


6-1075729628
LordBTR
2004-02-02 16:47
2004.04.11
Структура GROUP_USERS_INFO_0.


8-1071168129
VasRog
2003-12-11 21:42
2004.04.11
Поворот и сдвиг картинки


11-1068215299
SPeller
2003-11-07 17:28
2004.04.11
Глюк с формой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский