Какой самый быстрый способ определить, какой код будет затронут рефакторингом?

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

Щас пользуюсь

grep "classname" find . -regex .*\.java > использует имя_класса.txt

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

2 ответа

Решение

[Просто быть немного библиотекарем здесь:]

Поиск ссылок на метод / класс Java:

Как я могу найти все методы, которые вызывают данный метод в Java?

Как найти ссылки на класс в Eclipse?

Ссылки на аннотации Java:

Как проверить ссылки на аннотированные методы

Поиск ссылок на "производные" методы в Eclipse:

Eclipse Specific: Можно ли найти ссылки на использование производных методов в классе?

Как это сделать с VIM:

Можно ли найти использование Java-классов или методов в VIM?

И с Emacs:

Как найти ссылки на класс, метод, переменную в Emacs с помощью Etags?

Поиск (количество) ссылок на метод в C#:

Как программно определить количество ссылок на метод с C#

Приятно читать: как найти методы, которые не используются в C# /.NET:

Найти неиспользуемый код

Есть ли инструмент для поиска функций без ссылок (мертвый, устаревший код) в приложении C#?

О рефакторинге PHP- кода:

Инструменты для рефакторинга PHP-кода

Поиск ссылок в Smalltalk:

Найти ссылки на строку / символ / метод

Поиск ссылок в (Apple) XCode, кажется, популярный вопрос:

Найти ссылки на методы в Xcode

Xcode: просмотреть ссылки на переменную?

Поиск всех ссылок на переменную или метод в Xcode4

Хорошее решение - использовать JUnit и практиковаться в разработке через тестирование. После рефакторинга повторный запуск тестовых случаев покажет вам, была ли повреждена какая-либо существующая функциональность. Более того, поскольку вы на самом деле тестируете код, а не выполняете grep'ы над именами методов, вы можете получить полную обратную трассировку, что значительно упрощает отладку. Хорошее введение в JUnit можно найти здесь.

Другие вопросы по тегам