Dividir automáticamente variables temporales en delphi

Dividir automáticamente variables temporales en delphi


en Este artículo se describe el uso correcto de variables temporales, las motivaciones para la división incorrecta de las variables, y cómo el uso de Castalia para dividir automáticamente.

me gustaría abordar una pregunta que recibo con frecuencia de personas que están viendo Castalia por primera vez. Cuando se ven en la refactorings, de ver las cosas como 'Extracto de Método' y 'cambiar el nombre de Variable Local,' que son bastante auto-explicativo. Es decir, usted puede averiguar lo que hacen se basa en el nombre. Entonces ven 'Split Variable Temporal' y que no está seguro de qué pensar. No es muy intuitivo de refactorización, y para la mayoría de los casos, se ignora, a pesar de ser increíblemente útil.

En pocas palabras, esta refactorización se utiliza cuando 'usted tiene una variable local que se le asigna más de una vez, y no es una variable de bucle, ni una recopilación de variable' (Martin Fowler en la Refactorización: Mejorar el Diseño de Código Existente).

Hay un montón de usos para las variables locales. Algunos de estos usos, naturalmente, requieren la variable a se le asigna más de una vez. Por ejemplo, el bucle de variables cambian cada vez que alrededor de un bucle (como yo en for I := 0 a 10). Recogida de variables temporales recoger algo de valor que se construye durante un método, por lo general con un patrón que se ve como 'SomeVar := SomeVar SomeNewValue.'

Otras variables temporales se utilizan para contener el resultado de un trozo de código para una fácil referencia más adelante. Este tipo de variables se debía establecer sólo una vez. Si se establece más de una vez, es una señal clara de que la variable tiene más de una responsabilidad en la función o procedimiento. Esto es confuso para leer y difícil de mantener, ya que es duro para asegurarse de que en un momento dado que la responsabilidad que cumple. Cada una de las responsabilidades debe estar representado por una distinta variable, haciendo que el código sea más fácil de leer y de mantener.

aquí es donde la 'División Temporal de la Variable' refactorización. Se tomará una variable que tiene múltiples responsabilidades, y que se dividió en distintas variables que tienen sus propias responsabilidades. Veamos un ejemplo:

& nbsp

& nbsp

procedure TForm1.UpdateCoordinates

var

Temp: Integer

begin

Temp := Shape1.Top

StatusBar1.Los paneles[0].Texto := IntToStr(Temp)

Temp := Shape1.A la izquierda

StatusBar1.Los paneles[1].Texto := IntToStr(Temp)

fin

& nbsp

En este método, los paneles de una barra de estado se actualizan con las coordenadas de una forma. La variable llamada 'Temp' tiene múltiples responsabilidades dentro del método. Representa tanto la parte Superior y a la Izquierda los valores. Que puede (y debe) dividir estas responsabilidades.

tener Castalia realizar esta división, se coloca el cursor en el nombre de la variable a split (cualquier referencia a la temperatura va a hacer, simplemente haga clic en él de modo que el cursor se encuentra dentro de la palabra 'Temp'). Seleccione 'Dividir Variable Temporal' desde el menú refactorización (ya sea desde el editor de menú de contexto o a la principal menú Edición). Aparece un cuadro de diálogo que nos dice que vamos a dividir Temp, que es de tipo Entero, en dos variables, y le pregunta el nombre de la nueva variable. Entramos ShapeLeft como el nuevo nombre de la variable y haga clic en OK.

la División Temporal de la Variable cuadro de diálogo

Después de hacer clic en ACEPTAR, la refactorización explorer aparece con los cambios sugeridos. Observe que algunos de los cambios que se están marcadas por defecto, otros no lo son. Castalia se supone que la primera responsabilidad de la variable es permanecer con la variable existente, y la segunda responsabilidad es para ser llenado por la nueva variable. Si usted no está de acuerdo con esta hipótesis, puede activar y desactivar estos cambios como mejor le parezca.

Hacemos clic en 'GO' (que ha pasado a denominarse 'Aplicar' en Castalia 2.2), y Castalia hará los cambios seleccionados. Ahora tenemos un procedimiento que se parece a esto:

& nbsp

procedure TForm1.UpdateCoordinates

var

Temp, ShapeLeft: Integer

begin

Temp := Shape1.Top

StatusBar1.Los paneles[0].Texto := IntToStr(Temp)

ShapeLeft := Shape1.A la izquierda

StatusBar1.Los paneles[1].Texto := IntToStr(ShapeLeft)

fin

Este es mejorado. Por supuesto, algunos adicionales de refactorización podría hacer de este código, aun mejor. El uso de 'cambiar el nombre de la Variable Local' para cambiar el nombre de Temp a algo como ShapeTop sería una mejora definitiva. El código podría ser aún más concisa mediante el uso de 'en línea Variable Temporal' para eliminar las variables completo.

En este artículo, hemos aprendido sobre el uso adecuado de variables temporales y cómo utilizar Castalia 'Split Variable Temporal' refactorización para mejorar aquellas áreas en las que podríamos haber utilizado indebidamente. Más información acerca de Castalia otros refactorings se puede encontrar aquí.

& nbsp







Dividir automaticamente variables temporales en delphi


Dividir automaticamente variables temporales en delphi : Multi-millones de consejos para hacer su vida mas facil.


