ConstructiCat Logo
CodeBust.
Browse section ▾

Extrair Variável.

Problem

Você tem uma expressão difícil de entender.

Solution

Coloque o resultado da expressão ou de suas partes em variáveis separadas que sejam autoexplicativas.

##Example

Before
void renderBanner() {
  if ((platform.toUpperCase().indexOf("MAC") > -1) &&
       (browser.toUpperCase().indexOf("IE") > -1) &&
        wasInitialized() && resize > 0 )
  {
    // fazer algo
  }
}
After
void renderBanner() {
  final boolean isMacOs = platform.toUpperCase().indexOf("MAC") > -1;
  final boolean isIE = browser.toUpperCase().indexOf("IE") > -1;
  final boolean wasResized = resize > 0;

  if (isMacOs && isIE && wasInitialized() && wasResized) {
    // fazer algo
  }
}

##Why Refactor

A principal razão para extrair variáveis é tornar uma expressão complexa mais compreensível, dividindo-a em suas partes intermediárias. Elas podem ser:

  • A condição do operador if() ou parte do operador ?: em linguagens baseadas em C

  • Uma expressão aritmética longa sem resultados intermediários

  • Linhas longas com várias partes

Extrair uma variável pode ser o primeiro passo para realizar Extrair Método se você perceber que a expressão extraída é usada em outros lugares do seu código.

##Benefits

  • Código mais legível! Tente dar às variáveis extraídas bons nomes que anunciem o propósito da variável de forma clara e direta. Mais legibilidade, menos comentários prolixos. Opte por nomes como customerTaxValue, cityUnemploymentRate, clientSalutationString, etc.

##How to Refactor

  1. Insira uma nova linha antes da expressão relevante e declare uma nova variável ali. Atribua parte da expressão complexa a essa variável.

  2. Substitua essa parte da expressão pela nova variável.

  3. Repita o processo para todas as partes complexas da expressão.