« Blogday 2005 | Inicio | [J2ME] Un artículo sobre la Mobile Media API ( JSR 135 ) »

Esto es acoplamiento

Para ver un ejemplo de acoplamiento brutal, se puede ver este post de The Daily WTF.

No es algo para tomárselo a risa, porque antes o después lo hemos hecho todos. Muchas veces, hacer las cosas así puede ser una solución rápida y eficaz a un problema concreto, pero pobre del que tenga que mantener o añadir funcionalidades a ese código.

Para eso, precisamente, están los patrones de diseño y las buenas prácticas en la programación orientada a objetos.

Comentarios

Aunque uno intente seguir el buen camino, siempre hay algún indeseable jefe de proyecto te obliga a tomar estas soluciones...

Pues muchas veces sí, pero el que va a pagar los platos rotos ( mantenimiento ) vamos a ser los programadores...

El ejemplo del color es bueno, tirar código así desde luego es para que le pongan a uno delante de un peloton de fusilamiento, pero mucho más terrible es que conozco muchos programadores "profesionales" que ante un código así dirian algo como: "¿y que tiene de malo?, funciona ¿no?".

Recuerdo una aplicación es mis inicios en esto donde me tope con un "bug" con el que me costo bastante dar por un tema muy similar. Basicamente el programador original de la aplicación usaba el texto que aparecia en los botones para hacer una u otra cosa. En algún lugar recondito del código tenia algo como:

if ultimo_boton_presionado.caption = "fulano"
....
else if ultimo_boton_presionado.caption = "mengano"
....

"Sorprendentemente" la aplicación dejo de funcionar al traducir los textos de la interfaz a otro idiomna (concretament e fue al portuges). Lo peor es que cuando detecte el problema y le pregunte a mi análista: "oye mira pasa tal ¿como me recomiendas arreglarlo?", la respuesta fue: "ahhh que alivio, ¿sólo es eso?, pues nada hombre pon un OR en esos if y así funcionará en los dos idiomas"... y por la cara que puso estoy seguro que el tio para sus adentros penso algo como: "juas, juas, soy el análista máquinote con sóluciones para todo, ¡hasta se me ha ocurrido una para que funcione en los dos idiomas a la vez!

Caso real, no es ficción, lo juro.

Pues justo así nos enseñaban a programar en Delphi en el módulo de FP de DAI (desarrollo de aplicaciones informáticas).

"si en el botón pone 'A', haz 'a', si en el botón pone 'B', haz 'b'."

Hale, ya sabeis de donde salen estas cosas.

PD: Prometo que no lo volveré a hacer.

PPD: Que lo haga un FPito, puede ser perdonable (ni siquiera nos enseñan POO), pero lo del señor analista ese es de llamar a la inquisición.