sábado, 5 de enero de 2008

Mis herramientas de programación web


Muchas veces me han preguntado que herramientas uso o recomiendo a la hora de desarrollar sitios web. En este post procedo a comentarlos brevemente.

En más de una ocasión me han preguntado que herramientas uso para desarrollo web. Creo este post para listarlas brevemente.

Eclipse: Una linda IDE multiplataforma, muy buena para web si se tienen los plug-ins adecuados.

  • PDT: El PHP Development Tools trae documentación de php.net y la integra en el IDE, y facilita la navegación del código entre llamadas a funciones y clases. No tiene nada que envidiarle a Zend Studio.
  • Aptana: El editor por excelencia para XHTML / CSS / JS. Su documentación y autocompletar indican para cada elemento / atributo / función de CSS o JS en que navegadores está soportado y desde que versión.

FireFox: El mejor navegador para todo desarrollador web al equiparselo con los plug-ins adecuados:
  • FireBug: La navaja suiza del programador web. Trae una consola para ejecutar JS sobre la marcha, un debugger de JS, un inspector DOM, permite agregar y modificar el código HTML / CSS a gusto y ver en el momento como quedan los cambios, permite analizar la performance del código JS y analizar en detalle los pedidos realizados con XMLHttpRequest, entre muchas otras cosas. Un verdadero indispensable.
  • Tamper Data: Permite modificar la información que se envía por POST a un sitio. Esto permite inyectar valores inválidos dentro de formularios, como ser inyección de código SQL o HTML. Muy bueno para verificar la seguridad de nuestras aplicaciones web más allá de las validaciones hechas por JS.
  • HTML Validator: Un simple plug-in que analiza el código HTML de un sitio y le aplica Tidy o SGML para verificar si cumple con los estandares web de la W3C según el DOCTYPE declarado. Muy útil y más rápido que ir al validador de la W3C.
  • YSlow: Un plug-in de la gente de Yahoo para FireBug (sí, un plug-in para el plug-in). Permite recrear todos los pedidos hechos desde que se cargó la página (incluidos los pedidos por XMLHttpRequest) y evaluar la velocidad de carga del mismo, tanto con como sin caché, haciendonos varias sugerencias para mejorarlo.
  • CSS Viewer: Permite ver las propiedades CSS del elemento que se encuentra bajo el mouse en un momento dado. Algo similar se puede lograr con el Inspect de FireBug, pero a veces es más cómodo este plug-in.

Ahora bien, si bien esto cubre el grueso del desarrollo, hay otras cosas. En primer lugar, no me gusta desarrollar sobre un servidor público, en particular cuando se está trabajando en una nueva versión de un sitio ya en producción, por lo que tener Apache, Lighttpd u otro servidor web instalado sirve, siendo lo ideal tener el mismo que el server donde se va a instalar la página. Del mismo modo es aconsejable tener una copia local de la base de datos (si llegamos a corromperla o perder datos en producción sería trágico). Por último, y no menos importante, incluso si como yo son usuarios de Linux, nunca olviden tener un buen Internet Explorer 6 (si además tienen el 7 mejor) para poder testear sus sitios. En los personal tengo una máquina virtual con ambos instalados desde un Windows XP (máquina del usuario promedio) y desde allí verifico todo mi sitio antes de subirlo al servidor. Uno nunca se deja de llevar sorpresas al ver las cosas que funcionan o fallan en uno u otro navegador....