Главная страница
    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.04 c
1-1080192480
ghostbusterr
2004-03-25 08:28
2004.04.11
Проблема DecimalSeparator


4-1079123806
dkDimon
2004-03-12 23:36
2004.04.11
Окно, которого нет в taskbar


3-1081268959
GetIt
2004-04-06 20:29
2004.04.11
Фильтрация


9-1070862678
Kair
2003-12-08 08:51
2004.04.11
Фигуры


1-1082464480
jiuraf
2004-04-20 16:34
2004.04.11
OleContainer неменет вид при потере фокуса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский