Какие функции вы ищете (или используете чаще всего) в инструментах рефакторинга? - PullRequest
4 голосов
/ 15 февраля 2010

Я знаком с основами, такими как «Метод извлечения». Но это все, что я использую. Какие еще есть? Это может включать в себя функции инструмента рефакторинга, а также макросы, которые вы пишете сами.

Ответы [ 4 ]

3 голосов
/ 15 февраля 2010

Из Решарпер

  • Функция безопасного переименования.
  • Элемент / Подсветка переменной.
  • Обнаружение ошибок на лету
  • Импорт пространств имен

Кроме того, очень хороший Макрос для использования (это также поможет вам создать свой собственный)

Макрос Visual Studio: свернуть обозреватель решений

Макрос, который сворачивает все дерево узлы в обозревателе решений ...

Это очень полезно в больших решениях.

2 голосов
/ 15 февраля 2010

В настоящее время я использую IntelliJ IDEA, чаще всего

  • Переименовать (он также может переименовывать геттеры / сеттеры и ссылки в комментариях, литералах и даже не в файлах Java, таких как файлы отображения Hibernate)
  • Введите переменную / константу / поле / параметр
  • Встроенная переменная / константа / поле
  • Метод извлечения, конечно (мать всех рефакторингов)
  • Изменить подпись метода (очень полезно)

А потом еще гораздо больше, которые нужны реже, но когда они нужны, они нужны сильно :

  • Извлечение интерфейса / суперкласс / класс
  • Метод перемещения / класс

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

ОТО, архетип рефакторингов - это метод извлечения, потому что автоматизировать его гораздо сложнее. Может быть много подводных камней, таких как возможное столкновение имен с методом супертипа (или еще хуже: непреднамеренное переопределение), параметры ввода / вывода и т. Д. Так что это был своего рода пороговый тест для инструментов автоматического рефакторинга в течение длительного времени, хотя я поверьте, к настоящему времени обычные справляются с этим хорошо.

1 голос
/ 15 февраля 2010

В дополнение к тем, о которых упоминает @astander, я использую Convert Local Variable to Field (и наоборот) с некоторой частотой. И когда мне это нужно, Pull Up (то есть сделать метод на подклассе методом вместо суперкласса) ДЕЙСТВИТЕЛЬНО приятно иметь.

0 голосов
/ 16 февраля 2010

В IDEA в дополнение к тому, что упомянул Петер Тёрёк, я использую много:

  • Потяните вверх
  • толкать элементы вниз
  • Безопасное удаление

И некоторая полезная генерация кода (реализовать метод, переопределить метод, сгенерировать конструктор).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...