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

20
Por Celito Muck Felipetto

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

Page 1: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

Por Celito Muck Felipetto

Page 2: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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

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

Page 3: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.
Page 4: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.
Page 5: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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)

Page 6: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

Convenção de nomenclaturaNotação Posicional

Máximo 8 caracteresApenas usava mnemônicos

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

Page 7: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

Convenção de nomenclaturaCamelCase:

isBusy : booleanlongWord : stringapples : intlightYear : doublevarWithALongName : float

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

Page 8: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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

Page 9: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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

Page 10: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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

Page 11: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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

Page 12: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

IndentaçãoFunção quebrada:

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

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

Page 13: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

IndentaçãoInicio de Bloco

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

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

Page 14: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

IdiomaEscopo do projetoEquipe de programaçãoMistura de idiomas

Page 15: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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

XML DocComentários com Tags

Page 16: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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

Page 17: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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) { …}

Page 18: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

Repositório de códigoSVN

Repositório centralizadoBom para pequenos grupos

GITRepositórios hierarquicosBom para projetos complexos

Page 19: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

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

Page 20: Por Celito Muck Felipetto. Introdução  Por que a padronização de código? Ela é realmente necessária?  Padronização da padronização?  Qual usar? Como.

FontesMSDN: Microsoft Developer Network

(msdn.microsoft.com)

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

Google...