Como desarrollador e ingeniero de desarrollo de aplicaciones web, y con la experiencia ganada en los años previos usando software open source, he llegado a un utilizar un conjunto de herramientas que para mi son fundamentales y mi constituyen la base de desarrollo de aplicaciones. En esta lista me limitaré a los desarrollos con php, mysql y apache.Herramientas de Edición
Eclipse: Eclipse es uno de los editores open source más utilizados en entornos java junto con otras herramientas como netbeans. Pero no solo se limita a este lenguaje. Eclipse tiene un módulo para php llamado PDT (PHP Develpment Tool) (descargar PDT). Es un framework abierto que puede es extendido por la comunidad open source y tiene diferentes módulos que permiten cubrir todo el ciclo de vida de los proyectos. Este módulo de PHP es muy completo y da un soporte al desarrollo orientado a objetos excelente que no deja nada que envidiar a otras herramientas comerciales. Para que el sistema de reconocimiento de clases funcione adecuadamente, lo único que hay que hacer es documentar adecuadamente las clases y usar las directivas de documentación como @return para los métodos que devuelven objetos.
Scite: Editor de código basado en texto, contiene plugins para reconocimiento de muchos lenguajes de programación (ADA, C++, Perl, PHP, Javascript, etcc), algunas funciones de completado e indentación de código. Es muy útil para realizar pequeños cambios que no requieren de un entorno gráfico completo. Es una buena alternativa al Notepad para otras labores de edición de texto en windows.
Herramientas Complementarias
Firefox: Es una herramienta para mi fundamental e impresindible. Actualmente se tienen muchos plugins para desarrolladores que facilitan las tareas enormemente. Lo verdaderamente importante es ver Firefox como algo más que un navegador, para ello, voy a listar a continuación la lista de plugins que a este momento son importantes para el desarrollo de aplicaciones web.
-
view source chart: Crea un diagrama en capas de la estructura HTML de una página web
-
jsview: Permite ver el código de las páginas externas (enlazadas) a una página web. Como hojas de estilo, ficheros de javascript, etc.
-
FireBug: Herramienta de depuración de javascript. Muy útil pues permite visualizar los errores y cargar el código javascript.
-
fireFTP: Integra un cliente de transferencia de ficheros. Trabaja con SSL, permite hacer sincronización de directorios etc.
-
Web Developer: Esta extensión ofrece herramientas a los desarrolladores web para aprender y depurar sitios web.
-
del.icio.us Complete: Herramienta para guardar y gestionar tags en del.icio.us
-
IP: Muestra la dirección IP de salida a Internet
-
Server Spy Permite identificar el tipo de servidor web donde nos estamos conectando. (Ej. Apache 2.2.2, IIS etc).
-
ColorZilla Este plugin permite “capturar” valores de colores de una página web mediante un gotero. Muy útil para los diseñadores.
-
JavaScript Debugger: Depurador de javascript. Permite colocar puntos de ruptura y hacer seguimiento paso a paso de la ejecución de código. Excelente para cuando los scripts cascan y no sabemos exáctamente donde puede estar el fallo. Es un complemento de FireBug que tiene una consola muy buena para ver los errores de javascript.
De la lista anterior, los que yo más utilizo en desarrollo son, FireBug, fundamental para el desarrollo de aplicaciones ajax, pues nos da una vista de cada petición que se envía al servidor, los parámetros pasados y la respuesta recibidia. Adicional a ello, nos ofrece información sobre el peso de la página (tamaño), lista de ficheros css y javascript que se descargan, imágenes y otras herramientas.
Como segunda herramienta imprescindible es la herramienta de desarrollo web, de esta herramienta utilizo principalmente tres funciones, las relacionadas con las hojas de estilo en cascada que permite ver que estilos tienen los elementos html que visualizamos (permite “depurar” las hojas de estilo), la herramienta de formulario para determinar nombres, campos ocultos, etc y la validación de código local, para validar nuestro código generado (Depurar html).
La herramienta de ColorZilla y la extensión para medir áreas son útiles para los diseñadores pues permiten capturar colores y obtener los valores rgb y medir áreas para la elaboración de imágenes. del.icio.us aunque no es una herramienta de desarrollo, para mi es fundamental para no perder la referencia a tutoriales, guias, blogs, herramientas, metodologías y demás que en cualquier momento podemos necesitar.
Herramientas de Soporte
Subversion: Servidor de control de versiones, es altamente recomendable que por pequeño que sea un proyecto, mantengamos un sistema de control de versiones. Subversion tiene diferentes aplicaciones cliente, yo utilizo tortoise svn.
Argo UML: Herramienta de diseño con UML, es una herramienta open source que permite documentar nuestros desarrollos orientados a objetos. Lo único que actualmente no permite hacer y que es fundamental son los diagramas de secuencia. O por lo menos, yo no he encontrado una forma de hacerlos adecuadamente.
Herramienta de Gestión de bugs: Fundamental este tipo de herramientas para hacer u nseguimiento a los fallos encontrados y nuevas características pedidas por los clientes. FlySpray es una buena herramienta y la que uso actualmente.
Herramienta de Documentación:
Para escribir los proyectos, documentos y demás yo personalmente utilizo dokuwiki y wordpress cada uno con propósitos diferentes.