privados de classe Metodos publicos de instancia Metodos protegidos de instancia Metodos privados de instancia Porque: e uma pratica geralmente aceita, evite que se fique procurando por variaveis, garante que a leitura de um source seja como a leitura de um artigo de jornal: dados genericos em cima, dados detalhados abaixo, com nivel crescente de granularidade e decrescente de abstracao de cima para baixo. Para isso os metodos que sao chamados por outras classes ficam acima, e os chamados pela propria classe abaixo. Com isso voce precisa ler apenas o topo da classe para saber o que ela faz e como ela funciona apenas visualizando sua interface implicita sem se aprofundar em sua implementacao. Propriedades (privadas/protegidas/publicas) Use PascalCase para o nome de propriedades. Use preferencialmente substantivos e predicados nominais. Exemplo: Nome, DataNascimento Porque: alem de facilitar a leitura, trata-se de objetos pertencentes a outro, como pecas de algo maior, portanto todos substantivos. Esta de acordo com as praticas da Microsoft para o .net Fields ou Variaveis de instancia ou Member Variables Publicos : nao devem existir Privados: aplicar camelCase precedido de _ Exemplo: _dataNascimento Porque: Esta em acordo com as praticas comuns do mercado para linguagens derivadas de _, ajuda a separar os campos privados dos argumentos de metodos / constructors sem a necessidade do uso do this, isola essas variaveis da digitacao acidental (porque obriga a digitacao do _ no inicio, excluindo-as do intellisense / autocomplete). Variaveis Locais Use camelCase para os nomes de variaveis locais, use nomes significativos, evite prefixos e abreviacoes a nao ser que sejam bem conhecidas, nao use notacao polonesa. Exemplo: enderecoServidor, connectionString Porque: alem de ser facil de ler e consistente com a metodologia da Microsoft Metodos Use PascalCase para nomear os metodos. Use o formato Verbo ou Verbo+Complemento para nomear os metodos. Se o verbo for intransitivo o metodo nao deveria ter parametros. Exemplo: Salvar(grupoDeFuncionario) Excluir(tipoDeTarefa) ListarEntreDatas(dataInicial, dataFinal) Porque: Consistente com o .net framework e facil de ler. Verbos expressam acoes, por isso sao melhores que substantivos para expressar metodos. E natural se ler e escrever dessa forma Argumentos de Metodos Use camelCase para argumentos de metodos, use substantivos. Se o nome de um metodo contem um verbo, os argumentos devem ser complementos desse verbo. Exemplo: CalcularReajuste(porcentagemAumento) Salvar(grupoDeFuncionario) Excluir(tipoDeTarefa) ListarEntreDatas(dataInicial, dataFinal) Porque: mais facil de ler e entender. Tudo que pode ser verbalizado pode ser melhor armazenado pelo nosso cerebro. E condizente com as praticas da Microsoft no .net. Ainda Sobre Argumentos de Metodos Se voce precisar de de mais de 3 argumentos no seu metodo e/ou precisar usar parametros nomeados ha uma grande chance de voce estar simplesmente enrolado e seu metodo precisar ser refatorado. Verifique se seu metodo nao esta com responsabilidades demais. Se voce passa argumentos booleanos ou enums para um metodo onde ele tomara uma acao diferente dependendo do parametro e uma evidencia clara de que voce precisa decompor este em dois ou mais metodos. De uma olhada nos padroes de projeto GOF "Template Method" e "Strategy" que eles podem de dar uma ideia de como refazer estes metodos. Porque: Metodos