MouseOver Studio

MouseOver Studio header image 2

Melhora a leitura de teu código com essas dicas!

August 25th, 2007 por Diego Carrion · 4 comentários

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!

Tags: programação

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 :D

  • 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é :D

    Obrigado pela participação Renato :)

Deixar um comentário