Temporäre Variablen in Delphi automatisch splitten

Temporäre Variablen in Delphi automatisch splitten


Dieser Artikel behandelt die richtigen Verwendung von temporären Variablen, Motive für die unsachgemäße Variablen und wie mithilfe von Castalia automatisch Teilen aufteilen.

Ich möchte eine Frage ansprechen, die ich häufig von Leuten bekommen, die Castalia zum ersten Mal zu sehen sind. Wenn sie die Refactorings betrachten, sehen sie Dinge wie 'Methode extrahieren' und 'Umbenennen lokale Variable,', die selbsterklärend sind. Das heißt, können Sie herausfinden, was sie tun, basierend auf dem Namen. Dann sie sehen 'Split' temporäre Variable'und sie sind nicht sicher, was Sie denken. Es ist nicht sehr intuitiv Umgestaltung und zum größten Teil, es ignoriert wird, obwohl er unglaublich nützlich.

Kurzum, diese Umgestaltung wird verwendet, wenn 'Sie eine lokale Variable, die mehr als einmal zugeordnet ist haben, und ist keine Schleifenvariable noch eine Verwertungsgesellschaft Variable' (Martin Fowler in Refactoring: das Design der vorhandenen Code zu verbessern).

Es gibt viele Einsatzmöglichkeiten für lokale Variablen. Einige dieser verwendet erfordern natürlich der Variable nur einmal zugewiesen werden. Z. B. Variablen ändern jedes Mal um eine Loop-Schleife (wie I in i: = 0 bis 10). Temporäre Variablen sammeln sammeln einige Wert, der während der Methode in der Regel mit einem Muster, das aussieht aufgebaut ist wie 'SomeVar: = SomeVar + SomeNewValue.'

Andere temporären Variablen werden verwendet, um das ein Stück Code später zu Referenzzwecken aufnehmen. Diese Art von Variablen sollten nur einmal festgelegt werden. Wenn sie mehr als einmal festgelegt sind, ist es ein deutliches Zeichen dafür, dass die Variable in der Funktion oder Prozedur mehr als eine Verantwortung hat. Das ist verwirrend zu lesen und schwer zu pflegen, wie es die Verantwortung Fulfulled wird sicher zu einem bestimmten Zeitpunkt schwer ist. Jede Verantwortung sollte dargestellt werden, durch eine unterschiedliche Variable, sodass des Codes leichter zu lesen und zu verwalten.

Hier kommt die 'Split' temporäre Variable'Umgestaltung. Es nimmt eine Variable, die mehrere Aufgaben hat und teilen es in verschiedene Variablen, die eindeutige Zuständigkeiten haben. Lassen Sie uns arbeiten anhand eines Beispiels:

Prozedur TForm1.UpdateCoordinates;

var

Temp: Integer;

beginnen

Temp: = Shape1.Top;

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

Temp: = Shape1.Left;

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

Ende;

Bei dieser Methode werden die Panels der Statusleiste mit den Koordinaten eines Shapes aktualisiert. Die Variable mit dem Namen 'Temp' hat mehrere Aufgaben innerhalb der Methode. Es stellt sowohl oben als auch die linke Werte. Wir können (und sollten) diese Aufgaben unterteilt.

Um Castalia diese Teilung durchführen zu lassen, wir setzen Sie den Cursor im Namen der Variablen aufteilen (jede Bezugnahme auf Temp wird zu tun, klicken Sie einfach darauf der Cursor befindet sich innerhalb des Wortes 'Temp'). Wählen Sie 'Split' temporäre Variable'Umgestaltung im aus (entweder aus dem Kontextmenü Editor oder im Hauptmenü bearbeiten). Ein Dialogfeld angezeigt wird, sagen uns, dass wir wollen, Temp, zu teilen, die vom Typ Integer, in zwei Variablen, und fragt nach dem Namen der neuen Variablen. Wir ShapeLeft als neuen Variablennamen eingeben und auf OK.

