Visual Studio 2005 – O poder da análise de código

 

O Visual Studio Team System  (VSTS) é uma ferramenta moderna e poderosa para todos os indivíduos de uma equipe focada no desenvolvimendo de software, desde o arquiteto até o testador do software. Neste artigo irei abordar uma funcionalidade bastante útil e interessante no VSTS, o Code Analysis. Esta funcionalidade é mais focada para o desenvolvedor e para o testador que irá escrever algum código de teste. O Code Analysis é uma ferramenta dentro do VSTS que de uma forma rápida e fácil analisa o código escrito e procura por erros, dá sugestões de melhoramentos no código e alerta em caso de violações de padrões na escrita do código.

 

O Code Analysis disponível no VSTS pode ser utilizando tanto para código gerenciável, como C# e VB.NET, como para código não gerenciável, como C e C++. Neste artigo irei abordar apenas os aspectos do Code Analysis para o código gerenciável.

 

Antes de detalhar o funcionamento do Code Analysis, é interessante analizar a necessidade de um analizador para o código escrito pelo desenvolvedor.  È bastante interessante ter um analisador de código, pois é difícil fazer com que desenvolvedores possam seguir boas práticas e também que eles tenham consistência no código. Documentação também é outro aspecto necessário no processo de desenvolvimento de software, mas não é uma prática comum de muitos. O Code analysis do VSTS é muito útil neste ponto, pois ele oferece sugestões em conversões de nomes, dicas de performace e segurança.

 

O Code Analysis fornece uma interface gráfica integrada a IDE do Visual Studio 2005, porém esta ferramenta ainda disponibiliza uma ferramenta de linha de comando chamada de Managed Code Analysis, anteriormente esta ferramenta era chamada de FXCop. Mesmo com outro nome, o nome FXCop ainda é usado dentro da documentação do VSTS .Esta ferramente tem a vantagem de ser mais flexível que a ferramenta gráfica integrada ao VSTS.

 

O Visual Studio Team System possui aproximadamente 200 regras de análise de código, estas regras são um conjunto de regras de boas práticas recomendadas pela Microsoft, entretanto, a ferramenta é flexível o bastante para que qualquer pessoa também possa criar suas regras de análise de código e adicioná-la ao Code Analysis. A tabela em seguinda mostra por categorias a classificação de regras separadas por pontos críticos que evolvem um processo de desenvolvimento de código, lembrando que nem todos estes pontos mostrados nesta tabela precisam esta em um processo de desenvolvimento de software.

 

São os grupos:

 

GRUPOS

NÚMERO DE REGRAS

DESCRIÇÃO

Design

60

Focado em interfaces e estrutura de código

Globalização

7

Boas práticas no suporte para a internacionalização do código escrito

Interoperabilidade

16

Focado na interoperabilidade no correto uso do COM

sustentabilidade

3

Regras para deixar o código mais fácil de manter no futuro

Mobilidade

2

Regras para deixar o código mais adaptável para funcionar em dispositivos móveis

Nomes

20

Regras para padrões em nomes

Desempenho

19

Regras que ajudam a detectar pontos no código que podem ser otimizados

Portabilidade

2

Regras que ajudam a localizar trechos que podem dar trabalho na portabilidade

Confiabilidade

5

Regras que ajudam a detectar problemas como liberação de memória alocada, melhoramentos no coletor de lixo.

Segurança

24

Regras para ajudar a identificar falta ou erros na segurança

 

Por default o Code Analysis esta desabilitado, antes de se usar é preciso habilitá-lo. Irei criar um pequeno projeto Windows Forms para demostrar a utilização dele.

 

Criaremos um simples projeto windows forms que envia e-mails, não irei explicar a lógica da aplicação. A imagem a seguir dá um overview do projeto:

 

mdvspacfig01.jpg 

 

Para habilitar o Code Analisys no VSTS temos que ir as propriedades do projeto  projeto e na opção Code Analysis Habilitar o checkbox -  “Enable Code  Analysis ( defines CODE_ANALYSIS constant )”. Com esta opção habilitada, durante a compilação o VSTS irá analisar todos estes itens de regras de análise no código.  Existe a possibilidade que eu determine em quais processos ( Debug  ou Release ) o Code Analysis irá analizar e também posso determinar se o status das mensagens seja apenas um aviso, então a compilação prossegue normalmente ou troque o status da mensagem para erro.

 

A figura a seguir demonstra melhor estas duas opções.

 

mdvspacfig02.jpg 

 

Depois da compilação e o status das mensagens no modo aviso, “Warning”, a taleta Erros List mostra todos os avisos gerados pelo  Code Analysis. Na figura a seguir temos vários exemplos de avisos. Os avisos estão relacionados aos grupos mostrados na tabela passada. A figura mostra que temos avisos nos grupos relacionados ao uso, Design e globalização.

 

mdvspacfig03.jpg 

 

Outro fato interessante é que o Code Analysis cria um arquivo xml com todos os avisos gerados. Com isso possibilita que quem estaja lendo os avisos ou erros gerados pelo Code Analysis tenha as mensagens em um formato mais amigável do que mostra no VSTS, neste arquivo existe um detalhamento mais completo da regra de boa prática que foi violado. A figura a seguir mostra este arquivo XML de uma forma mais detalhada.

 

mdvspacfig04.jpg 

 

O arquivo fica na pasta bin, debug ou release, do projeto neste formato: [NomeProjeto].exe.CodeAnalysisLog.

 

Neste artigo vimos o poder do Code Analysis, uma ferramenta integrada ao Visual Studio Team System que ajuda muito o trabalho de todos da equipe do processo de desenvolvimento de Software, principalmente do desenvolvedor. Em outros artigos veremos como customizar e criar nossas próprias regras para incluir no Code Analysis.

 

-- Marcelo Diniz