Logotipo de ConstructiCat
CodeBust.
Explorar la sección ▾

Extraer Variable.

Problema

Tienes una expresión difícil de entender.

Solución

Coloca el resultado de la expresión o de sus partes en variables separadas que se expliquen por sí mismas.

##Ejemplo

Antes
void renderBanner() {
  if ((platform.toUpperCase().indexOf("MAC") > -1) &&
       (browser.toUpperCase().indexOf("IE") > -1) &&
        wasInitialized() && resize > 0 )
  {
    // hacer algo
  }
}
Después
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) {
    // hacer algo
  }
}

##Por qué refactorizar

La razón principal para extraer variables es hacer más comprensible una expresión compleja, dividiéndola en sus partes intermedias. Estas podrían ser:

  • La condición del operador if() o una parte del operador ?: en los lenguajes basados en C

  • Una expresión aritmética larga sin resultados intermedios

  • Líneas largas de varias partes

Extraer una variable puede ser el primer paso hacia la aplicación de Extraer Método si ves que la expresión extraída se utiliza en otros lugares de tu código.

##Ventajas

  • ¡Código más legible! Intenta dar a las variables extraídas buenos nombres que anuncien su propósito de forma clara y rotunda. Más legibilidad, menos comentarios prolijos. Opta por nombres como customerTaxValue, cityUnemploymentRate, clientSalutationString, etc.

##Cómo refactorizar

  1. Inserta una nueva línea antes de la expresión relevante y declara allí una nueva variable. Asigna parte de la expresión compleja a esta variable.

  2. Reemplaza esa parte de la expresión con la nueva variable.

  3. Repite el proceso para todas las partes complejas de la expresión.