28. August 2008 21:01Los olores del código (parte 1)

Seguro que alguna vez os ha tocado algún proyecto en el que al ver el diseño o el código habéis dicho: "pufff, esto tiene un tufillo a mierda fresca que no veas". Pues ese es el olor de vuestro software. Y es que es cierto aquello de que la mejor métrica para media la calidad del código es la siguiente:

best code metric

El proyecto en el que estoy trabajando ahora huele tanto que ninguno de la empresa se quiere acercar al grupo de desarrollo. Por supuesto, el código tiene infinitos años y a cada nueva versión se le han ido añadiendo nuevas funcionalidades que más bien eran parches sobre un diseño pobre y mal pensado. Pero... ¿cómo identificar esos olores? Brian Foote y Joseph Yoder han realizado hace ya tiempo un artículo que se llama Big Ball of Mud que probablemente os suene a todos (y sino ya lo estáis leyendo, no tiene desperdicio).

While much attention has been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture is seldom discussed. This paper examines this most frequently deployed of software architectures: the BIG BALL OF MUD. A BIG BALL OF MUD is a casually, even haphazardly, structured system. Its organization, if one can call it that, is dictated more by expediency than design. Yet, its enduring popularity cannot merely be indicative of a general disregard for architecture.

En el paper se identifican las principales causas y los patrones que llevan a que una arquitectura sea considerada una "Gran Bola de Mierda". Durante los próximos posts los iré comentando además de poner algún ejemplo relacionado con el glorioso proyecto en el que tengo el honor de trabajar. Hasta entonces, happy coding!

 dilbert-mud

23. January 2008 20:32Comentar, comentar, comentar

Seguro que más de una vez os habrá tocado leer código de otra persona. Problablemente esa persona ya no estuviera en la empresa y lo que es mejor, seguro que toda la documentación estaba en su cabeza. Todos hemos sufrido esa desgracia y hemos sentido la necesidad de aporrear el teclado al estilo niño loco alemán. ¿Pero hemos hecho algo para cambiar esto?¿Escribimos más líneas de comentarios que de código pensando en la persona que va a venir detrás de nosotros? Noooo, claro que no. El tiempo que pasamos comentando lo podemos pasar picando código que es para lo que nos pagan. Pero no os preocupéis, he encontrado la solución: Cenqua: The Commentator. Cenqua es un comentador automático de código altamente configurable:

int sum = 0;   
for (int i= 0; i < a.length; i++) {
sum += a[i];
}

Puede convertirse en:

 //okey dokey, lets sum the elements of a   
int sum = 0;
// the sum of all fears
for (int i= 0; i < a.length; i++) {
sum += a[i];
// all your a[i] are belong to us
}

O también en:

int sum = 0;   
//don''t even fucking *think* about asking
for (int i= 0; i < a.length; i++) {
sum += a[i];
}

O:

int sum = 0;   
//avoid using the reverse "i >= 0; i--" style loop here,
//it would obviously be more efficient, but blows up in gcc
//under linux and solaris
for (int i= 0; i < a.length; i++) {
//always use += where possible, its faster
sum += a[i];
}

 

/*******************************************************   
* okay, finally we are ready to take the important step of
* summing the integer elements of a. I''ve researched the
* most efficient algorithm and settled on this one,
* presented by Knuth. I don''t quite agree with his
* reasoning but the algorithm is sound (did I tell you
* about the cheque I got from Knuth? no? It was back
* in my uni days when I was writing my thesis (youngest
* ever accepted into the program) in TeX on the PDP-10.
* I just couldn''t get it to format my differential
* equations properly, and a quick look under the hood...
No lo dudes más, aumenta tu productividad con Cenqua: The Commentator.

5. December 2007 02:00Tirando la casa por la ventana

Y es que mañana el clubdotnet de la Facultad de Informática de la UPM se va a dedicar a regalar cientos y cientos de Windows Vista y Visual Studio 2005 (el resto de software de Microsoft estará disponible a través de MSDNAA) durante la University Tour.

Así que ya sabéis, si queréis vuestra licencia completamente legal, 1 crédito de libre elección, enteraros un poco de que va eso del framework .net y lo que podéis hacer o tirarnos tomates, pasaros por el Salón de Actos a partir de las 10.00 de la mañana. Además tendréis la suerte de ver en vivo y en directo a Pedro Laguna, el pelirrojo más sexy y soltero de todo Sevilla.

  • 10:00 – 10:45 ¿Qué puedo desarrollar con .Net?
  • 10:45 – 11:45 Seguridad: Fortificando la web
  • Descanso
  • 12:00 – 13:00 Sé poderoso con tu Windows Server 2008
  • 13.30 – 14:30 Rich Internet Applications con Asp.Net, Ajax y Silverlight
Podéis inscribiros aquí para asistir al evento :)

Powered by BlogEngine.NET 1.4.5.0
Theme by molant