Imagen de la configuración de static checker

Mejora tu código, código, código (II)

Hace dos días vimos una pequeña introducción sobre las herramientas de análisis estático de código.

Hoy vamos a ver un poco lo que ofrece Visual Studio 2010 y .NET 4 junto a la herramienta Static Checker  creada por el equipo de Contratos de código.

Esta herramienta va analizando nuestro código a medida lo escribimos y nos va mostrando aquellos contratos que no se cumplen. Si tenéis Visual Studio 2010 Premium o Últimate  o Team System 2008. Podéis descargarla desde http://bit.ly/fF3wzl.

Tendremos que activarla en cada proyecto en el que queramos usarlo explícitamente:

Imagen de la configuración de static checker

Imagen de la configuración de static checker

Un ejemplo de código en el que esta herramienta nos avisará en tiempo de compilación sera por ejemplo:

var numbers= new int[2];

numbers[3]=0;

Sin embargo,  donde más útil pude ser es con los contratos de código éxplícitos, con sus precondiciones y postcondiciones.

Veamos un pequeño ejemplo, supongamos que tenemos este código en alguno de nuestros métodos:

var idFactura= ObtenerUltimoId();

ProcesaFactura(idFactura);

Así, a simple vista, ninguna herramienta de análisis estático podría hacer nada con este código, a no ser que tuviese algún tipo de información extra. Y aquí es donde entran los contratos. Si usamos contratos y el código de la función ObtenerUltimoId() es así:

public int ObtenerUltimoId()

{

Contract.Ensures(Contract.Result<int>()>0);

....

return n;

}

De esta forma se indica que el método tiene que devolver un valor mayor que cero. Y es una información que el Checker usará para comprobar el código. Y ahora si el método ProcesaFactura() es tal que así:

public void ProcesaFactura(int idFactura)

{

Contract.Requires<ArgumentException>(idFactura>0);

.....

}

Hasta aquí todo bien, sin embargo la herramienta comprueba que un método tiene una condición de Requires y recibe datos de otro método que no dice nada sobre lo que va a devolver:

Ventana  de errores de Static Checker

Ventana de errores de Static Checker

Queda claro que esta tool es más útil cuantos más contratos usemos.

Espero que os sirva.

Juan María Laó Ramos.

2 pensamientos en “Mejora tu código, código, código (II)

Los comentarios están cerrados.