Herramientas que utiliza un buen desarrollador web

Herramientas que utiliza un buen desarrollador web

Con el paso de los años el desarrollo web ha cambiado mucho. Las soluciones web se han vuelto mucho más complejas si comparamos con aquellos trabajos que se hacían a finales de los noventa y primeros años de la década del 2000. Con un simple editor de texto y un cliente ftp podíamos mantener fácilmente una página web. Los contenidos, normalmente estáticos, se subían una única vez y nos olvidábamos. Con unos pocos conocimientos de html podíamos poner a funcionar un sitio web en cuestión de días.

Todo esto a cambiado muchísimo, cualquier pequeño desarrollo se ha vuelto mucho más complejo. Una web sencilla, desarrollada utilizando un CMS tan popular como es WORDPRESS, está conformada de un montón de lenguajes de programación que tenemos que dominar para generar un producto de calidad.

HTML, Javascript, CSS, Mysql, PHP, son algunos de estos lenguajes de programación, pero a esto tenemos que sumar algunas librerías o frameworks como BootStrap, Jquery, Vue o React.

Gestionar todo esto se ha vuelto harto complicado, y por ello los desarrolladores utilizamos una serie de herramientas que nos hacen la vida más fácil. En mi caso, mis favoritas son las siguientes:

IDE

Un IDE (Integrated Development Environment), es un Entorno de Desarrollo Integrado, que mejora tu productividad, proporcionando una serie de facilidades para el desarrollo de software. Generalmente está compuesto por un editor de código, herramientas de automatización y un depurador.

Los IDEs modernos cuentan con un completador de código inteligente que nos ahorra mucho tiempo escribiendo líneas de código repetitivas maximizando así nuestra productividad. Los IDE más utilizados por la comunidad de desarrolladores son: Visual Studio Code, Sublime, Atom, Eclipse, Android Studio, NetBeans, JetBrains IntelliJ y Apple Xcode. Cada uno de ellos suele estar centrado en un lenguaje de programación, pero muchos de ellos utilizan plugins para hacerlos compatibles con otros lenguajes.

COMPOSER

Si programas en PHP, este es el orquestador de paquetes por excelencia. Te permite administrar las librerías de terceros que necesites incorporar a tu proyecto. Toda la información relativa a este se mantiene en un fichero llamado composer.json.

Matener actualizadas las librerías que utiliza tu proyecto es muy cómodo, bastará un simple "composer update" desde la línea de comandos para que COMPOSER busque en el repositorio PACKAGEIST las últimas versiones de tus librerías e las instalará de forma automática. Añadir nuevas librerías a tu proyecto también se hace de una forma muy sencilla, ejemplo: composer require base/demo-base-code.

REPOSITORIOS:

GITHUB, GITLAB, BITBUCKET son algunos ejemplos. Todos ellos son gratuitos para repositorios públicos, aunque presentan algunas limitaciones para los privados, o por ejemplo para el tamaño de los ficheros como es el caso de GITHUB. Tener centralizado tu código en un repositorio es muy beneficioso, sobre todo si en el proyecto trabajan varias personas y cada una ella dispone de un entorno de desarrollo independiente. Los repositorios permiten tener organizados todos los ficheros de tu proyecto y almacenados de una forma segura en la nube. Su funcionamiento se basa en un software de control de versiones, como por ejemplo GIT.

GIT

Git es un sistema de control de versiones que te ayuda a rastrear y gestionar los cambios realizados en los archivos que forman parte de tu proyecto. Nos facilita hacer el seguimiento de las modificaciones en el código fuente, pudiendo revertirlas sin repercusiones en caso de que se cometa algún error. Git es distribuido, lo que significa que cualquier colaborador del equipo de desarrollo que tenga acceso, puede gestionar el código fuente y su historial de cambios. Normalmente estos cambios se realizan en nuestro ordenador de desarrollo, realizando "commits" locales. Una vez que nuestro código funciona correctamente, mediante GIT actualizaremos los ficheros en el REPOSITORIO con nuestras modificaciones.

Es muy útil para el despliegue rápido de las actualizaciones en los servidores de producción. Muchos paneles de control de proveedores de hosting permiten configurar git para hacer actualizaciones de una forma muy sencilla evitando tener que usar un cliente FTP. GIT comprobará qué ficheros de tu proyecto han sido modificados o añadidos y los actualizará automáticamente.

DOCKER:

Docker permite empaquetar software en un sistema de "contenedores" que incluyen todo el ecosistema de librerías necesario para que ese software o página web funcione correctamente. Fundamentalmente lo utilizo para recrear en mi ordenador local el entorno definitivo de producción y así asegurarme que una vez que publique mi aplicación web o página, esta funcionará sin problemas. Es muy útil en aplicaciones complejas desarrolladas por varias personas, ya que esos contenedores se ejecutarán de igual forma con independencia del sistema operativo utilizado por el programador (WINDOWS, MAC o LINUX ).

La principal diferencia con una máquina virtual es que docker no tiene un supervisor, por lo que al trabajar directamente sobre el kernel de tu sistema, es mucho más liviano y rápido. También goza de otras ventajas como que no es necesario instalar un sistema operativo en el contenedor lo cual redunda en un uso menor de los recurso de la máquina y en una mejor portabilidad.

Existen multitud de imágenes docker en https://hub.docker.com/ que se adaptan a tus necesidades, o que puedes utilizar como base para crear tus propias imágenes con todo aquello que necesite tu proyecto web.

Existen muchas más herramientas para facilitarnos la vida, pero para mi estas son las más importantes.