Feb 23, 2011

Refactoring, refactoring, ¡refactoring! Hasta pa'l blog.

Desde hace mucho tiempo me he dado cuenta de qué cosa es lo que verdaderamente disfruto de la programación. Entre tantas cosas que hay para escoger, mi pasión se centra en "arreglar" mucho más que en "crear". No hay mayor gozo para mí que, luego que ya funciona, cambiar aquí y allá hasta que el código parece perfecto a mi vista ("a mi vista" no quiere decir que sea perfecto... sino que a mí me parece perfecto).

Vaya que por raro que parezca, creo que muchas veces escribo código al descuido para lograr lo antes posible que funcione todo, con tal de tener esos minutos de placer arreglando todo al final... Raro, ya sé, pero si voy a ser honesto, tengo que confesarlo: soy un tipo maniático con el código.

El caso es que nada mejor para un "arreglador" como las técnicas de refactoring que tanto se mencionan por allí. No voy a ponerme a disertar ahora sobre qué es refactoring ya que creo haber hablado de ello antes, sino que solamente voy a dejar aquí su definición formal, según el libro "Refactoring: Improving the design of existing code":

Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. It is a disciplined way to clean up code that minimizes the chances of introducing bugs. In essence when you refactor you are improving the design of the code after it has been written.
Lo más impresionante es que aún muchas personas desconocen completamente qué cosa es esto. Peor aún, me atrevo a asegurar que la mayoría de los programadores jamás se han tomado un segundo en sus vidas para arreglar algo que ya funciona. "¿Para qué?", dirán ellos. Pues yo les voy a decir para qué: Cualquiera en esta tierra con un cerebro y dos manos (e incluso, sin ellas) es capaz de escribir código que logre algo con un ordenador, ¿es esto razón suficiente para considerarse un desarrollador de software? No lo creo. El código no solo tiene que funcionar, sino que tiene que estar bien escrito. Cualquier cosa diferente a ello, es un simple "pasatiempo de principiantes".

Volviendo al tema (aunque no estoy seguro de haberme desviado), he decidido aplicar un poco de refactoring en este blog. ¿Cómo y por qué? Pues en primer lugar voy a parar de escribir tanta basura que a veces se me va la mano. No digo que hablar de HTML5 o hacer un video burlándome del iPad sea poca cosa para muchos, pero la realidad es que ese no soy yo. Yo disfruto más haciendo algo diferente, y por consiguiente voy a enfocarme en ello al 100%. Tenía prometido y a medio escribir muchos temas que algunos de los lectores me habían pedido (ViewState en ASP.NET, CSS Sprites, Cache en páginas ASP.NET, etc), así que a los interesados les pido disculpas, pero no quiero traicionarme a mí mismo hablando de cosas de las que realmente me preocupo solo cuándo me hacen falta.

Las historias sobre qué hago día a día, o por qué odio tanto al Flash las dejaré para contársela a mis nietos cuando sea un viejo y no pueda pararme del asiento. Ahora quiero disfrutar, y hacer disfrutar a todos los que al igual que yo, sientan la misma pasión esquizofrénica por mejorar el código cada vez más. Al final de la jornada, de esto se trata ¿no es verdad? De disfrutar.

Entonces a partir de hoy, voy a "arreglar" código aquí junto a ustedes. El objetivo es bien simple: tomar algo que no sirve, funcione o no, y hacerlo ver lo más lindo posible: mayor claridad, mayor flexibilidad, mayor mantenibilidad (¿es esta una palabra, o me la acabo de inventar?), mayor consistencia, y mayor mayor mayor... Así que aquí vamos... ¿quién me sigue?

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.