El mal uso de var

Ultimamente vengo viendo mucho código en el que se hace intensivo el uso de var para declarar todo tipo de variables y me gustaría dar mi opinión sobre este mal uso:

El uso extensivo de var dificulta la legibilidad y comprensión del código fuente, porque un buen código (por lo menos para mí) es el que con leerlo lo podemos entender, por ejemplo:

var i = obj as string;

En este caso concreto se puede observar claramente que el tipo es string (porque lo vemos), pero y en esta caso:

var i = obj;

Pues en esa caso lo mejor podemos hacer es situarnos encima de obj y dejar que el VS nos ilumine con su sabiduría, o por ejemplo en este caso no sabemos que devuelve ese método:

var i = DAL.GetValor();

y no vale la excusa de que es cómodo y que hay clases que son muy largas de escribir, para eso está eso tenemos a Resharper y en su defecto al intellisense de VS :)

Mis 2 céntimos :)

Salu2

Published 23/11/2009 13:01 por Luis Ruiz Pavón
Archivado en: ,,
Comparte este post:
http://geeks.ms/blogs/lruiz/archive/2009/11/23/el-mal-uso-de-var.aspx

Comentarios

# re: El mal uso de var

Totalmente de acuerdo con los expuesto Luis.

Los comodines como cuando juegas a las cartas, solo deben ser usados en momentos excepcionales. :-)

Monday, November 23, 2009 1:14 PM por Jorge Serrano

# re: El mal uso de var

@Luis

Tu problema ahí no es var sino como estás nombrando las cosas, algo que resumí hace unos días aquí:

devlicio.us/.../var-improves-readability.aspx

Monday, November 23, 2009 1:41 PM por Hadi Hariri

# re: El mal uso de var

No estoy de acuerdo contigo Hadi :P, en el caso que expones estas hablando de una clase o tipo de dato de .NET como es un DataTable y la verdad es que no es un buen ejemplo, ahora y este caso:

var salary = GetEmployeeSalary(employee.ID);

¿De que tipo es salary?

No queda muy bien poner GetEmployeeSalaryDecimal(employee.ID) , no?

Y más allá mira este código:

var f = GetNumber();

var total = 100 * f / 6;

Console.WriteLine("Type: {0}, Value: {1}", total.GetType(), total);

Console.Read();

¿De que tipo es la variable total?

Depende de lo que devuelva GetNumber, no? Esto es legible para un desarrollador?

Un saludo

Monday, November 23, 2009 2:08 PM por Luis Ruiz Pavón

# re: El mal uso de var

@Luis,

El ejemplo que he puesto es el ejemplo que venía en el blog al que he hecho referencia.

Estas pensando demasiado en la implementación y no en lo que el código intenta expresar. Si miras en los comentarios de esepost, tanto yo como otros responden a las inquietudes que expresas.

Monday, November 23, 2009 2:23 PM por Hadi Hariri

# re: El mal uso de var

Para los que somos nóveles, cual es la Conclusión??

Monday, November 23, 2009 3:43 PM por Ale

# re: El mal uso de var

Yo creo que el conjunto de tipo y nombre de la variable tienen que ser lo suficientemente descriptivos. Además saber el tipo de una variable te puede dar muchas pistas a la hora de interpretar el código. Así que estoy de acuerdo con los dos :P. Ciertamente el mal uso de var se esta extendiendo bastante.

Monday, November 23, 2009 4:47 PM por Pedroafa

# re: El mal uso de var

Luis;

En términos de programación siempre van a existir abusos a los artefactos que provee un lenguaje de programación, y var no es la excepción.

Aunque en este caso, el ejemplo que tu pusiste es el que abusa de var, tal y como lo expone Hadi, con quien por cierto estoy completamente de acuerdo, nuestras funciones/métodos/variables deben de tener un nombre que explique que acción ejecutan y que datos son los que almacenan.

Afortunadamente el alcance de var es muy limitado, dentro del mismo método, por lo tanto si tus métodos no son muy extensos, no veo el problema de que sea difícil identificar que tipo de valor es que te tiene asignado var.

Tuesday, November 24, 2009 4:59 PM por Mario A Chavez