jueves, 12 de diciembre de 2013

Cutting edge design patterns


Fuente: Arbotante de la Catedral de Amiens (Wikipedia)

En 1979 el arquitecto Christopher Alexander publicó un impactante libro conocido como "The Timeless Way of Building" (El modo intemporal de construir), que supuso una mejora en la calidad de la construcción de edificios al introducir una serie de patrones basados principalmente en la arquitectura clásica y en menor medida en la vanguardista. En los años posteriores, Christopher Alexander y sus colegas publicaron el volumen "A Pattern Language" donde se recopilaba todo el conocimiento arquitectónico hasta la fecha.

La repercusión de estos libros se vio reflejado en el mundo de la ingeniería en 1987, cuando los informáticos Ward Cunningham y Kent Beck sorprendidos por el pobre conocimiento que se transmitía a los alumnos de programación orientada a objetos decidieron aplicar los conceptos de Alexander a las técnicas de polimorfismo y herencia de la OOP. Es así como surgen publicaciones exitosas como el libro "Dessign Patterns" del conocido grupo GoF (Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson y John Vlisides) donde se aglutinan los patrones más conocidos hasta 1995. Otros libros como el "Thinking in Patterns" de Bruce Eckel han tenido también bastante repercusión en el mundo de la Ingeniería del Software y Java.


Hoy, los patrones permiten aplicar una posible solución correcta para un problema de diseño dentro de un contexto dado: aplicaciones cliente-servidor (patrón MVC), aplicación gráficas (patrón Command), dispositivos hardware (patrón Observer), bases de datos (patrón Facade), procesadores de texto (patrón Composite), etc. Incluso ya existen patrones de diseño para sistemas masivamente paralelos (MPP) de simulación de sistemas dinámicos (N-Body particle simulation) y análisis de modelos climáticos que pueden ser consultados en la página del departamento de Ingeniería Informática de la Universidad de Illinois:

La importancia de los patrones de diseño y arquitectónicos que propuso Christopher Alexander nos recuerda que a veces tenemos que olvidar la tendencia al desarrollo rápido de aplicaciones y volver a los fundamentos, a las bases iniciales, pues es allí donde se forjan los conocimientos clave para el desarrollo de aplicaciones duraderas y mantenibles en el tiempo.

Finalizamos esta entrada en el blog citando la frase del mítico literato T.S. Eliot, puesto que evoca la relevancia de la utilización de patrones también en Ingeniería Informática y TIC:  «La imaginación, cuando se ve forzada a trabajar dentro de un marco muy estricto, debe realizar el mayor de los esfuerzos, lo que le llevará a producir sus mejores ideas. Cuando se le ofrece una libertad total, probablemente su trabajo resulte deslavazado».

No hay comentarios:

Publicar un comentario en la entrada