martes, 12 de abril de 2011

BDD y Continuous Delivery en la XGN

Este fin de semana estaré en la XGN de Santiago de Compostela y voy a intentar picaros un poco para que os animéis a venir. Como ya os conté, tengo tres sesiones junto con Alfredo Casado, pero hoy os voy a hablar de Teo crea su primera aplicación web (con Rails, Git y Heroku). La idea para esta sesión es hacer un taller en el que crearemos una aplicación web en Heroku utilizando Rails. Sin embargo, para hacerlo un poco más interesante, lo vamos a hacer al estilo Software Craftsmanship, lo vamos a hacer usando BDD y Continuous Delivery. ¿Os hace?

Continuous Delivery
Vamos a aprovechar lo fácil que nos pone las cosas Heroku para practicar (y entender) un poco eso de Continuous Delivery. Veremos lo que mola desplegar con cada commit y el nos daremos cuenta del cuidado que hay que tener cuando desarrollamos software (y no solo mientras escribimos el código).

BDD
Dado que vamos a desplegar la aplicación en el entorno de producción prácticamente con cada commit, necesitamos definir exactamente cada feature que vamos a desplegar. Para ello utilizaremos BDD (Utilizaremos Cucumber) de forma que cada vez que todas nuestras features ejecutables estén verdes podamos desplegar la aplicación sin ningún temor :D
Una pequeña cuña aquí. Nos vamos a dar cuenta de la importancia que tiene definir buenas historias de usuario de forma que nos sea sencillo crear features pequeñas y deployables. Por eso, os recomiendo el dojo de historias de usuario de los agilismo.es

Entorno
Si os apetece participar en el taller tenéis un par de opciones, podéis traer vuestro ordenador con git y ruby instalado o podéis traer vuestro ordenador con VirtualBox instalado y yo me encargo de daros una máquina virtual con todo instalado (Eso sí, esa máquina será un Linux con Vim como editor, ya os aviso :P).
Si os da tiempo, nos ahorraríamos algo de tiempo si os hacéis una cuenta en Heroku antes de asistir al taller.
Otra opción es que vengáis a cotillear, que también vale, pero es un poco más aburrido.

Ya sabéis, si quereis darle caña al continuous delivery no os podéis perder esta sesión. ¡Os espero!

PS: Por cierto, la aplicación que vamos a crear nos va a servir para sortear un par de Apprenticeship Patterns en la sesión sobre Software Craftsmanship, así que no podemos fallar :P

ACTUALIZACIÓN: Os cuento un poco las versiones de ruby y de las gemas que vamos a utilizar:

La versión de ruby será la 1.8.7
La versión de Rails será la 3.0.3.
Necesitamos también la gema de heroku, claro.
Después usaremos cucumber-rails y capybara. También le daremos al haml (haml-rails es la gema) y al Sass :D

6 comentarios:

  1. Yo quiero ir!!! Y aprender con Teo! No quiero tener una sesion paralela con vosotros.

    Amalia

    ResponderEliminar
  2. Alberto, ¿podrías explicar un poco qué entorno vas a utilizar para ir configurando ya el portátil? Versión de Rails, otras gemas (Heroku, Cucumber, Webrat?, RSpec?), etc... Da gusto con RVM :-)

    ResponderEliminar
  3. Buenas, la versión de Rails será la 3.0.3. Necesitamos también la gema de heroku, claro. Después usaremos cucumber-rails y capybara. También le daremos al haml (haml-rails es la gema) y al Sass :D
    La versión de ruby será la 1.8.7

    Un saludo

    PS: Voy a actualizar el árticulo :D

    ResponderEliminar
  4. ¡Qué de cosas interesantes! ¡Muchas gracias Alberto!

    Looking forward for this great session :-)

    ResponderEliminar
  5. jejeeje que presión :P Gracias por el intereses :) Seguro que echamos un buen rato :)

    ResponderEliminar
  6. Uhmmm, yo iba más en plan cotilleo, pero habrá que arremangarse.... ya os vale! :P

    ResponderEliminar