Logo ConstructiCat
CodeBust.
Parcourir la section ▾

Extraire une variable.

Problème

Vous avez une expression difficile à comprendre.

Solution

Placez le résultat de l'expression ou de ses parties dans des variables distinctes qui se passent d'explication.

##Exemple

Avant
void renderBanner() {
  if ((platform.toUpperCase().indexOf("MAC") > -1) &&
       (browser.toUpperCase().indexOf("IE") > -1) &&
        wasInitialized() && resize > 0 )
  {
    // faire quelque chose
  }
}
Aprè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) {
    // faire quelque chose
  }
}

##Pourquoi refactoriser

La principale raison d'extraire des variables est de rendre une expression complexe plus compréhensible, en la divisant en ses parties intermédiaires. Il peut s'agir de :

  • La condition de l'opérateur if() ou une partie de l'opérateur ?: dans les langages dérivés du C

  • Une longue expression arithmétique sans résultats intermédiaires

  • De longues lignes en plusieurs parties

Extraire une variable peut être la première étape vers l'application d'Extraire une méthode si vous constatez que l'expression extraite est utilisée à d'autres endroits de votre code.

##Avantages

  • Du code plus lisible ! Essayez de donner aux variables extraites de bons noms qui annoncent leur but haut et fort. Plus de lisibilité, moins de commentaires interminables. Privilégiez des noms comme customerTaxValue, cityUnemploymentRate, clientSalutationString, etc.

##Comment refactoriser

  1. Insérez une nouvelle ligne avant l'expression concernée et déclarez-y une nouvelle variable. Affectez-lui une partie de l'expression complexe.

  2. Remplacez cette partie de l'expression par la nouvelle variable.

  3. Répétez le processus pour toutes les parties complexes de l'expression.