NDepend – Você realmente conhece seu código?

Além de realizar vários tipos de métricas ele também pode montar uma matriz de dependência onde se pode visualizar facilmente as dependências do seu sistema.

Após instalar o NDepend, você deve iniciar um novo projeto, escolher uma pasta e dar a esse projeto. Feito isso a tela abaixo nos é apresentada.

Podemos aqui adicionar os assemblies de uma solução. É isso que vou fazer, vou pedir para o NDepend analisar o ComicReaderX. Ao carregar os assemblies o NDepend mostra os assemblies diretos do sistema e também os indiretos, que ele chama de “Tier Assemblies”. Veja o resultado abaixo.

Quando iniciei o projeto ComicReaderX.Viewer, no Visual Studio escolhi como target o .NET 3.5 e para minha surpresa o NDepend me mostra que minha solution não está referenciando nada do .NET 3.5. Só nessa tela já vemos um recurso ótimo do NDepend.

Ao pressionar F5 a análise é iniciada e um relatório é exibido, dentre as análises feitas algumas me chamaram a atenção:

Assemblies Dependency Diagram

Nesta análise os assemblies de nossa solução estão em azul, e os que nós referenciamos em amarelo.

Se voltarmos ao NDepend vamos ver a matriz de dependência:

 

Cada cruzamento que possui um número, esse número é a quantidade de dependências existentes. Clique 1 vez no cruzamento que desejar e uma imagem mostrando os detalhes dessa dependência será exibida. Veja aqui algumas dessas dependências.

Voltando ao relatório temos aqui uma parte interessante de métricas

Lines of code: É a quantidade linhas que o código possui, desconsiderando os {} e apenas código concreto é levado em conta nessa análise ou seja, é uma contagem lógica e não física. O NDepend consegue isso ao ler os arquivos PDB

Percentage Code: Pode ser utilizado para garantir alguma qualidade de código, onde um assembly ou método deve estar comentado entre 20-40%, se for mais que isso pode ser considerado um abuso para quem está utilizando o código.

Novamente ao observar a tela do NDepend, temos outra parte interessante, na figura abaixo:

Vemos acima uma análise de métodos muito longos, muito complexos e pouco comentados. Vale dizer aqui que o NDepend oferece uma linguagem de query que permite a nós explorarmos o código da maneira que desejarmos. Para mais detalhes dessa linguagem visite o NDepend .

Métodos muito longos: o NDepend interpreta que métodos com mais de 20 linhas são difíceis de se entender e manter, por isso são considerados longos.

Métodos pouco comentados: Ao clicar na linha “Methods poorly commented” do lado direito da tela do NDepend o janela CQL Query Results apresenta com detalhes os métodos que se encontram nessa categoria, conforme imagem abaixo:

Methods too complex: É o numero de decisões contidas em um método, levando em consideração também a quantidade de métodos que uma classe possui. Essa decisões são interpretadas pelas expressões IF, while, for, foreach, case, default, continue, goto, &&, ||, catch, operador ternário ?:, ??.

Voltando ao relatório o NDepend sugere várias alterações, como métodos que devem ser sealed. Inclusive na figura abaixo vemos um exemplo da linguagem de query disponível.

Até mesmo métodos que não seguem o determinado padrão de nomenclatura são relacionados:

Conclusão

Ao utilizar o NDepend parece que um outro código nos é revelado. Posso dizer que seu uso é muito importante para se corrigir e prevenir problemas. Com ele ainda é possível manter a qualidade de código dentro de uma equipe e se você utiliza CI, o NDepend pode ser incluído nas tarefas no NAnt, no CC.Net, no MSBuild, Além de ler os resultados também do NCover e de integrar também ao VS2008.

Sem dúvida uma incrível ferramenta de apoio.

Esse post foi publicado em Arquitetura. Bookmark o link permanente.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s