en Este articulo se describe el uso correcto de variables temporales, las motivaciones para la division incorrecta de las variables, y como el uso de Castalia para dividir automaticamente.

me gustaria abordar una pregunta que recibo con frecuencia de personas que estan viendo Castalia por primera vez. Cuando se ven en la refactorings, de ver las cosas como 'Extracto de Metodo' y 'cambiar el nombre de Variable Local,' que son bastante auto-explicativo. Es decir, usted puede averiguar lo que hacen se basa en el nombre. Entonces ven 'Split Variable Temporal' y que no esta seguro de que pensar. No es muy intuitivo de refactorizacion, y para la mayoria de los casos, se ignora, a pesar de ser increiblemente util.

En pocas palabras, esta refactorizacion se utiliza cuando 'usted tiene una variable local que se le asigna mas de una vez, y no es una variable de bucle, ni una recopilacion de variable' (Martin Fowler en la Refactorizacion: Mejorar el Diseño de Codigo Existente).

Hay un monton de usos para las variables locales. Algunos de estos usos, naturalmente, requieren la variable a se le asigna mas de una vez. Por ejemplo, el bucle de variables cambian cada vez que alrededor de un bucle (como yo en for I := 0 a 10). Recogida de variables temporales recoger algo de valor que se construye durante un metodo, por lo general con un patron que se ve como 'SomeVar := SomeVar SomeNewValue.'

Otras variables temporales se utilizan para contener el resultado de un trozo de codigo para una facil referencia mas adelante. Este tipo de variables se debia establecer solo una vez. Si se establece mas de una vez, es una señal clara de que la variable tiene mas de una responsabilidad en la funcion o procedimiento. Esto es confuso para leer y dificil de mantener, ya que es duro para asegurarse de que en un momento dado que la responsabilidad que cumple. Cada una de las responsabilidades debe estar representado por una distinta variable, haciendo que el codigo sea mas facil de leer y de mantener.

aqui es donde la 'Division Temporal de la Variable' refactorizacion. Se tomara una variable que tiene multiples responsabilidades, y que se dividio en distintas variables que tienen sus propias responsabilidades. Veamos un ejemplo:

& nbsp

& nbsp

procedure TForm1.UpdateCoordinates

var

Temp: Integer

begin

Temp := Shape1.Top

StatusBar1.Los paneles[0].Texto := IntToStr(Temp)

Temp := Shape1.A la izquierda

StatusBar1.Los paneles[1].Texto := IntToStr(Temp)

fin

& nbsp

En este metodo, los paneles de una barra de estado se actualizan con las coordenadas de una forma. La variable llamada 'Temp' tiene multiples responsabilidades dentro del metodo. Representa tanto la parte Superior y a la Izquierda los valores. Que puede (y debe) dividir estas responsabilidades.

tener Castalia realizar esta division, se coloca el cursor en el nombre de la variable a split (cualquier referencia a la temperatura va a hacer, simplemente haga clic en el de modo que el cursor se encuentra dentro de la palabra 'Temp'). Seleccione 'Dividir Variable Temporal' desde el menu refactorizacion (ya sea desde el editor de menu de contexto o a la principal menu Edicion). Aparece un cuadro de dialogo que nos dice que vamos a dividir Temp, que es de tipo Entero, en dos variables, y le pregunta el nombre de la nueva variable. Entramos ShapeLeft como el nuevo nombre de la variable y haga clic en OK.

la Division Temporal de la Variable cuadro de dialogo

Despues de hacer clic en ACEPTAR, la refactorizacion explorer aparece con los cambios sugeridos. Observe que algunos de los cambios que se estan marcadas por defecto, otros no lo son. Castalia se supone que la primera responsabilidad de la variable es permanecer con la variable existente, y la segunda responsabilidad es para ser llenado por la nueva variable. Si usted no esta de acuerdo con esta hipotesis, puede activar y desactivar estos cambios como mejor le parezca.

Hacemos clic en 'GO' (que ha pasado a denominarse 'Aplicar' en Castalia 2.2), y Castalia hara los cambios seleccionados. Ahora tenemos un procedimiento que se parece a esto:

& nbsp

procedure TForm1.UpdateCoordinates

var

Temp, ShapeLeft: Integer

begin

Temp := Shape1.Top

StatusBar1.Los paneles[0].Texto := IntToStr(Temp)

ShapeLeft := Shape1.A la izquierda

StatusBar1.Los paneles[1].Texto := IntToStr(ShapeLeft)

fin

Este es mejorado. Por supuesto, algunos adicionales de refactorizacion podria hacer de este codigo, aun mejor. El uso de 'cambiar el nombre de la Variable Local' para cambiar el nombre de Temp a algo como ShapeTop seria una mejora definitiva. El codigo podria ser aun mas concisa mediante el uso de 'en linea Variable Temporal' para eliminar las variables completo.

En este articulo, hemos aprendido sobre el uso adecuado de variables temporales y como utilizar Castalia 'Split Variable Temporal' refactorizacion para mejorar aquellas areas en las que podriamos haber utilizado indebidamente. Mas informacion acerca de Castalia otros refactorings se puede encontrar aqui.

& nbsp

Dividir automáticamente variables temporales en delphi

Dividir automáticamente variables temporales en delphi : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación