viernes, 4 de julio de 2008

Mejorando el performance de las aplicaciones web

Siempre se debe desarrollar pensando en el performance de la aplicación y en el caso de las aplicaciones web el tema del performance toma mucha fuerza ya que este tipo de aplicaciones son muy sensibles a los retrasos. A nadie le gusta usar una página web que sea lenta! No importa cuanto esfuerzo se haga en el desarrollo, todo se irá a la basura si la página tarda 5 segundos más de lo que debería.

Luego de investigar un poco más sobre el tema del performance en las aplicaciones web, encontré la página de Steve Souders, un gurú del web performance que trabajó en Yahoo! como Chief Performance Yahoo! y que actualmente trabaja en Google en el área de web performance.

Luego de mucho tiempo de investigación Steve y su grupo descubrieron que, del total de tiempo de carga de una página web, sólo el 20% es usado para cargar el código html, el otro 80% se usa para cargar el resto de los componentes de la página (ccs, javascript, imagenes, etc). Dicho esto Steve explica en sus charlas que la regla de oro para mejorar el performance de una aplicación web se basa en enfocarse en ese 80% restante.

Además de su libro High Performance Web Sites, Steve ha desarrollado herramientas como YSlow y Cuzillion, que resultan de mucha utilidad para cualquier desarrollador que desee mejorar el performance sus aplicaciones web.

En sus charlas Steve expone sus 14 reglas para desarrollar páginas más rápidas y explica como usar YSlow y Cuzillion para ayudar en el proceso de optimización.

En general las reglas son un conjunto de pequeños cambios de alto impacto. La mayoría de las reglas son fáciles de aplicar y los resultados son realmente sorprendentes. Para darles una idea, luego de aplicar un par de reglas logré reducir los tiempos de carga de varias aplicaciones web en más de un 60%. Nada mal, para un par de ajustes!
The Performance Golden Rule
80-90% of the end-user response time is spent on the frontend. Start there.

Actualmente Steve está trabajando en un conjunto nuevas reglas para lograr páginas aún más rápidas, así que les recomiendo que estén atentos.