Por Celito Muck Felipetto. Introdução Por que a padronização de código? Ela é realmente...

Post on 19-Apr-2015

114 views 2 download

Transcript of Por Celito Muck Felipetto. Introdução Por que a padronização de código? Ela é realmente...

Por Celito Muck Felipetto

IntroduçãoPor que a padronização de código? Ela é

realmente necessária?Padronização da padronização?Qual usar? Como usar?

Convenção de nomenclaturaNotação Húngara

bBusy : booleanchInitial : charcApples : count of itemsdwLightYears : double word (systems)fBusy : boolean (flag)nSize : integer (systems) or count (application)iSize : integer (systems) or index (application)

Convenção de nomenclaturaNotação Posicional

Máximo 8 caracteresApenas usava mnemônicos

BUSY : boolean WORDL : char APPLES : int LYEAR : double ISVAL : boolean (flag)

Convenção de nomenclaturaCamelCase:

isBusy : booleanlongWord : stringapples : intlightYear : doublevarWithALongName : float

Pascal:IsBusy : booleanLongWord : stringApples : intLight Year : doubleVarWithALongName : float

Convenção de nomenclaturaUnderscore & Hyphen (UPPER or lower)

is_busy : booleanlong_word : stringNUM_APPLES : int_light_year : doublefirst-letter : charVAR-WITH-A-VERY-LONG-NAME : float

Convenção de nomenclaturaPadrão C#:

Estrutura Nomenclatura Exemplo

Classe Pascal PessoaFisica

Interface ‘I’ + Pascal IProgramador

Método public, Propriedades

Pascal NomeCompleto()

Método private Camel Case calculaIdade()

Variável Public & Protected

Pascal PrimeiroNome

Variável Private Camel Case salarioInicial

Constantes Uppercase Underscored

PISO_SALARIAL

Convenção de nomenclaturaPadrão alternativo:

Estrutura Nomenclatura Exemplo

Classe Pascal PessoaFisica

Interface ‘I’ + Pascal IProgramador

Método public, Propriedades

Camel Case nomeCompleto()

Método private Camel Case calculaIdade()

Variavel Public & Protected

Camel Case primeiroNome

Variavel Private ‘_’ + Camel Case _salarioAtual

Constantes Uppercase Underscored

PISO_SALARIAL

IndentaçãoTabulação != 3 EspaçosFontes MonospacedNamespace não tem indentaçãoLimite da linha

IndentaçãoFunção quebrada:

Caso 1: nomeCompleto = metodoQueCaptaONome... nomeCompleto = metodoQueCaptaONome();

Caso 2: metodoMuitoComprido(metodoMuitoCom... metodoMuitoComprido( metodoMuitoComprido());

IndentaçãoInicio de Bloco

Mesma linha public void NomeDaFunção(){ ...}

Próxima linha (MS) public void NomeDaFunção(){ ...}

IdiomaEscopo do projetoEquipe de programaçãoMistura de idiomas

DocumentaçãoImportancia da documentaçãoO que documentar?C#

XML DocComentários com Tags

DocumentaçãoTags:

<summary> = Descrição da estrutura que segue

<param> = Descrição do parametro<returns> = Descrição do retorno<code> = Delimita codigo na documentação<see> = Referencia um membro externo<example> = Exemplifica a documentação

DocumentaçãoExemplo:

/// <summary> /// Retorna o nome completo da Pessoa/// </summary> /// <param name=“tratamento”> Tratamento a ser adicionado /// antes do nome </param>/// <example> /// Esse exemplo mostra como pode ser/// usado o metodo <see cref=“NomeCompleto"/>. /// <code> /// class ClasseTeste /// { /// static int Main() /// { /// NomeCompleto(false); /// } /// } /// </code> /// </example> public string NomeCompleto(string tratamento) { …}

Repositório de códigoSVN

Repositório centralizadoBom para pequenos grupos

GITRepositórios hierarquicosBom para projetos complexos

TODOO que é o TODO?

//TODO: Adicionar sons ao personagem;

Necessidade do TODOTODO direcionado

//TODO: [João] Fazer conexão com BD;

Sistemas mais completos:Redmine; Jira; Trac; FogBugz

FontesMSDN: Microsoft Developer Network

(msdn.microsoft.com)

Naming convention (programming): Wikipedia (en.wikipedia.org/wiki/Naming_convention_(programing))

Google...