Сведения о вопросе

NOTtoday

05:58, 23rd August, 2020

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

Просмотров: 432   Ответов: 7

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

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

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

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

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

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

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

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


Ну, желательны еще разные плюшки, типа форматирования кода по шаблону, выявления потенциально опасных или просто подозрительных мест, и т.д. Но чистка кода (вышеназванные пункты) является приоритетной.



  Сведения об ответе

DAAA

05:10, 25th August, 2020

Автоматически не получится.
Uses можно не удалять, начиная с delphi 6 не нужные не подключаются.
Pas/dfm я удалял вручную, все что не были в файле проекта — потом возвращал, необходимые.
Форматировать к одному виду не советую — потом очень сложно сравнивать изменения.


  Сведения об ответе

SEEYOU

16:23, 1st August, 2020

Лучше ручками, пишется быстро, регулировать можно оптимально под себя. Лучше использовать готовые движки / компоненты для парсинга delphi-кода (их множество, многие доступны без заморочек) и удобного контроля в последующем. Посмотрите на torry.net.

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

Зато спустя пару дней получится решение, которые, имхо, не стыдно выложить на паблик и помочь многим в дальнейшем :)


  Сведения об ответе

screen

21:06, 1st October, 2020

А потому, что нужно было юзать VCS. И вообще… Нынешнее состояние Delphi напоминает «судороги умирающего носорога»(с)


  Сведения об ответе

SKY

17:48, 21st August, 2020

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


  Сведения об ответе

baggs

20:24, 4th August, 2020

Для форматирования посоветую GExperts (Experimental).
Для всего остального CnPack Wizards должен подойти.


  Сведения об ответе

KOMP

10:21, 3rd August, 2020

для форматирования лучше DelForEx пока нет
чистка uses насколько я помню возможна в CnPack
а вот удаление закомментированного кода легко сделать любым редактором, поддерживающим регулярки. Например заюзать поиск в GExperts по \(\*.*\*\) и когда появятся результаты сделать замену на пустую строку (там есть пункт replace all items)
неиспользуемый код лучше всего удалять специализированным софтом. AQTime тут выше уже давали, могу посоветовать еще Pascal Analyzer

а вообще, рефакторинг — это занятие долгое, нудное и сложноавтоматизируемое


  Сведения об ответе

SEEYOU

10:38, 15th August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться