Mostrando entradas con la etiqueta Otras cosas de programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Otras cosas de programación. Mostrar todas las entradas

martes, 11 de diciembre de 2012

Números mágicos

En términos de programación, un "Magic Number" es una constante numérica usada para identificar un ente (ya sea valor de un diccionario, un estado, una constante...). Algo que directamente podría interpretarse como una mala práctica. Desde luego, el uso de estos números, no condiciona el propio código en sí, ya que seguirá funcionando perfectamente; ahora bien, no se puede decir lo mismo en cuanto a la mantenibilidad del mismo.

Buscando en la wikipedia sobre estos bichitos, encuentro dos códigos para una misma tarea.

   for i from 1 to 52
       j := i + randomInt(53 - i) - 1
       a.swapEntries(i, j)

En este primer código, encontramos que nos devuelve 52 valores aleatorios de un Array.

   constant int deckSize := 52
   for i from 1 to deckSize
       j := i + randomInt(deckSize + 1 - i) - 1
       a.swapEntries(i, j)

En este, ya comprendemos un poco más. Resulta que el 52 es el tamaño de una baraja (deckSize) en cartas.

Obviamete, y para mi gusto, el hecho de tener una variable que identifique con su nombre el porqué de un valor, no es suficiente.

Usemos enumerados por favor. En este caso, podríamos tener por ejemplo, un enumerado llamado Deck (baraja). Aquí nos hemos ido a .NET:


Ahora, el uso de un enumerado, junto con una buena descripción de la variable, nos lo dice todo:





lunes, 14 de mayo de 2012

Herramientas y metodologías para una mejor codificación

Optimization and organization can mean many things, but what does it mean to you? Doing things faster, better, or more efficient? Does it mean doing things more programmatically, simplistically, or using tools that are more suited to the job?

Resto del artículo (fuente original)

Hebras, lambdas… y bugs

Cuando uno empieza a mezclar ciertas cosas tiene que andarse con bastante ojo para no liarla. La programación concurrente es una de esas cosas que, en cuanto requiere compartir información entre procesos/hebras (de la forma que sea), se convierte en algo que hay que tratar con cariño para evitar introducir condiciones de carrera[...]

Resto del artículo (fuente original)

lunes, 7 de mayo de 2012

Qué son las técnicas de Refactoring

Las técnicas de Refactoring fueron puestos en evidencia por Martin Fowler en su libro: Refactoring “Improving the desing of existing code”. Si tienen la suerte de poder llegar a leer ese libro no se lo olvidarán jamás. Estoy 100% convencido, que después de su lectura, la forma en que escribirán código será totalmente diferente. Voy a empezar explicando los conceptos básicos.

Resto del artículo (fuente original)