Diviser automatiquement les variables temporaires dans delphi

Diviser automatiquement les variables temporaires dans delphi


Cet article traite de l'utilisation correcte des variables temporaires, les motivations pour le fractionnement abusif variables, et comment l'utiliser Castalia de diviser automatiquement.

je voudrais aborder une question que je reçois fréquemment des gens qui voient Castalia pour la première fois. Quand ils regardent les refactorings, ils voient les choses comme 'Extrait de la Méthode' et 'Renommer la Variable Locale', qui sont assez explicites. Qui est, vous pouvez comprendre ce qu'ils font, basé sur le nom. Puis, ils voient 'Split Variable Temporaire' et qu'ils ne savent pas quoi penser. Ce n'est pas très intuitive, refactoring, et pour la plupart, il est ignorée, en dépit d'être incroyablement utile.

En un mot, cette factorisation est utilisé lorsque 'vous avez une variable locale qui est attribué plus d'une fois, et n'est pas une variable de boucle ni une collecte variable' (Martin Fowler dans Refactoring: l'Amélioration de la Conception de Code Existant).

Il ya beaucoup d'utilisations pour les variables locales. Certaines de ces utilisations requièrent de la variable à assigner plus d'une fois. Par exemple, les variables de boucle de changer à chaque fois autour d'une boucle (comme j'en for I := 0 à 10). La collecte des variables temporaires de recueillir une partie de la valeur qui se construit au cours d'une méthode, généralement avec un motif qui ressemble à 'SomeVar := SomeVar SomeNewValue.'

d'Autres variables temporaires sont utilisés pour contenir le résultat d'un morceau de code à des fins de référence ultérieure. Ces variables doivent être définies qu'une seule fois. Si elles sont définies plus d'une fois, c'est un signe clair que la variable a plus d'une responsabilité dans la fonction ou de la procédure. C'est difficile à lire et difficile à maintenir, car il est difficile d'être sûr à un moment donné, dont la responsabilité est d'être fulfulled. Chaque responsabilité devrait être représenté par une nette variables, ce qui rend le code plus facile à lire et à maintenir.

C'est là que le 'Split Variable Temporaire' refactoring. Il faudra une variable qui a de multiples responsabilités et de le diviser en variables distinctes qui ont des responsabilités uniques. Nous allons travailler à travers un exemple:

& nbsp

& nbsp

procedure TForm1.UpdateCoordinates

var

Temp: Entier

commencer

Temp := Shape1.Top

StatusBar1.Panneaux[0].Text := IntToStr(Temp)

Temp := Shape1.Gauche

StatusBar1.Panneaux[1].Text := IntToStr(Temp)

fin

& nbsp

Dans cette méthode, les panneaux de la barre d'état sont mis à jour avec les coordonnées d'une forme. La variable 'Temp' a de multiples responsabilités au sein de la méthode. Il représente à la fois le Haut et la Gauche des valeurs. On peut (et doit) de diviser ces responsabilités.

