Anda di halaman 1dari 15

C# .

NET
Boas prticas de
programao
Fabiano Roman Beraldi
Email: fabiano.beraldi@outlook.com

Boas prticas de programao


C# .NET

Este documento descreve boas prticas de programao na


plataforma .NET. Ns iremos ver:
Padres C# de nomenclatura;
Dicas para boas prticas de programao;
Qual a finalidade:
Escrever cdigos de qualidade e fcil manuteno;
Em quais situaes utilizaremos estes recursos:
No desenvolvimento de qualquer programa .NET;
Nota: apesar de existirem milhares de padres, podemos dizer que
nenhum deles est errado. O importante escolher e seguir um
padro de desenvolvimento.

A linguagem de programao C# case sensitive, ou seja,


sensvel a letras maisculas e minsculas.
O compilador faz distino entre letras com CAIXA ALTA e
caixa normal. Portanto importante nos basearmos nos padres
de nomenclatura Naming Guide C# .Net.
Os estilos de nomenclaturas que foram utilizados neste
documento, baseiam-se nos Capitalization Styles da Microsoft.
Nota: Os termos Pascal Casing e Camel Casing sero utilizados
neste documento.

Pascal Case
Descrio: a primeira letra do identificador e primeira letra de
cada palavra concatenada em maisculo. Use Pascal Case para:
Nome de classes e propriedades:
public class Pessoa
{
public int Id {get; set;}
public string Nome {get; set;}
public string EnderecoResidencial {get; set;}
}

Nome de mtodos:

public void RealizarVenda()


{
}

Camel Case
Descrio: primeira letra minscula e cada palavra concatenada
em maiscula. Use Camel Case para:
Nome de variveis:
int contagemTotal = 0;

Parmetros dos mtodos:

private int SomarNumeros(int primeiroNumero, int segundoNumero)


{
int valorDaSoma = primeiroNumero + segundoNumero;
return valorDaSoma;
}
Use o prefixo I com Camel Case para interfaces. Ex: IEntidade;

Dicas de
nomenclatura

D um nome significativo para suas variveis e evite abreviaes:


Correto:
string nomeCompleto;
DateTime dataDeNascimento;
Incorreto:
string nomComp;
DateTime datNasc;
No use caracteres simples para nomear suas variveis, como por
exemplo i, n, s, etc. Ao invs disto, use uma palavra como index,
nmero, etc. Uma exceo, seria no uso de loops:
for (i == 0; i < 10 ; i++)
{
}

Dicas de nomenclatura
(cont.)
No use underline (_) para variveis locais;
No utilize acentos ou espaos;
Variveis booleanas devero receber nomes que impliquem em
verdadeiro ou falso:
Ex.: bool existeTitulo;
No criar nomes que podem conflitar com palavras reservadas
do .NET Framework como where, string, etc.
A clareza nos nomes essencial, isto facilitar muito uma
manuteno futura no sistema;
Nomenclatura para projetos do Visual Studio
No criar itens dentro de uma Solution com o mesmo nome da
Solution porque o VS no saber quando estamos nos referindo ao
rootnamespaces e poder gerar erros;

Dicas de nomenclatura
(cont.)

Nomenclatura para projetos do Visual Studio (continuao)


Os nomes de projetos devem ser criados contendo o nome da
Soluo mais o nome do Projeto, exemplo:
Nome da soluo:
- PontoDeVenda
Nome dos projetos:
- PontoDeVenda.DAL
- PontoDeVenda.Repositorio
- PontoDeVenda.Webform
- PontoDeVenda.TestesUnitarios

Comentrios
Descrio: os comentrios podero ser utilizados para
identificao das funcionalidades dos mtodos como tambm
gerar documentao tcnica de mtodos para o sistema.
Sempre comentar os cdigos gerados principalmente partes
crticas ou complexas;
Os comentrios devem ser no mesmo nvel do cdigo. Use o
mesmo nvel da endentao. Exemplo:
Correto
//Atribui varivel o valor da data atual
DateTime dataAtual = DateTime.Now;
Incorreto
//Atribui varivel o valor da data atual
DateTime dataAtual = DateTime.Now;

Indentao e
Espaamento

Dicas:
Use TAB para indentao ao invs de espaos;
Use uma linha em branco para separar grupos lgicos. Exemplo:
Correto
string DigaOla (string nome)
{
DateTime horaAtual = DateTime.Now;
string mensagem = String.Empty;
string mensagemCompleta;
mensagem = Ol + nome;
mensagemCompleta = mensagem + , a hora atual +
horaAtual.ToShortTimeString();
return mensagemCompleta;
}

Indentao e Espaamento
(cont.)
Dicas (continuao):
Incorreto
string DigaOla (string nome)
{
DateTime horaAtual = DateTime.Now;
string mensagem = String.Empty;
mensagem = Ol + nome;
string mensagemCompleta;
mensagemCompleta = mensagem + , a hora atual +
horaAtual.ToShortTimeString();
return mensagemCompleta;
}

Use #region para agrupar mtodos ou declaraes relacionados.


Deste modo o cdigo ficar mais organizado.
Mantenha as variveis na parte superior;

Nomenclatura de Objetos
UI

Ao adicionar algum objeto para alguma interface de usurio (UI)


que podem ser tanto web como desktop devemos observar as
nomenclaturas das seguintes tabelas:
Windows Forms, WPF

Nomenclatura de Objetos
UI

Windows Forms, WPF (continuao)

Nomenclatura de Objetos
UI

WebPages, WebParts, WebForms

Referncias
http://
www.devmedia.com.br/padroes-de-desenvolvimento-seguindo-boas-praticas-de-progr
amacao/10751
http://devluciano.wordpress.com/2011/07/04/padres-de-nomenclaturas-naming-guide-cnet
/
http://pt.wikipedia.org/wiki/Case_sensitive

Anda mungkin juga menyukai