Почему инструменты анализа не применяют рефакторинг? - PullRequest
0 голосов
/ 09 октября 2009

Я использую fxCop и NDepend в данный момент много, и я постоянно вижу элементы, сгенерированные их отчетами, которые являются "неправильными" 1 , и удивляюсь для себя, почему эти инструменты не могут просто пойти и сделать те исправления, которые они предлагают?

Я понимаю, что некоторые из них очень сложны, но что-то вроде полей должно быть помечено только для чтения, и их можно очень легко применить к информации, имеющейся в инструменте. Однако для меня это означает переход к инструменту, поиск элемента, размещение кода и т. Д. Занимает значительное время даже для самых маленьких элементов.

Я бы даже был рад, если бы мне пришлось подтверждать каждое изменение, подобно тому, как CodeRush Xpress делает с некоторыми его рефакторинги.

Так есть ли причина, по которой эти инструменты не делают этого?


1 Здесь неверное относительное значение, поскольку что-то вроде ошибок fxCop класса 1700, связанных с именами, не является плохим кодом, но новым разработчикам становится сложнее разобраться в коде.

Ответы [ 2 ]

3 голосов
/ 09 октября 2009

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

2 голосов
/ 10 октября 2009

Роб, это то, о чем мы (команда NDepend) думаем надолго. Но трогательный код является областью намного более чувствительной, чем просто ее анализ. И, как сказал Ритмис, зачастую для рефакторинга существует не только один единственный выбор.

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

...