Pour avoir Castalia effectuer cette répartition, on place le curseur dans le nom de la variable à split (toute référence à Temp faire, il suffit de cliquer sur elle de sorte que le curseur est situé à l'intérieur du mot 'Temp'). Choisissez 'Split Variable Temporaire' de la refactorisation menu (soit à partir du menu contextuel de l'éditeur ou le menu d'Édition principal). Une boîte de dialogue s'affiche à nous dire que nous allons scinder Temp, qui est de type Entier, en deux variables, et demande le nom de la nouvelle variable. Nous entrons dans ShapeLeft que le nouveau nom de la variable, puis cliquez sur OK.

Split Variable Temporaire de la boîte de dialogue

Après avoir cliqué sur OK, le refactoring de l'explorateur s'affiche avec les modifications suggérées. Notez que certains de ces changements sont cochées par défaut, d'autres ne le sont pas. Castalia suppose que la responsabilité première de la variable est de rester avec la variable existante, et la seconde responsabilité est alors rempli par la nouvelle variable. Si vous êtes en désaccord avec cette hypothèse, vous pouvez cocher et décocher ces changements que vous voyez l'ajustement.

Nous cliquez sur 'GO' (qui a été renommé 'Appliquer' dans Castalia 2.2), et Castalia fera les changements sélectionnés. Maintenant, nous avons une procédure qui ressemble à ceci:

& nbsp

procedure TForm1.UpdateCoordinates

var

Temp, ShapeLeft: Integer

commencer

Temp := Shape1.Top

StatusBar1.Panneaux[0].Text := IntToStr(Temp)

ShapeLeft := Shape1.Gauche

StatusBar1.Panneaux[1].Text := IntToStr(ShapeLeft)

fin

Ceci est améliorée. Bien sûr, certaines refactoring pourrait faire de ce code, même mieux. À l'aide de 'Renommer la Variable Locale' pour renommer Temp à quelque chose comme ShapeTop serait une nette amélioration. Le code pourrait être encore plus concis en utilisant la fonction 'Inline Variable Temporaire' pour éliminer les variables entièrement.

Dans cet article, nous avons appris à propos de l'utilisation appropriée des variables temporaires et comment l'utiliser Castalia 'Split Variable Temporaire' refactoring pour améliorer les domaines où nous pouvons avoir mal utilisé. Plus d'informations sur Castalia autres refactorings peuvent être trouvés ici.

& nbsp







Diviser automatiquement les variables temporaires dans delphi


Diviser automatiquement les variables temporaires dans delphi : Plusieurs milliers de conseils pour vous faciliter la vie.


Cet article traite de l'utilisation correcte des variables temporaires, les motivations pour le fractionnement abusif variables, et comment l'utiliser Castalia de diviser automatiquement.

je voudrais aborder une question que je reçois frequemment des gens qui voient Castalia pour la premiere fois. Quand ils regardent les refactorings, ils voient les choses comme 'Extrait de la Methode' et 'Renommer la Variable Locale', qui sont assez explicites. Qui est, vous pouvez comprendre ce qu'ils font, base sur le nom. Puis, ils voient 'Split Variable Temporaire' et qu'ils ne savent pas quoi penser. Ce n'est pas tres intuitive, refactoring, et pour la plupart, il est ignoree, en depit d'etre incroyablement utile.

En un mot, cette factorisation est utilise lorsque 'vous avez une variable locale qui est attribue plus d'une fois, et n'est pas une variable de boucle ni une collecte variable' (Martin Fowler dans Refactoring: l'Amelioration de la Conception de Code Existant).

Il ya beaucoup d'utilisations pour les variables locales. Certaines de ces utilisations requierent de la variable a assigner plus d'une fois. Par exemple, les variables de boucle de changer a chaque fois autour d'une boucle (comme j'en for I := 0 a 10). La collecte des variables temporaires de recueillir une partie de la valeur qui se construit au cours d'une methode, generalement avec un motif qui ressemble a 'SomeVar := SomeVar SomeNewValue.'

d'Autres variables temporaires sont utilises pour contenir le resultat d'un morceau de code a des fins de reference ulterieure. Ces variables doivent etre definies qu'une seule fois. Si elles sont definies plus d'une fois, c'est un signe clair que la variable a plus d'une responsabilite dans la fonction ou de la procedure. C'est difficile a lire et difficile a maintenir, car il est difficile d'etre sûr a un moment donne, dont la responsabilite est d'etre fulfulled. Chaque responsabilite devrait etre represente par une nette variables, ce qui rend le code plus facile a lire et a maintenir.

C'est la que le 'Split Variable Temporaire' refactoring. Il faudra une variable qui a de multiples responsabilites et de le diviser en variables distinctes qui ont des responsabilites uniques. Nous allons travailler a travers un exemple:

& nbsp

& nbsp

procedure TForm1.UpdateCoordinates

var

Temp: Entier

commencer

Temp := Shape1.Top

StatusBar1.Panneaux[0].Text := IntToStr(Temp)

Temp := Shape1.Gauche

StatusBar1.Panneaux[1].Text := IntToStr(Temp)

fin

& nbsp

Dans cette methode, les panneaux de la barre d'etat sont mis a jour avec les coordonnees d'une forme. La variable 'Temp' a de multiples responsabilites au sein de la methode. Il represente a la fois le Haut et la Gauche des valeurs. On peut (et doit) de diviser ces responsabilites.

Pour avoir Castalia effectuer cette repartition, on place le curseur dans le nom de la variable a split (toute reference a Temp faire, il suffit de cliquer sur elle de sorte que le curseur est situe a l'interieur du mot 'Temp'). Choisissez 'Split Variable Temporaire' de la refactorisation menu (soit a partir du menu contextuel de l'editeur ou le menu d'Edition principal). Une boîte de dialogue s'affiche a nous dire que nous allons scinder Temp, qui est de type Entier, en deux variables, et demande le nom de la nouvelle variable. Nous entrons dans ShapeLeft que le nouveau nom de la variable, puis cliquez sur OK.

Split Variable Temporaire de la boîte de dialogue

Apres avoir clique sur OK, le refactoring de l'explorateur s'affiche avec les modifications suggerees. Notez que certains de ces changements sont cochees par defaut, d'autres ne le sont pas. Castalia suppose que la responsabilite premiere de la variable est de rester avec la variable existante, et la seconde responsabilite est alors rempli par la nouvelle variable. Si vous etes en desaccord avec cette hypothese, vous pouvez cocher et decocher ces changements que vous voyez l'ajustement.

Nous cliquez sur 'GO' (qui a ete renomme 'Appliquer' dans Castalia 2.2), et Castalia fera les changements selectionnes. Maintenant, nous avons une procedure qui ressemble a ceci:

& nbsp

procedure TForm1.UpdateCoordinates

var

Temp, ShapeLeft: Integer

commencer

Temp := Shape1.Top

StatusBar1.Panneaux[0].Text := IntToStr(Temp)

ShapeLeft := Shape1.Gauche

StatusBar1.Panneaux[1].Text := IntToStr(ShapeLeft)

fin

Ceci est amelioree. Bien sûr, certaines refactoring pourrait faire de ce code, meme mieux. A l'aide de 'Renommer la Variable Locale' pour renommer Temp a quelque chose comme ShapeTop serait une nette amelioration. Le code pourrait etre encore plus concis en utilisant la fonction 'Inline Variable Temporaire' pour eliminer les variables entierement.

Dans cet article, nous avons appris a propos de l'utilisation appropriee des variables temporaires et comment l'utiliser Castalia 'Split Variable Temporaire' refactoring pour ameliorer les domaines ou nous pouvons avoir mal utilise. Plus d'informations sur Castalia autres refactorings peuvent etre trouves ici.

& nbsp

Diviser automatiquement les variables temporaires dans delphi

Diviser automatiquement les variables temporaires dans delphi : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation