Friday, May 30, 2014

Gulpjs


Gulpjs ¿Qué es?
¿Qué se puede hacer?
Filosofía de Gulpjs
Custom Task: AutoTesting (Vídeo)














Gulpjs ¿Qué es?


Es una herramienta que nos permite escribir las tareas pequeñas y repetitivas en la que hacamos uso de edición de archivos de nuestros proyectos de una forma sencilla y potente.

Desde mi punto de vista es un Gruntjs desvitaminado(disclaimer: Gruntjs es una currada extrema, si es que hasta el logotipo se lo han currado para hacerlo SVG) con todo lo que ello conlleva, facilidad de aprendizaje y uso, en este caso muy intuitivo.



Sus creadores en su guía de diseño para plugins lo definen bastante bien, quieren librerías que hagan una solo cosa y abogan por la unificación, si ya hay un plugin que hace una tarea te recomiendan no hacer un clon.

Hace uso intensivo de los streams de nodejs por lo que supongo que en tareas que manejen mucha informació el rendimiento se acabará notando.


¿Qué se puede hacer?


Los principales ejemplos que exponen son aquellas tareas que deben hacer la gran mayoría de frontenders y desarrolladores web y es minificar/unir archivos css, javascript.

También es muy típica de ver la funcionalidad de redimensionar imágenes.

Seguramente con el tiempo salgan sitios de recetas para gulp por lo que ni siquiera habrá que currarse las típicas.


Filosofía de Gulpjs


Quieren centrarse en tener unas herramientas muy unitarias para que puedan combinarse entre sí gracías a los streamings de Nodejs, su objetivo es el mismo que las herramientas que tenemos cualquiera en nuestra línea de comandos, de hecho hacen uso de unas llamadas pipe() encadenadas que son exactamente igual que los  ‘|’ pipes de unix.



Y, ¿sabéis qué? YO, que hace unos años me resultaba super extraño irme al Terminal, he caído rendido a sus pies, y cada vez que veo a alguien realizando una tarea con el ratón que se podría hacer rápidamente con el Terminal mis tripas internas se revuelven.


Custom Task: AutoTesting (Vídeo)


Desde que conocí Grunt siempre me llamó poderosamente la atención la función watch(), que te permite vigilar continuamente un fichero o carpeta y cuando haya cambios realizar una acción, todavía no había desarrollado o encontrado una utilidad práctica, pero para probar gulp me monté un vigilante que me miraba algunas carpetas de un CakePHP y cada vez que modificaba un test y/o un modelo me lanzaba los tests en background y me mostraba el resultado en una notificación nativa.

Llevo ya un par de desarrollos realizados con este sistema y no puedo estar más contento, recibir el feedback instantáneo con notificaciones sin tener que moverme del archivo que estoy tocando es algo parecido a la magia.

Decidí compartir un vídeo explicativo que os dejo por aquí, uno de los devs del core de CakePHP me comentó la posibilidad de añadirle audio, creo que no podía negarme ante un dev que ha aportado tanto a la comunidad.

La verdad es que la poca costumbre de hablar en inglés se deja notar con el paso de los años, pero creo que es un vídeo de gran valor. Por esta razón os dejo ambos, en el caso del audio en inglés os dejo que me acuchilleis con vuestros comentarios. :)

Sin audio

Con audio en inglés




No comments:

Post a Comment