Чистка Delphi-кода?

Есть большой (несколько сот тысяч строк) проект на Delphi, который разрабатывается около 10 лет.

Полагаю, работал над ним не один десяток разработчиков. Следовательно, там можно увидеть всевозможные проявления человеческой глупости, халатности, криворукости и прочих неприятных вещей.

Хотелось бы немножко этот проект причесать, и максимально этот процесс автоматизировать (потому как вручную это может занять не одну неделю). А именно:

— удалить закомментированные блоки кода

— удалить код, который не линкуется в исполняемый файл

— удалить неиспользуемые uses

— удалить pas/dfm файлы, которые не относятся к проекту

— чтобы все предыдущие действия были полностью контролируемые


Ну, желательны еще разные плюшки, типа форматирования кода по шаблону, выявления потенциально опасных или просто подозрительных мест, и т.д. Но чистка кода (вышеназванные пункты) является приоритетной.
  • Вопрос задан
  • 5077 просмотров
Пригласить эксперта
Ответы на вопрос 7
@Monca
Автоматически не получится.
Uses можно не удалять, начиная с delphi 6 не нужные не подключаются.
Pas/dfm я удалял вручную, все что не были в файле проекта — потом возвращал, необходимые.
Форматировать к одному виду не советую — потом очень сложно сравнивать изменения.
Ответ написан
naum
@naum
Лучше ручками, пишется быстро, регулировать можно оптимально под себя. Лучше использовать готовые движки / компоненты для парсинга delphi-кода (их множество, многие доступны без заморочек) и удобного контроля в последующем. Посмотрите на torry.net.

Хотя есть ряд нетривиальных задач (допустим, оценка покрытия — coverage), которые лучше решать готовыми инструментами (допустим, триалом AQTime), ради экономии времени. Хотя и это можно решить самому.

Зато спустя пару дней получится решение, которые, имхо, не стыдно выложить на паблик и помочь многим в дальнейшем :)
Ответ написан
Gorthauer87
@Gorthauer87
Программист
А потому, что нужно было юзать VCS. И вообще… Нынешнее состояние Delphi напоминает «судороги умирающего носорога»(с)
Ответ написан
Рефакторинг большого проекта может затянутся на долгие месяцы, оно вам надо? Может рефакторить только потенциально глючные, тормозные участки, с целью видимой оптимизации работы?
Ответ написан
Majnik
@Majnik
Для форматирования посоветую GExperts (Experimental).
Для всего остального CnPack Wizards должен подойти.
Ответ написан
SegaZero
@SegaZero
для форматирования лучше DelForEx пока нет
чистка uses насколько я помню возможна в CnPack
а вот удаление закомментированного кода легко сделать любым редактором, поддерживающим регулярки. Например заюзать поиск в GExperts по \(\*.*\*\) и когда появятся результаты сделать замену на пустую строку (там есть пункт replace all items)
неиспользуемый код лучше всего удалять специализированным софтом. AQTime тут выше уже давали, могу посоветовать еще Pascal Analyzer

а вообще, рефакторинг — это занятие долгое, нудное и сложноавтоматизируемое
Ответ написан
Комментировать
POMA
@POMA
На мой взгляд, закомментированные блоки лучше не трогать - в будущем легче будет отследить историю изменений, при этом на конечный размер приложения они не влияют.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы