Arquivo
Utilizando o Code Analisys – Maintainability Rules
Salve, Salve galerinha.
Conforme prometido no artigo anterior, estou postando uma explicação para um grupo de regras.
O grupo escolhido é “Maintainability Rules” ou “Regras de Manutenibilidade”.
Na minha opinião, as “Regras de Manutenibilidade” são as mais importantes e interessante que encontramos no Code Analysis. Com elas você poderá verificar a complexidade do código, verificar quais códigos são difíceis de dar manutenção ou qual deles dificultam leitura.
Segue abaixo uma tabela com as informações mais importantes.
CheckId | Descrição | Explicação | Índice no Code Metrics |
CA1500 | Variable names should not match field names | Nomes de variáveis da classe não devem coincidir com nomes de parâmetros. | |
CA1501 | Avoid excessive inheritance | Evite o excesso de heranças. No máximo, utilize 4 níveis na hierarquia. | |
CA1502 | Avoid excessive complexity | Evite o excesso de complexidade | Cyclomatic Complexity*¹ <= 25 : Aceitável |
CA1504 | Review misleading field names | Nomenclatura de campos dificultam a leitura. Como: Instancias de classe e variáveis não static (Shared VB) não devem começar com “s_”. Instancias de classe e variáveis static(Shared VB) não devem começar com “m_”. | |
CA1505 | Avoid unmaintainable code | Evite código com baixo índice de manutenibilidade. Tente dividi-lo em um número maior de métodos específicos. | Maintainability Index (MI)*² 0~10 : Ruim 10~20: Moderada >=20: Boa manutenibilidade |
CA1506 | Avoid excessive class coupling | Evite o excesso associação de classes com tipos e namespaces diferentes. Procure utilizar tipos e métodos com um baixo grau de acoplamento. | Class Coupling*³ >= 40: Ruim; 40~30: Moderada; <= 30: Boa manutenibilidade |
Informações adicionais
Cyclomatic Complexity*¹ : A complexidade ciclomatica mede o número de fluxos independentes através do método determinadas através do número número de ramificações condicionais.
A fórmula de cálculo encontrada no MSDN é a seguinte: Cyclomatic Complexity = nº arestas – nº nós +1
aresta: linha entre nós.
nós: ponto de ramificação lógica.
Complicado né? Para simplificar podemos pensar da seguinte forma. Cyclomatic Complexity = nº (if, while, do, case no switch(select VB))
Exemplos : http://msdn.microsoft.com/en-us/library/ms182212.aspx
Quando a complexidade Ciclomática não se aplica: Quando seu método tem apenas um switch(select no VB) com vários case. Ou quando não se pode dividir o método.
Maintainability Index (MI)*²: O “índice de Manutenibilidade” é calculado utilizado as seguintes métricas.
– Linhas de código.
– Volume do programa. É a medida da dificuldade de compreensão baseado no número de operadores e operandos no código
– Complexidade Ciclomatica.
Quando o índice de Manutenibilidade não se aplica. Quando seu método tem apenas um switch(select no VB) com vários case. Ou quando não se pode dividir o método.
Class Coupling*³: O índice de “Classes acopladas” é calculado a partir da somatória de classes altamente acopladas e de diferentes referencias utilizadas em seu código.
Quando a complexidade Ciclomática não se aplica: Ainda não encontrei um caso em que não se aplica.
Fonte: http://msdn.microsoft.com/en-us/library/ms182211.aspx
E mais uma vez… Espero que o artigo tenha sido claro, objetivo e prático para você já poder começar a usar.
Francisco Gonçalves
Começando a utilizar o Code Analysis
Neste artigo vou falar sobre utilização do Code Analysis no Visual Studio. Ele é uma ótima ferramenta para melhorar a manutenção do código, a clareza, Performance, portabilidade, segurança e outros itens. Muito bom para quem quer dar um “tapa” no código.
Em primeiro lugar você precisa ter instalado em sua maquina o Microsoft Visual Studio Team System Test Edition, pois o Code analysis só existe na versão de testes.
Para poder começar aplicar as regras você deve abrir o Solution Explorer, selecionar o projeto em que você vai aplicá-las, botão direito e propriedades.
Quando a tela de propriedades do projeto abrir selecione Code Analysis na aba lateral.
Esta é a tela de configuração do Code Analysis para seu projeto.
Habilite a opção Enable Code Analysis on Build (define CODE_ANALYSIS constant); quando habilitado permite que, quando o build for executado, também será feita a analise de código pelo Code Analysis.
A coluna da esquerda Rules Enabled During Code Analisys indica quais regras estarão habilitadas na análise de código.
A coluna da direita Treat Warning as Erroraltera o tipo de sinalização, de Warning(Default) para Error, da regra caso ela não for validada. Esta opção é interessante, porque assim você impede que os desenvolvedores compilem o fonte até que a alteração solicitada seja feita. Muito útil para manter a qualidade do software.
Minha dica é: Comece utilizando as regras de Maintainability Rules e Performance Rules pois elas farão uma grande diferença no seu projeto. Elas trarão facilidade na manutenção e um ganho de performance do seu código.
Espero que o artigo tenha sido claro, objetivo e prático para você já poder começar a usar.
Nos próximos artigos irei descrever os grupos de regras para você decidir qual utilizar.
Francisco Gonçalves