Существуют ли какие-либо инструменты, которые могут найти какие-либо частные функции без каких-либо ссылок? (Избыточные функции)
Причина в том, что функция могла быть создана и вызвана из нескольких областей, но по мере расширения и роста проекта эти два вызова могут быть удалены и заменены с лучшей альтернативой. Но метод все еще может оставаться. Мне было интересно, есть ли какие-нибудь удобные инструменты, которые будут просматривать код, определять частные функции и проверять, есть ли у них какие-либо ссылки, если нет, информировать пользователя о ситуации.
Не было бы слишком сложно создать его самостоятельно, но мне было интересно, есть ли какие-либо доступные приложения, которые могли бы сделать это с файлами, содержащими код?
Мой код находится в С#, но я могу представить, что этот вопрос охватывает множество языков кодирования.
Если ваш код имеет Unit Tests (он делает, правильно?;-), то запуск NCover позволит вам определить методы, которые никуда не вызывают. Если у вас нет модульных тестов, то это хороший повод использовать для начала их создания.
В общем случае я подозреваю, что инструменты покрытия кода хорошо подходят для большинства языков.
ReSharper выполняет задание.
Eclipse делает это автоматически для Java, не уверен, что вы можете иметь то же самое для С#.
Еще один вопрос может быть даже "Скомпилирует ли компилятор С# частные методы, которые фактически не используются?".
Моя догадка не будет, но вы никогда не знаете!
EDIT:
На самом деле, я думаю, что было бы трудно сказать, где используется метод. Он может быть закрытым, но он все равно может использоваться как обработчики событий. Невозможно проверить, но я уверен, что этот аспект сделает это немного сложнее.