Neste artigo vou apresentar 7 dicas importantes e simples que vão tornar o seu código C# mais limpo e fácil de manter. |
A princípio isso pode parecer uma tarefa para os 'experts' mas na verdade um código limpo e fácil de entender pode ser feito a partir de regras simples.
A seguir vou apresentar algumas regras básicas de padronização de codificação que podem ser seguidas e usadas por programadores de qualquer nível de conhecimento.
Code Smell (Um código que fede)
Code Smell (Um código
que cheira, fede) é uma palavra técnica usada para
descrever a qualidade do código - como um programador
escreve este código, sendo também utilizada para
descrever o código que você não gosta. Nesse sentido, é
sinônimo de feio, sujo, repetido, etc.
Um código que cheira é um código ruim mas que nem por
isso deixa de funcionar e por isso mesmo ele é difícil
de entender e de manter. Abaixo temos alguns motivos que
fazem com que um código seja definido como um código que
fede:
- Código duplicado
- Métodos muito grandes
- Classes com muitas variáveis de instância
- Classes com muito código
Agora, vamos ver como podemos escrever um código limpo e
evitar esses cheiros no programa. A maneira mais fácil e
simples e começar pela norma básica de codificação, ou
seja, pela convenção da nomenclatura.
Enquanto estamos codificando, vamos nos concentrar em nosso padrão de nomenclatura usada. Existem 2 tipos principais de padrões de nomenclatura que estamos usando nos dias de hoje.
A seguir veremos como aplicar esses padrões de forma correta para ter um código limpo.
1 - Ao nomear uma classe e seus métodos utilize o padrão Pascal Case
public class FuncionariosDetalhes
{
public void GetSalarioFuncionario()
{
//código
}
}
|
2 - Ao nomear variáveis e parâmetros utilize padrão Camel Case
public class FuncionariosDetalhes
{
private double salarioTotal = 0;
private double descontoImposto = 0;
public void GetSalarioFuncionario()
{
int valor = 3000;
}
}
|
3 - Ao utilizar Interfaces sempre use como prefixo inicial a letra "I" e depois siga o padrão Pascal Case
interface ICalculoDescontoSobreSalario
{
void GetValorAdiamento();
double GetPercentualImposto();
}
|
4 - Ao nomear classes, métodos, variáveis e interfaces utilize nomes significativos que sejam auto descritivos e pertinentes ao seu propósito
Vamos comparar dois exemplos de trechos de códigos onde no primeiro temos um código sujo e no segundo um código limpo:
public class Funcionario
|
public class CalculoSalarioFuncionario |
Qual dos dois trechos de código é mais fácil de entender ?
5 - Não utilize métodos longos, mas, se isso for realmente necessário use o recurso Region para facilitar a leitura do método
No código abaixo temos um método mais longo que pode se tornar difícil de ler e entender :
public class GetCalculoSalarioFuncionario { /// <summary> /// Calcula o valor do salário líquido de um funcionário /// </summary> /// <param name="codigoFuncionario"></param> /// <param name="numeroHorasExtras"></param> /// <returns></returns> public float GetValorSalarioLiquido(string codigoFuncionario, int numeroHorasExtras ) { float salarioBasicoMensal = GetSalario("FUNCI100"); float valorDeducoesINSS = salarioBasicoMensal * (10 * salarioBasicoMensal / 100) ; float valorImpostoRenda = salarioBasicoMensal * (20 * salarioBasicoMensal / 100); float valorHorasExtras = numeroHorasExtras * (salarioBasicoMensal / 240); float valorSalarioLiquido = salarioBasicoMensal + valorHorasExtras - valorImpostoRenda - valorDeducoesINSS; return valorSalarioLiquido; } |
Aplicando o recurso Region ao código podemos recolher o código para ter uma visão geral do método facilitando o entendimento do código:
6 - Remova namespaces desnecessários ao código
Remover namespaces não utilizados no código limpa o código e facilita a leitura.
Para fazer basta clicar com o botão direito do mouse sobre os namespaces e a seguir clicar em : Remove and Sort Usings
7 - Use o recurso de Indentação e espaçamento para tornar o código mais fácil de ler e entender
1. Use TAB para indentação. Não use espaços. Defina o tamanho do Tab como igual 4.
2. Comentários devem estar no mesmo nível que o código (usa o mesmo nível de recuo).
//Formato de uma mensagem e exibição
string mensagemCompleta = "Olá" + nome;
DateTime dataAtual = DateTime.Now;
|
//Formato de uma mensagem e exibição string mensagemCompleta = "Olá" + nome; DateTime dataAtual = DateTime.Now; |
Usando Code Metrics do Visual Studio 2017
O Code Metrics é uma ferramenta do Visual Studio que calcula e exibe relatórios relacionados a métricas de código. Podemos usar o recurso Code Metrics do VS 2017 para calcular os seguintes itens no código da nossa solução :
Para executar o Code Metrics acione o menu Analyze -> Calculate Code Metrics -> For Solution
Para o nosso exemplo obtivemos os seguintes resultados:
Usando o StyleCop do Visual Studio 2017
Podemos utilizar o StyleCop para melhorar a manutenibilidade, o estilo e a padronização do código. Se você não tem o StyleCop instalado pode fazer isso via menu Tools -> Extension and Updates;
Clique em Online e localize StyleCop clicando no botão para download:( A instalação irá ocorre depois...)
Após instalar a ferramenta abra o projeto que deseja verificar e
Antes de executar você pode abrir o arquivo de configurações do StyleCop que contém todas as regras que você deseja utilizar no seu projeto.
Ao executar o StyleCop em seu projeto o VS irá apresentar todos os alertas referentes ao StyleCop.
No exemplo eu destaquei dois alertas referente a classe Program do projeto; um indicando que a classe não tem uma documentação e outro informando que a mesma não possui um modificador de acesso.
Agora cabe a você avaliar os alertas, fazer as correções e assim melhorar o seu código.
E assim, com apenas essas 7 dicas simples e práticas seu código vai se elevar de nível tornando-se mais fácil de ler, entender e manter.
"Se dissermos que
temos comunhão com ele (Deus), e andarmos em trevas, mentimos, e não praticamos
a verdade."
1 João 1:6
Referências: