Patrones de diseño: ¿buenos o malos?

Hace un tiempo he leído variado artículo y discutido con varias personas sobre este tema, uno de los cuales me apasiona bastante recientemente.

Resumiendo los puntos de vista a favor, se puede destacar lo siguiente:

  • Los patrones de diseño son una recopilación de buenas prácticas para resolver problemas de diseño comunes o recurrentes.
  • Hasta el programador más novato hace uso implícito de patrones, como mínimo usando las implementaciones que pueden ofrecer los frameworks para diferentes funcionalidades. Por ejemplo, el patrón Iterator para recorrer una colección.
  • Los patrones de dseño se han vuelto un pilar del desarrollo de software. La mejor muestra de ello es el catálogo de Gang of Four, el cual después de muchos años aún es vigente y la mayoría de sus patrones siguen siendo modelo a seguir (ojo, no todos!).

Por el contrario, desde otro punto de vista se puede decir lo siguiente:

  • En ocasiones los patrones de diseño introducen complejidad innecesaria en un sistema, al tratar de especular sobre flexibilidad a futuro que puede que nunca se vaya a necesitar, haciendo mas complicada asi la labor de mantenimiento de un  sistema.
  • Un patrón de diseño usado por personas poco experimentadas puede traducirse en un desastre de software.
  • Hay patrones de diseño que introducen más problemas de los que resuelven, un ejemplo de ellos es el Singleton

En terminos generales, la conclusión es que a la hora de diseñar una solución se debe pensar primero, analizar la problemática, evaluar las alternativas de solución posibles, y mantener siempre presentes los principios de un buen diseño: simplicidad, alta cohesión, bajo acoplamiento, y tomar decisiones basados en experiencias.

¿Usted qué opina?

Anuncios

Enviar correo electrónico a una carpeta del sistema en C#

Hay ocasiones en las que necesitamos probar partes de nuestro código que incluyen la funcionalidad de envío de correos electrónicos y no siempre se puede contar en los ambientes de desarrollo o pruebas con un servidor de correo SMTP. Una alternativa para probar nuestras funcionalidades en ese contexto, es almacenando los mensajes de correo en una carpeta específica del servidor.

Leer más de esta entrada

Creando un servicio WCF básico con JSON

En este tutorial, veremos cómo crear de forma sencilla un servicio WCF que haga uso de JSON.

Leer más de esta entrada

Manipular hojas de Excel usando la librería EPPlus

En internet se encuentra una gran variedad de componentes libres que permiten realizar fácilmente operaciones con hojas de Excel. Entre las ventajas que brindan estos componentes, la mayor es la de no depender de tener que instalar software adicional ni de hacer implementaciones complejas, ya que el objetivo de estos componentes es encapsular esa complejidad en métodos mas sencillos que permiten a los desarrolladores concentrarse realmente en lo que necesitan hacer y brindando mayor productividad.

Leer más de esta entrada

¿Dónde está el acceso directo de Visual Studio 2010 en mi Windows 8?

Hola a todos. Escribo este post con el propósito de que sea útil a alguien y le ahorre el tiempo que yo perdí el día de hoy por la situación que les narraré a continuación.

Estaba configurando las herramientas para desarrollador en una instalación limpia de Windows 8 (para que lo hagan ustedes se pueden basar en este buen post de @warnov), y cuál sería mi sorpresa cuando al tratar de iniciar el Visual Studio 2010 que había acabado de instalar no podía acceder a él, ya que no encontraba el acceso directo. Leer más de esta entrada

Simulation Dashboard: Novedad para depuración en Windows Phone 8

Entre las novedades que tenemos en el SDK de Windows Phone 8, ahora contamos con herramientas adicionales a las que ya estábamos acostumbrados con el emulador de Windows Phone 7 para probar nuestras apps.

Uno de los escenarios más comunes es que se acostumbra probar las apps en condiciones óptimas, pero una vez se liberan nos podemos enfrentar a escenarios de falla en condiciones difíciles con temas como la intensidad de la señal o la velocidad de conexión a la red de datos. Es para esto que en el Windows Phone 8.0 SDK se incluye el Simulation Dashboard, al cual podemos acceder por el menú Tools de Visual Studio. Leer más de esta entrada

Lanzar llamadas desde una app Windows Phone 7

Hoy conoceremos un poco más sobre uno de los Launchers que podemos usar para realizar llamadas desde una app en WP7.

Esto se hace básicamente a través del uso de la clase PhoneCallTask. Leer más de esta entrada