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:
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.
Antes que nada vamos a ver cuales son los tipos disponibles en C# y Java en la siguiente tabla:
Nombre corto | Clase .NET | Tipo | Ancho | Intervalo (bits) |
---|---|---|---|---|
byte | Byte | Entero sin signo | 8 | 0 a 255 |
sbyte | SByte | Entero con signo | 8 | -128 a 127 |
int | Int32 | Entero con signo | 32 | -2.147.483.648 a 2.147.483.647 |
uint | UInt32 | Entero sin signo | 32 | 0 a 4294967295 |
short | Int16 | Entero con signo | 16 | -32.768 a 32.767 |
ushort | UInt16 | Entero sin signo | 16 | 0 a 65535 |
long | Int64 | Entero con signo | 64 | -922337203685477508 a 922337203685477507 |
ulong | UInt64 | Entero sin signo | 64 | 0 a 18446744073709551615 |
float | Single | Tipo de punto flotante de precisión simple | 32 | -3,402823e38 a 3,402823e38 |
double | Double | Tipo de punto flotante de precisión doble | 64 | -1,79769313486232e308 a 1,79769313486232e308 |
char | Char | Un carácter Unicode | 16 | Símbolos Unicode utilizados en el texto |
bool | Boolean | Tipo Boolean lógico | 8 | True o false |
object | Object | Tipo base de todos los otros tipos | ||
string | String | Una secuencia de caracteres | ||
decimal | Decimal | Tipo preciso fraccionario o integral, que puede representar números decimales con 29 dígitos significativos | 128 | ą1.0 × 10e?28 a ą7.9 × 10e28 |
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.
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.
Y bien por ahora es todo, los leo luego.
No hay comentarios.