Encontre o que não é utilizado

Posted on by dobau
Share

Quem trabalha em um projeto que já “passou por várias mãos” sabe que existe muito código desnecessário poluindo seu projeto e que ajuda apenas a deixar seu projeto mais confuso. Passando por esse problema, resolvi procurar algum programa que detecta esse “lixo” (classe, métodos, etc não utilizados), acabei encontrando o ucdetector, um plugin para eclipse que busca todo o código desnecessário que existe em um projeto java.


UCDetector by ohloh


Esse plugin pode ser encontrado aqui. O manual de instalação podia ser acessado facilmente na sua página inicial em 25/08/2011, sendo bem fácil e prático de instalar e utilizar.


Quem for mudar seu código com base no relatório gerado pelo ucdetector ATENÇÃO com o alerta do site que diz:

Really want to change code?

The problems found by UCDetector, are only suggestions. Before changing code, you should really know what you are doing! If UCDetector tells you, that there are no references your code still may be used by:


  • Reflection
  • Frameworks like Spring, Hibernate or Eclipse which declare dependencies in property files, xml files (extension-points) …
  • Third party code, which is using your API
  • Jars in your workspace
  • To be continued…

Change visibility may cause problems with inheritance, reflection, instantiation…

It’s good idea to do a full text search in workspace for the piece of code, you want to change.


Sugiro então que após detectar as classes e métodos não utilizadas no projeto NÃO mude nada antes de analisar se o que aquilo realmente não é utilizado, um processo que eu sempre tento fazer é buscar pelo nome da classe ou método em todos os arquivos do meu projeto, frequentemente encontro classes referenciadas em xmls ou outros arquivos de configuração principalmente quando estou utilizando Spring, Hibernate, etc. Isso é necessário pois o ucdetector verifica apenas se o código é usado DIRETAMENTE em outras classes do projeto, ignorando assim arquivos de configuração (xml, properties, etc) e classes/métodos/atributos que são carregados e invocados dinamente (reflections).


Podemos concluir que o uso do ucdetector é muito útil porém não podemos confiar totalmente nele, devemos analisar mais profundamente se o que está sendo alterado/removido não vai realmente causar algum dano ao projeto, principalmente por geralmente se tratar de um projeto antigo o mesmo já deve estar em produção.


Posts Relacionados:

3 Comentários

  1. Wesley disse:

    Massa… será que não tem nada em .NET com o mesmo intuito?

  2. Rafael Alves disse:

    Então, meu projeto em específico era em java, por isso só procurei alguma ferramenta que pudesse me ajudar.

  3. Vinícius disse:

    Muito bom esse Plugin!
    Excelente dica!

Deixe o seu comentário:

- obrigatório*

- obrigatório*