05 febrero 2010

El experto Castalia (y 3)

Hoy terminaremos de ver las opciones más interesantes del experto Castalia, sobre todo en lo referente al apartado de refactorización.

ILUMINACIÓN DE APERTURA Y CIERRE DE PARÉNTESIS

Cuando tenemos varios paréntesis anidados se hace difícil saber si los hemos cerrado correctamente, por lo que Castalia ilumina los paréntesis cuando estamos encima del de apertura o cierre:


REFACTORIZACIÓN

La refactorización nos permite mejorar y optimizar el código después de haber sido escrito para que el programa haga lo mismo con menos líneas de código. Entre las tareas de refactorización encontramos las de:

Cambiar el nombre de una variable local. Si se nos ocurre hacer esto en una versión normal de Delphi debemos cambiar el nombre en su declaración dentro de la sección var y tantas veces como esté en el procedimiento o función (manualmente con Buscar/Reemplazar). Supongamos que en este procedimiento quiero cambiar el nombre de la variable S por S2:

Pues entonces selecciono la variable S ya sea en el apartado var o en cualquier línea de código y en el menú superior selecciono:

A continuación se seleccionarán en el código todas las apariciones de la variable S:

Ahora escribo S2 y cambiarán todas las líneas a la vez:


Pulsamos la tecla Intro y todo volverá a la normalidad.

Renombrar los parámetros de una función o un procedimiento. Funciona exactamente igual que en el caso anterior. Por ejemplo:

Nos situamos en el parámetro b y seleccionamos:

Escribimos el nuevo nombre y pulsamos Intro:


Renombrar una variable temporal por su expresión equivalente. Generalmente solemos crear variables temporales dentro de un procedimiento para realizar ciertos cálculos complejos que luego llevaremos a otro lugar. Por ejemplo:

Seleccionamos la variable temporal c y en el menú superior elegimos:

Eliminará esta variable y resolverá los cálculos directamente:


Duplicar una variable local seleccionada. A veces suele ocurrir que dentro de un procedimiento creamos la variable i para un bucle pero luego hacemos dos bucles y queremos utilizar otra variable para no mezclar las cosas:

Para no tener que subir y declarar otra variable, lo que hacemos es seleccionarla:

Y en el menú de Castalia elegimos:


Entonces declarará en la sección var un duplicado de la misma:

Solo tenemos que escribir su nuevo nombre y pulsar Intro.

Cambiar el nombre de un método. Para cambiar el nombre de un procedimiento o función que pertenecen a un objeto, solo tenemos que esta situados encima del nombre en la implementación:

Y seleccionamos la opción:

Cambiará también su nombre en la interfaz. El inconveniente que tiene es que no podemos hacerlo al revés (desde la interfaz).

Extraer un bloque de código a un nuevo método. Supongamos que tenemos el típico bucle para intercambiar dos variables de un array por el método de la burbuja:

Seleccionamos el núcleo del bucle:

Y seleccionamos la opción Castalia -> Refactoring -> Extract Method y nos montará todo el tinglado incluyendo los parámetros que necesita:


Agregar un parámetro a un procedimiento o función. Si ya tenemos un procedimiento con parámetros y tenemos que añadirle alguno más:

Seleccionamos Castalia -> Refactoring -> Add parameter y nos dejará la plantilla preparada:

En definitiva, podemos hacer lo mismo para renombar clases (Rename class) o moverlas a otra unidad (Move class). Creo que la opción más importante en refactorización es la de extraer bloques de código en nuevos procedimientos como hemos visto antes.

LA BARRA LATERAL

La barra lateral que está situada a la derecha del editor de código nos informará de los marcadores que hemos colocado y de las zonas donde está el cursor, como bien indica el ejemplo de su página web:


DESTACANDO LAS ESTRUCTURAS DE CONTROL

Por cada identación de código nos mostrará la alineación:


En este sentido, me gusta más la coloración que le da cnPack.

CONCLUSIONES

Se supone que tiene otras opciones como lo de la tecla Inicio que se vaya al principio de la línea o que compruebe la sintaxis automáticamente de color rojo, pero por las pruebas que he realizado, a veces funciona y otras veces no.

En resumen, no está mal como experto pero deja bastante que desear respecto a cnPack que además es gratuito. Más vale que se pongan las pilas porque no creo que vendan muchas licencias conforme está.

Pruebas realizadas en Delphi 7.

Publicidad