Jeremy Jarrel fez recentemente um post titulado Três fáceis ¿refactoramentos? para facilitar a leitura de teu código onde ele deu três dicas para fazer nossos códigos mais fácil de ser lidos e conseqüentemente, dar manutenção neles. Os leitores responderam bem e deram outras quatro dicas que Jeremy adicionou ao post original. Ao final, as sete dicas foram as seguintes:
Substituir o operador “not” com uma comparação “false”
if (!isNumeric(xpto))
por
if (isNumeric(xpto) == false)
Utilizar variáveis com nomes simples pra referenciar métodos complexos
if (string.isNullOrEmpty(nome) == false)
por
bool eNomeValido = (string.isNullOrEmpty(nome) == false); if (eNomeValido)
Utilizar comentários para especificar parâmetros booleanos
adaptador.openConnection(@"C:\data\records.mdb",
true /*utilizarSeguridadeIntegrada*/,
false /*utilizarConnectionPool*/);
Console.write(adaptador.getValue(0 /*NomeDaCompanhia*/));
Utilizar enums
Substituir parâmetros booleanos por variáveis
adaptador.openConnection(@"C:\data\records.mdb", true, false);
por
bool utilizarSeguridadeIntegrada = true;
bool utilizarConnectionPool = false;
adaptador.openConnection(@"C:\data\records.mdb",
utilizarSeguridadeIntegrada, utilizarConnectionPool);
Substituir parâmetros numéricos por variáveis
Console.write(recordSet(5));
por
int dataNacimento = 5; Console.write(recordSet(dataNacimento));
Substituir indexes em loops por variáveis com um significado claro
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 50; j++) {
por
for (int linha = 0; linha < 10; linha++) {
for (int coluna = 0; coluna < 50; coluna++) {
Alguém têm outra dica? Seja bem vinda!
4 respostas ate agora ↓
1 Rodrigo Fante // Aug 27, 2007 at 4:06 pm
Grande post…
Apesar de eu não concordar com o primeiro exemplo:
if (!isNumeric(xpto))
Prefiro e considero mais fácil de ler o primeiro.
Mas de qualquer forma, muito bom mesmo!
to sempre visitando aqui mas comento pouco, mas estou acompanhando
2 Diego Carrion // Aug 27, 2007 at 4:53 pm
Concordo plenamente com você Rodrigo, eu também acho o
!isNumeric(xpto)
mas fácil de ler.
Coloquei aquela dica porque estava no post depois de ser sugerido por um dos comentaristas original e porque algumas pessoas no trabalho me tinham mencionado que o achavam melhor o segundo caso.
Imagino que é questão de costume.
Obrigado pela participação
3 Renato Santos // Aug 29, 2007 at 12:28 pm
Não concordo com o 1º ; com o do For; e com esse if (string.isNullOrEmpty(nome) == false) que podia ser:
if (!string.isNullOrEmpty(nome) )
Isso que ele propõe que seja alterado, influi muito na produtividade, não é invenção de moda.
Agora se você esta programando para pessoas mais leigas no assunto ou com menos experiência, realmente as técnicas descritas por ele seriam de um bem maior para a equipe.
Acho que o real questionamento dele é esse, as vezes as pessoas(ou público alvo) veêm algo e não sabem o que ele realmente faz e ou tem dúvidas a respeito do seu comportamento.
Abraço.
4 Diego Carrion // Aug 29, 2007 at 12:49 pm
Um problema é que não sempre todas as pessoas de um time possuem a mesma experiência e a mesma facilidade para entender os códigos.
Por exemplo, pra mim é mais confortável escrever e ler código do seguinte tipo:
return (x) ? 1 : 0;
que
if (x) {
return true;
} else {
return false;
}
mas tem pessoas na minha equipe que se perdem com o primeiro caso, paciência né
Obrigado pela participação Renato
Deixar um comentário