Back to basics #4 - Eligiendo al mejor tipo.

Hola de nuevo a todos, el día de hoy vamos  a continuar con lo básico. En el post anterior, vimos cómo al elegir un tipo de variable, puede ser determinante a la hora de que se producen los errores.

Antes que nada vamos a ver cuales son los tipos disponibles en C# y Java en la siguiente tabla:

Nombre cortoClase .NETTipoAnchoIntervalo (bits)
byteByteEntero sin signo80 a 255
sbyteSByteEntero con signo8-128 a 127
intInt32Entero con signo32-2.147.483.648 a 2.147.483.647
uintUInt32Entero sin signo320 a 4294967295
shortInt16Entero con signo16-32.768 a 32.767
ushortUInt16Entero sin signo160 a 65535
longInt64Entero con signo64-922337203685477508 a 922337203685477507
ulongUInt64Entero sin signo640 a 18446744073709551615
floatSingleTipo de punto flotante de precisión simple32-3,402823e38 a 3,402823e38
doubleDoubleTipo de punto flotante de precisión doble64-1,79769313486232e308 a 1,79769313486232e308
charCharUn carácter Unicode16Símbolos Unicode utilizados en el texto
boolBooleanTipo Boolean lógico8True o false
objectObjectTipo base de todos los otros tipos
stringStringUna secuencia de caracteres
decimalDecimalTipo preciso fraccionario o integral, que puede representar números decimales con 29 dígitos significativos128ą1.0 × 10e?28 a ą7.9 × 10e28
La tabla anterior está disponible en la página de ayuda de MSDN,
Ahora, que es lo que debemos antes de empezar a crear una aplicación, bueno, debemos de tener muy claro que es lo que queremos lograr, si no tenemos eso muy claro desde el principio, es muy posible que a medio programa encontremos algunas dificultades. En C# disponemos de 15 tipos de variables y es necesario saber que tipo de datos se almacenan en cada una.

¿Cómo aplicar el tamaño adecuado a las variables?

Muchas veces hay que elegir que tipo de variables son la que debemos de usar en determinada parte de nuestro programa, generalmente siempre se buscará usar la variable más grande disponible, eso siempre y cuando no sepamos cual será el valor que está poseerá. Pero es recomendables hacer eso?, por supuesto que no! siempre debemos de tratar de tener el menor consumo de memoria.
Imaginemos que tenemos un programa en el cual una variable va a recibir el valor que el usuario introduzca, así que creamos una variable del tipo long (cuyo valor máximo es 922337203685477507), en tiempos modernos funciona de maravilla y nos ahorra muchos dolores de cabeza, finalmente que son 64 bits de 32,000,000,000 que hay disponibles en la mayoria de las computadoras (64 de 8,000,000,000 de los móviles). Pero la cosa no siempre fue así, hace no mucho tiempo, la cantidad de memoria era mucho más limitada, los computadores más potentes solamente tenían 64MBytes de RAM, por lo que administrar de manera prudente los recursos era primordial para el buen desarrollador de software. Entonces asumir no era una opcion, en ese caso lo que se hacia limitar al usuario, poner las condiciones pertinentes para que todo este dentro de los esperado. Podemos concluir que siempre debemos de usar la variable del tipo mas razonablemente pequeña y condicionar al usuario a que se ajuste, solo en casos realmente específicos es cuando debemos de adecuar el programa al usuario.

¿Cuando si debemos de ajustarnos?

En tiempos recientes es difícil citar un caso en el cual el programa deba de ajustarse a las condiciones del usuario. Hace no mucho tiempo una canción coreana se volvió inmensamente popular y la plataforma de videos más popular no estaba lista para poder llevar la cuenta, entonces un día, este video hizo lo impensable (por esas fechas) paso las 2,147,483,647 vistas y cómo vimos en el post anterior, un valor del tipo "int" no puede mostrar un número mas allá de ese y pasó lo que tenía que pasar, los desarrolladores se vieron en la necesidad de actualizar su código y ahora en lugar de usar una variable del tipo "int", optaron por usar valores de tipo long. Es una buena solución, ya que 922,337,203,685,477,507 es aproximadamente 131,762,457 la población de la tierra, más que suficiente en mi opinión.
Otro problema de este tipo surge con los equipos relativamente viejos, en ellos el tiempo se mide en segundos y se almacena en una espacio de 32 bits, haciendo cálculos, en el 2038 habrán alcanzado el limite que se puede almacenar en 32bits, pero este a diferencia del caso anterior es un poco mas complejo en su resolución. Muchos dirán que se puede arreglar con solo usar 64 bits para almacenar el tiempo, pero cuando se realizan operaciones de forma binaria se perdería compatibilidad con el software viejo. Muchos de los que previeron el problema hicieron que el hardware fuera compatible con 64bits y crearon software especifico para la plataforma, por lo que se evitarían el problema.

En el caso de las aplicaciones que he hecho para el blog, lo admito, he sido flojo, pero muchos de los errores que tienen son de los más básicos y por más simple que sea, siempre se debe de entregar software lo mas completo y listo posible. A partir de eso, la mayoría de programas se van a actualizar para quitar todas las partes "flojas".

Y bien por ahora es todo, los leo luego.

No hay comentarios.