domingo, 15 de septiembre de 2013

Introducción a Git en Hellín

Ayer tuvimos la tercera reunión del Meetup de desarrolladores de Hellín y alrededores. Esta vez el tema fue Git, probablemente el mejor gestor de versiones distribuido que hay en el mercado y además de código abierto. Dimos una introducción a los gestores de versiones y estuvimos haciendo prácticas con Git, de forma local y contra cuentas en GitHub, tanto por línea de comando como al final con una herramienta como SourceTree de Attlasian (menos el linuxero, que todavía no tiene versión...)

El grupo sigue creciendo de forma modesta, pero es que en esta zona de España no hay la comunidad que se puede encontrar en grandes ciudades y hay que ir generando impulso poco a poco. Lo importante es que en cada nueva reunión viene gente nueva y eso es muy positivo. Es el único grupo que conozco que hay en la zona de Albacete y Murcia, así que si vivís u os movéis por esa zona, podéis apuntaros y si hay gente que conozcáis que pueda estar interesada, comentádselo también.

Como siempre, aquí os dejo la presentación, por si os pudiera ser de interés:


viernes, 6 de septiembre de 2013

Generator de Yeoman para AngularJS con Jade y ExpressJs



Yeoman (http://yeoman.io/) es un conjunto de herramientas para que hacer desarrollo web sea agradable y productivo. Utiliza "yo" para hacer scaffolding de proyectos, "grunt" para las tareas de arrancar servidores, compilar SASS o CoffeeScript, optimizar imágenes y todo lo que se te pueda ocurrir. Con "bower" puedes gestionar las dependencias de las librerías de cliente, como hace "npm" para proyectos de NodeJS o los pom.xml en proyectos Java con Maven.

AngularJS (http://angularjs.org/) es uno de los frameworks MVWhatever de moda. En mi opinión, es de lo mejor que se puede encontrar. Está muy bien pensado, con unas ideas fundamentales de arquitectura muy bien pensadas, es muy productivo, tiene unos tutoriales fantásticos con los que puedes empezar a trabajar después de dedicarle un par de horas y tiene una flexibilidad tremenda.

Jade (http://jade-lang.com/) es un lenguaje y motor de templating para que generar HTML sea productivo. Tanto es así, que en Adesis todos los que hacemos front lo usamos y cuando tenemos que escribir HTML a la antigua usanza para algún otro motor de templating es peor que un dolor de muelas. Ya hay ports para todos los demás lenguajes. Está hecho por desarrolladores front para desarrolladores front, de ahí que los problemas habituales que tenemos estén correctamente abordados.

ExpressJs (http://expressjs.com/) es un servidor para NodeJs donde puedes hacer maravillas con muy pocas lineas de código. En concreto implementar APIs REST, ya sea porque hagas implementaciones finales o porque tengas que simular alguna con la que te vayas a integrar es algo trivial.

Los más probable es que ya conocieses todas estas piezas si haces desarrollo front, ¿no?

En cualquier caso, Yeoman tiene unos "generadores" que son los que hacen el scaffolding de proyectos, y puedas arrancar un nuevo proyecto con todas sus piezas en su sitio en 30 segundos. Hay generadores para proyectos muchos frameworks MVWhatever, como BackboneJs, EmberJs, Polymer y por supuesto AngularJS.

Yo uso mucho el de AngularJS, pero como quiero generar el código HTML con Jade, una vez creado el proyecto, tengo que modificar las tareas de Grunt, y lo mismo para meter un servidor de ExpressJS que haga de backend. En este caso, hay que agregar un proxy al servidor de Yeoman que enganche contra una instancia de ExpressJS.

Tras la cuarta repetición, me auto dí una colleja por cansino, y decidí hacer un fork del generador de AngularJS para agregarle Jade y Express.

A diferencia de algunos generadores que vi por ahí (pero seguro que alguno hay como este que no encontré), cuando modificas un fichero de ExpressJs este servidor también se reinicia de forma automática.

Lo he publicado npm para que quien tenga mis mismas necesidades lo pueda usar. Como todo con nodejs, es sencillísimo de instalar y utilizar.

El servidor ExpressJS está en la carpeta "server" y si te apañas con ExpressJS, verás que hay un fichero routes.js. Vamos terreno conocido.

Las plantillas Jade están en "app/jade". Tampoco hay sorpresas por aquí :)

Instalación
El nombre del paquete es "angularexpress", así que sería:

npm install -g generator-angularexpress

Uso

Para crear un nuevo proyecto, vete a la carpeta donde vayas a trabajar y teclear:

yo angularexpress

(Yeoman detecta los generadores instalados porque son los paquetes de npm que empiezan por el prefijo "generator-" y para usarlos no hay que poner el prefijo)
A partir de aquí serán las preguntas típicas del generador de AngularJS más la de si quieres usar Jade (por defecto se usará).

Datos del proyecto
npm: angularexpress
https://npmjs.org/package/generator-angularexpress

Código fuente:
https://github.com/gonzaloruizdevilla/generator-angularexpress

¡Que lo disfrutéis!