miércoles, octubre 11, 2006

Yahoo! UI Library (YUI) - Aplicando Patrones

En el post anterior, les conté que se puede hacer con las librerías de componentes JavaScript de Yahoo!. Aprender a utilizar los componentes es bastante fácil, pero planear una estrategia para brindar a nuestra aplicación una arquitectura robusta, requiere un poco más de atención.
Es aquí donde aparecen los patrones de diseño y de desarrollo. Pero antes, un par de preguntas,


¿Qué es un patrón?

Bueno, si ponen en el Google "patrones J2EE" van a encontrar muchísimas páginas relacionadas con los patrones arquitectónicos, para aquellos interesados en patrones básicos e imprescindibles hoy en día, les recomiendo los blueprints de Sun y por supuesto el clásico de clásicos "Gang of Four".


¿Cuál es el propósito de aplicar un patrón?

La respuesta es bastante simple, "No reinventes la rueda". (Si, lo dijo algún sabio, muchos lo escribieron en sus libros, muchos lo leímos en libros, nos lo contaron los profesores en la Universidad, lo escuchamos en cada Tech Day de cualquier lenguaje, y sin embargo, siempre tenemos que hacer todo desde cero).


¿Qué tienen que ver los patrones Yahoo! con los patrones J2EE?

Absolutamente nada, los patrones J2EE son patrones de diseño arquitectónico, optimizados para el desarrollo web en Java, en cambio, los patrones de Yahoo! son patrones de diseño de páginas web, sin entrar a detallar para nada, el código a ejecutar en el servidor. Esta diferencia es fundamental, para aquellos a los que le gusta el diseño y la arquitectura de sistemas, no busquen la solución en UML en los patrones de Yahoo! (al menos por ahora).

Ahora sí, los patrones:

Para tener un acceso rápido a la librería sigue el siguiente link Yahoo! Design Pattern Library.
Ahí van a encontrar un listado de todos los patrones de diseño que nos ofrece. Básicamente, cada patrón propone un resumen de aplicación y la solución (puramente visual). El problema con estos patrones es que deberemos tener en claro cuál es el problema que queremos resolver (si, ya sé, parece trivial, pero pasa muchas veces).
Recuerden que estos patrones resuelven problemas de diseño de interfaces y no de diseño arquitectónico de la aplicación, por lo que ni piensen en encontrar ejemplos de programación en Java ni en ningún otro lenguaje, de esa tarea ya se encargan los patrones de diseño arquitectónicos que mencioné en la primera pregunta.
Para aquellos que no somos de los diseñadores de interfaces más creativos, es un buen recurso para tomar como punto de partida antes de iniciar horas y horas de programación para mostrar un listado paginado. o para tratar de resaltar una información específica de un informe.
Si bien para algunos, puede parecer que la información que nos dan estos patrones es un poco trivial (como por ejemplo, el patrón "Search Pagination"), si eres de los míos, que no nacimos con el don de combinar colores agradables a la vista del usuario, siempre hay información útil, y más considerando que YUI nos brinda una serie de controles extraordinarios.

Saludos, PF