Escolar Documentos
Profissional Documentos
Cultura Documentos
Implementao - IV
Nomes
de forma completa e acurada; princpio fundamental da escolha de nomes; nomes orientados para o problema so melhores que orientados para a implementao; qualidade dos identificadores mais importante que qualidade dos comentrios; nome deve descrever o contedo e/ou uso do objeto;
Nomes
Identificadores em portugus:
infinitivo (de preferncia), imperativo ou indicativo presente; se a linguagem os permitir (Java); se o compilador o permitir.
2002 Wilson de Pdua Paula Filho
Nomes
Nomes longos:
Abreviaes:
evitar, se possvel: se necessrio, padronizar a forma de abreviao; colocar nome completo nos comentrios:
Nomes
Pronncia:
nomes devem ser pronunciveis: evitar nomes que precisem ser soletrados; deve-se poder ler o cdigo ao telefone, sem dificuldades;
Diferenciao:
nomes devem ser diferenciveis pelo seus primeiros caracteres: torna o cdigo mais fcil de ler; evitar diferenciaes atravs de sufixos numricos; exemplo: temp, temp2 .
Nomes
evitar; se houver necessidade de diferenciar entre identificadores de constantes, definies de tipos e variveis, prefervel usar sufixos (ex.: _c, _t, _v); este sufixo no deve ser a nica diferena entre dois identificadores;
Nomes
Evitar:
grupos {1, I, l}, {0, O}, {2, Z}, {5, S} e {6, G}; por exemplo, int para Indice da Nova Tabela;
abreviaes enganosas:
Nomes
Evitar:
nomes homfonos. nomes com erros de ortografia. nomes que muitas pessoas grafam de forma errada.
Nomes
ndices de malha:
usar os tradicionais i, j e k apenas em casos muito simples; preferir nomes significativos, como ContadorDeRegistros; cuidado especial no caso de malhas aninhadas; devem indicar significado do estado ( DadoPronto, TipoDeRelatrio); no qualquer coisa, como flag.
variveis de status:
Nomes
variveis booleanas:
usar nomes significativos, como Feito, Erro, Achou, Sucesso, que implicam um valor Verdadeiro ou Falso; evitar nomes que no indicam um valor lgico, como Status; evitar nomes negativos, como NoAchou.
Nomes
variveis temporrias:
nomes que indiquem o papel ou significado da varivel; evitar o uso de temp; prefixo comum para nomes do mesmo grupo; CorAzul, CorVermelha, CorVerde; nomes indicativos do significado (TotalDeCiclos); no de seu valor (Cinco).
2002 Wilson de Pdua Paula Filho
tipos enumerados:
constantes:
Estruturas de controle
Seqncia de execuo:
pela forma de diviso em funes; pelos nomes das funes; pelos nomes dos parmetros; pela documentao.
Estruturas de controle
Organizao do cdigo:
organizar para que possa ser lido de cima para baixo; minimizar o alcance (span) das variveis:
Estruturas de controle
Instrues correlatas:
Estruturas de controle
Ifs simples:
primeiro caso normal, depois excees; cuidado com caso de igualdade; caso normal depois do if, e no depois do else; evitar clusulas vazias de if; se no houver clusula else, comentar por qu:
Estruturas de controle
Cadeias de ifs.
if ( <caso 1> ) { <ao 1>; } else if ( <caso 2> ) { <ao 2>; } else if ( <caso n> ) { <ao n>; } else { < ao de exceo>; }
Estruturas de controle
No utilizar else final de uma cadeia de ifs para tratar caso restante:
Estruturas de controle
usar quando ordem dos casos irrelevante; classificar casos; manter juntos casos com mesmo cdigo; manter cada caso simples; usar uma de seleo simples. caso padro apenas para tratar excees:
Estruturas de controle
diferem pelo teste de terminao: no incio ( while () {} ); no final ( do {} while () ); no meio ( while (TRUE) {; if () break; } );
Estruturas de controle
cdigo de iniciao da malha deve ser colocado imediatamente antes dela; preferncia por tipos ordinais ou enumerados; sempre com nomes significativos.
Estruturas de controle
Estruturas de controle
Estruturas de controle
O uso de efeitos colaterais dentro do teste de terminao das malhas deve ser evitado.
Estruturas de controle
Cada malha deve executar apenas uma funo. Comprimento das malhas:
caber em uma tela ou um folha de listagem; usar no mximo trs nveis de aninhamento; em malhas longas, redobrar o cuidado com a clareza e a documentao.
Estruturas de controle
em casos extremos; onde ficaria mais ilegvel sem o goto do que com ele. para melhorar a legibilidade.
S usar o return:
S usar a recurso:
Estruturas de controle
Parti-las;
Usar funes booleanas. Empregar tabelas de deciso. Usar parnteses. Usar a regra de De Morgan.
Estruturas de controle
na direo dos pontos de uma reta: para selecionar os valores dentro de uma intervalo, usar a forma:
min < i && i < max // ---min iii max--i < min || max < i // iii min---max iii
Estruturas de controle
Retestar condies;
Expresses
operandos; operadores unrios; operadores multiplicativos; operadores aditivos; operadores relacionais; operadores lgicos.
Expresses
Operadores:
usar parnteses.
anotar em um comentrio.
Expresses
Efeitos colaterais:
por exemplo, chamada de funes com parmetros passados por referncia; ou que modifiquem variveis globais.
No usar valores de variveis modificadas por efeitos colaterais dentro da mesma expresso.
Em alguns casos, efeitos colaterais so de praxe; ler e testar fim de arquivo na mesma expresso, em C/C++.
Leiaute de programa
Princpios:
lei fundamental da formatao; espao em branco principal ferramenta de leiaute; exemplo - delimitadores consistentes; no necessariamente a esttica; exemplo - usar {} depois de um if.
Leiaute de programa
Espaamento em expresses:
-a !x
Leiaute de programa
Espaamento em expresses:
seguir imediatamente objeto anterior; ser seguidos por pelo menos um espao; por exemplo, vrgula e ponto-e-vrgula; sem espao depois da abertura; sem espao antes do fechamento: func(fix + var[linha, coluna])
smbolos parentticos ( ( ), [ ], { } ):
Leiaute de programa
indicar em comentrio;
Leiaute de programa
Declaraes de dados:
colocadas uma por linha; alinhamento do tipo: int idLinha; int idColuna; Ponto inferiorEsquerdo; Ponto superiorDireito;
Leiaute de programa
Linhas em branco:
sem linhas em branco ou endentao desnecessrias; declaraes devem ser separadas do cdigo executvel; exceo: variveis de curtssima durao;
pelo menos uma linha em branco deve separar comentrio do cdigo precedente. no exceder 80 caracteres.
2002 Wilson de Pdua Paula Filho
Leiaute de programa
Quebra de linhas:
parti-la nos pontos de melhor legibilidade; cada linha deve ser alinhada; e comeada por parmetro.
em listas de parmetros:
void mtodo(int parCurto1, float parCurto12, int primeiroParmetroDeNomeLongo, float segundoParmetroDeNomeLongo, float terceiroParmetroDeNomeLongo)
2002 Wilson de Pdua Paula Filho
Comentrios
Maus comentrios:
por exemplo: piadas; por exemplo: A = 1; por exemplo: A = 1; // // Faz A igual a 1. ; Faz A igual a 2. ;
bvios:
errados:
Comentrios
Bons comentrios:
focalizam o porqu;
Comentrios
Bons comentrios:
se indispensveis;
evitam abreviaes.
Comentrios
no o seu contedo; mdulos - nome, finalidade, problemas conhecidos; rotinas - nome, finalidade, parmetros, problemas conhecidos, excees.
exemplos de prlogos:
Comentrios
Prlogos de unidades:
exemplos: autor, nmero e data da reviso; incluir referncias a esses dados, caso a ferramenta de gesto de configuraes faa manuteno automtica; para reviso de cdigo, devem ser apresentados junto com o respectivo cdigo.
Comentrios
instrues para modificao; instrues para compilao. precedem sees importantes; descrevem processamento feito na seo;
Comentrios de bloco:
Comentrios
Em declaraes de dados:
unidades de dados numricos; faixa de valores aceitveis; significados codificados; limitaes sobre dados de entrada; indicadores em nvel de bit.
nome no comentrio consistente com nome no cdigo; dados globais sempre comentados.
Comentrios
instruo // comentrio em linhas isoladas (tendem a repetir o que a linha faz); quanto se aplicam a mltiplas linhas;
para comentar declaraes de dados; para anotaes de manuteno; para marcar fim de blocos ( //end if ).
2002 Wilson de Pdua Paula Filho
Comentrios
os respectivos comentrios; outras formas de documentao. por exemplo, com leiaute complexo.
Comentrios
Cdigo inacabado:
classificao:
cdigo no-funcional; cdigo parcialmente funcional; cdigo suspeito; cdigo que precisa de aperfeioamento;
cdigo parcialmente funcional o mais perigoso; todos os tipos devem ser marcados:
Comentrios