RecordNumber batidas RecNo e CustomerRecordNumber batidas RecordNumber. CustomerNumberCannotBeZero é um nome melhor para um booleano do que fazer CustNo > 0. Nomear é difícil, mas se você reservar um tempo, poderá dar a tudo um nome adequado. E se você perceber que precisa de um nome diferente, ter a renomeação de refatoração disponível deve encorajá -lo a nomear livremente as coisas de forma clara e precisamente. Nomes claros e expressivos são sempre vencedores.

Extraia variável

Com muita frequência, entramos em pressa quando estamos codificando. Por exemplo, digitaremos algo assim:


If CalculateInterestRate(GatherAllInputs()) > 0.6 {
  …
}

Em outras palavras, passamos um resultado de função diretamente em outra função como parte de uma expressão booleana. Isso é … problemático. Primeiro, é difícil de ler. Você tem que parar e pensar em todas as etapas. Segundo, e mais importante, é difícil depurar. Se você definir um ponto de interrupção nessa linha, é difícil saber para onde o código será a seguir.

No entanto, se você extrair todo esse código para algo mais legível e depurável, terá um resultado muito melhor:


const AllTheInputs = GatherAllInputs();
const CustomerInterestRate = CalculateInterestRate(AllTheInputs);
const CustomerInterestRateIsHighEnough = CustomerInterestRate > 0.6;
If CustomerInterestRateIsHighEnough {
  …
}

Isso é um código limpo e adorável que é fácil de ler e fácil de depurar. Também é fácil “escrever” com a ferramenta de refatoração de variável de extração.

E para aqueles que dizem que isso é muito digitado, digo: “A preguiça não é um movimento que aprimora a carreira”.

Extrair o método, renomear variável/método/classe e extrair variáveis ​​não são as únicas ferramentas de refatoração na caixa de ferramentas, mas são as mais úteis. Eles são os que fornecem mais benefícios. Se eu tivesse que escolher apenas um para usar, escolheria o método Extract, porque é a defesa mais forte contra o problema comum (tentação?) Dos métodos de expansão.