Monday, March 31, 2008

Asi es como NO se manejan los errores

Visto en cierto sitio popular de futbol, se me ocurrio ver el resto del mensaje y obtuve version del OS, servidor web, PHP, algunos directorios y la direccion ip interna del servidor.

por favor jovenes atrapen errores y guardenlos en algun log y solo muestren errores amigables al usuario, por ejemplo "los datos no estan disponibles en este momento, por favor intentelo mas tarde", o algo asi

Thursday, March 13, 2008

Lo que quisiera ver en la siguiente version de C#

Mitch Denny escribio sobre lo que el quisiera para la siguiente version de C# (mucha otra gente ha escrito sobre este tema ultimamente)

Lo que Mitch propone es tener un atajo para formatear strings, lo cual nos permitiria ir de algo asi
string s=string.Format(”{0}{1}{2}”, a, b, c);
a esto:
string s=@(”{0}{1}{2}”|a|b|c);

En este caso particular no me gusta la alternativa que propone, lo unico que esta haciendo es reemplazar la "," con el caracter "|" y haciendo el nombre mas corto.
Uno podria escribir su propia funcion "de envoltura":
//*** podrias llamarla "f" si quisieras
static string fmt(string format, params object[] parameters) {
return string.Format(format, parameters);
}

y la usarias asi:
string s=fmt("{0}{1}{2}",a,b,c);

Lo cual nos da practicamente el mismo resultado que lo propuesto por Mitch

Otro problema es que esta propuesta resuelve un problema muy especifico el cual es formatear strings y podemos obtener casi el mismo resultado escribiendo una funcioncita

El caso es que con tanta gente dando su opinion sobre lo que les gustaria ver en la siguiente version de C#, pues yo tambien tengo mi idea
lista de argumentos sin coma

algo asi:
string s=fmt("{0}{1}{2}" a b c);

El alcance de este cambio seria muchisimo mayor y de hecho le quitaria algo de "azucar de sintaxis" (syntactic sugar) al lenguaje

Ahora bien, este cambio seguramente no ocurrira, debido a que esta es la familia de los lenguajes C y ademas me parese que el cambio seria bastante significativo, pero como este es mi blog pues yo pongo mi idea =o)

Por cierto una de las ideas que me ha parecido buena es la de tener argumentos nombrados, con lo cual se podrian mandar llamar funciones de la manera

AlgunaFuncion(Parametro1 = "Algun valor", Parametro2=10);

Esta idea me parece excelente, una de las cosas que eliminaria seria la confusion que generan los parametros booleanos, y ya no tendriamos que usar Enum para esos casos