Split Temporary Variable dialog box

Klicken Sie auf OK, erscheint der Umgestaltung Explorer mit den vorgeschlagenen Änderungen. Beachten Sie, dass einige der Änderungen sind standardmäßig aktiviert, andere nicht sind. Castalia wird davon ausgegangen, dass die erste Verantwortung der Variablen mit vorhandenen Variablen zu bleiben, und die zweite Aufgabe ist, so dass durch die neue Variable gefüllt werden. Wenn Sie mit dieser Annahme nicht einverstanden, können Sie überprüfen und deaktivieren Sie diese Änderungen, wie Sie es für richtig halten.

Wir auf 'GO' (die wurde umbenannt 'Apply' Castalia 2.2) und Castalia werden die ausgewählten Änderungen vornehmen. Jetzt haben wir ein Verfahren, das so aussieht:

Prozedur TForm1.UpdateCoordinates;

var

Temp, ShapeLeft: Integer;

beginnen

Temp: = Shape1.Top;

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

ShapeLeft: = Shape1.Left;

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

Ende;

Dies wird verbessert. Natürlich könnten einige zusätzliche Umgestaltung dieser Code noch besser machen. Verwenden 'Umbenennen lokale Variable' Umbenennen Temp auf etwas wie ShapeTop eine deutliche Verbesserung wäre. Der Code konnte mit die Variablen vollständig zu beseitigen 'Inline' temporäre Variable'noch präziser hergestellt werden.

In diesem Artikel haben wir gelernt, über entsprechende Verwendung von temporären Variablen und Verwendung Castalias 'Split temporäre Variable' Umgestaltung um diese Bereiche zu verbessern, wo wir ihnen unberechtigterweise haben kann. Weitere Informationen über Castalias andere Refactorings finden Sie hier.








Temporäre Variablen in Delphi automatisch splitten


Temporäre Variablen in Delphi automatisch splitten : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Dieser Artikel behandelt die richtigen Verwendung von temporären Variablen, Motive für die unsachgemäße Variablen und wie mithilfe von Castalia automatisch Teilen aufteilen.

Ich möchte eine Frage ansprechen, die ich häufig von Leuten bekommen, die Castalia zum ersten Mal zu sehen sind. Wenn sie die Refactorings betrachten, sehen sie Dinge wie 'Methode extrahieren' und 'Umbenennen lokale Variable,', die selbsterklärend sind. Das heißt, können Sie herausfinden, was sie tun, basierend auf dem Namen. Dann sie sehen 'Split' temporäre Variable'und sie sind nicht sicher, was Sie denken. Es ist nicht sehr intuitiv Umgestaltung und zum größten Teil, es ignoriert wird, obwohl er unglaublich nützlich.

Kurzum, diese Umgestaltung wird verwendet, wenn 'Sie eine lokale Variable, die mehr als einmal zugeordnet ist haben, und ist keine Schleifenvariable noch eine Verwertungsgesellschaft Variable' (Martin Fowler in Refactoring: das Design der vorhandenen Code zu verbessern).

Es gibt viele Einsatzmöglichkeiten für lokale Variablen. Einige dieser verwendet erfordern natürlich der Variable nur einmal zugewiesen werden. Z. B. Variablen ändern jedes Mal um eine Loop-Schleife (wie I in i: = 0 bis 10). Temporäre Variablen sammeln sammeln einige Wert, der während der Methode in der Regel mit einem Muster, das aussieht aufgebaut ist wie 'SomeVar: = SomeVar + SomeNewValue.'

Andere temporären Variablen werden verwendet, um das ein Stück Code später zu Referenzzwecken aufnehmen. Diese Art von Variablen sollten nur einmal festgelegt werden. Wenn sie mehr als einmal festgelegt sind, ist es ein deutliches Zeichen dafür, dass die Variable in der Funktion oder Prozedur mehr als eine Verantwortung hat. Das ist verwirrend zu lesen und schwer zu pflegen, wie es die Verantwortung Fulfulled wird sicher zu einem bestimmten Zeitpunkt schwer ist. Jede Verantwortung sollte dargestellt werden, durch eine unterschiedliche Variable, sodass des Codes leichter zu lesen und zu verwalten.

Hier kommt die 'Split' temporäre Variable'Umgestaltung. Es nimmt eine Variable, die mehrere Aufgaben hat und teilen es in verschiedene Variablen, die eindeutige Zuständigkeiten haben. Lassen Sie uns arbeiten anhand eines Beispiels:

Prozedur TForm1.UpdateCoordinates;

var

Temp: Integer;

beginnen

Temp: = Shape1.Top;

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

Temp: = Shape1.Left;

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

Ende;

Bei dieser Methode werden die Panels der Statusleiste mit den Koordinaten eines Shapes aktualisiert. Die Variable mit dem Namen 'Temp' hat mehrere Aufgaben innerhalb der Methode. Es stellt sowohl oben als auch die linke Werte. Wir können (und sollten) diese Aufgaben unterteilt.

Um Castalia diese Teilung durchführen zu lassen, wir setzen Sie den Cursor im Namen der Variablen aufteilen (jede Bezugnahme auf Temp wird zu tun, klicken Sie einfach darauf der Cursor befindet sich innerhalb des Wortes 'Temp'). Wählen Sie 'Split' temporäre Variable'Umgestaltung im aus (entweder aus dem Kontextmenü Editor oder im Hauptmenü bearbeiten). Ein Dialogfeld angezeigt wird, sagen uns, dass wir wollen, Temp, zu teilen, die vom Typ Integer, in zwei Variablen, und fragt nach dem Namen der neuen Variablen. Wir ShapeLeft als neuen Variablennamen eingeben und auf OK.

Split Temporary Variable dialog box

Klicken Sie auf OK, erscheint der Umgestaltung Explorer mit den vorgeschlagenen Änderungen. Beachten Sie, dass einige der Änderungen sind standardmäßig aktiviert, andere nicht sind. Castalia wird davon ausgegangen, dass die erste Verantwortung der Variablen mit vorhandenen Variablen zu bleiben, und die zweite Aufgabe ist, so dass durch die neue Variable gefüllt werden. Wenn Sie mit dieser Annahme nicht einverstanden, können Sie überprüfen und deaktivieren Sie diese Änderungen, wie Sie es für richtig halten.

Wir auf 'GO' (die wurde umbenannt 'Apply' Castalia 2.2) und Castalia werden die ausgewählten Änderungen vornehmen. Jetzt haben wir ein Verfahren, das so aussieht:

Prozedur TForm1.UpdateCoordinates;

var

Temp, ShapeLeft: Integer;

beginnen

Temp: = Shape1.Top;

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

ShapeLeft: = Shape1.Left;

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

Ende;

Dies wird verbessert. Natürlich könnten einige zusätzliche Umgestaltung dieser Code noch besser machen. Verwenden 'Umbenennen lokale Variable' Umbenennen Temp auf etwas wie ShapeTop eine deutliche Verbesserung wäre. Der Code konnte mit die Variablen vollständig zu beseitigen 'Inline' temporäre Variable'noch präziser hergestellt werden.

In diesem Artikel haben wir gelernt, über entsprechende Verwendung von temporären Variablen und Verwendung Castalias 'Split temporäre Variable' Umgestaltung um diese Bereiche zu verbessern, wo wir ihnen unberechtigterweise haben kann. Weitere Informationen über Castalias andere Refactorings finden Sie hier.

Temporäre Variablen in Delphi automatisch splitten

Temporäre Variablen in Delphi automatisch splitten : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Freunden empfehlen
  • gplus
  • pinterest

Kürzliche Posts

Kommentar

Einen Kommentar hinterlassen

Wertung