Libro de Rails3 in Action

Hace unos días @altnethispano me invito a realizar una VAN sobre Ruby On Rails, como resultado de esa VAN, me obsequiaron el libro Rails3 in Action de la editorial Manning, escrito - bueno aun en proceso, ya que esta en MEAP - por Yehuda Katz y Ryan A. Bigg.
Si bien el libro aun no esta completo - solo 10 capítulos de 23 -, aquí les presento una revisión del mismo hasta este punto.
El objetivo del libro es mostrar como escribir una aplicación en Ruby on Rails 3, como lo mencionan los autores “escribir una aplicación real” y no el típico “blog”, a través de los primero 10 capítulos muestran el fundamento básico de este proceso.
Primeramente nos dan su visión del porque usar Ruby on Rails para el desarrollo de aplicaciones y cual es el beneficio que trae que como equipo de desarrollo obtenemos de utilizar patrones y recetas ya probadas una y otra vez.
Posteriormente y a manera de introducir al lector a Ruby on Rails muestran como crear una aplicación muy simple en tan solo unos minutos, pero se toman la molestia de explicar que es lo que los generadores de Ruby on Rails han hecho para poder tener un prototipo en tan corto tiempo.
Algo fundamental en el mundo de Ruby on Rails, es el uso de pruebas TDD - Test Driven Development - o BDD - Behaviour Driven Development - para el desarrollo adecuado de aplicaciones y que de alguna manera se entiende que esta es la manera correcta de llevar a cabo un desarrollo real en Ruby on Rails, por este motivo dedican un capitulo a explicar el funcionamiento de TestUnit, RSpec y Cucumber; estos dos últimos serán la herramientas utilizadas para desarrollo de la aplicación en el resto del libro.
La aplicación que se desarrolla se llama “Ticketee” y es una aplicación para el registro de “ticket” de soporte y tiene el objetivo de ser una aplicación SaaS - Software como Servicio -.
El desarrollo se lleva a cabo usando BDD, mostrando en cada paso como usar las características importantes de Ruby on Rails 3, así de como agregar funcionalidad casi-estandar de la mayoría de las aplicaciones web modernas.
En el proceso nos llevan de la mano para:
- Usar adecuadamente RSpec y Cucumber para diseñar y probar nuestra aplicación
- Implementar autentificacion y autorización
- Adjuntar archivos
- Manejo de estado en procesos con autómatas finitos
- Implementar etiquetas - tags -
El resto del libro promete la adición de mas características como:
- Envío automático de email
- Configurar nuestra aplicación como Saas - Software como Servicio -
- Presentar un API para permitir a terceros el usar nuestro servicio
- Realizar de forma efectiva el despliegue de nuestra aplicación
- Alternativas de autentificacion - posiblemente a redes sociales -
- Paginación
- Hacer uso de cache para tener un mejor rendimiento
- Trabajar con procesos de larga duración
- Traducir nuestra aplicación a otros idiomas
Como extra promete una serie de tópicos avanzados que nos permitirán escribir herramientas para Ruby on Rails.
El libro esta plagado de ejemplos que nos llevan de la mano y nunca asume que nosotros ya sabemos como realizar las acciones descritas, ademas de que si es la primera vez que se toca esa acción en el libro, se ofrece una descripción de que es lo que estamos haciendo.
El lenguaje del libro es muy natural y relajado; y como se comento anteriormente, trata de llevarnos en el proceso de construcción de una aplicación lo mas real posible, or lo tanto también hace referencia y uso de ciertas gemas no base de Ruby on Rails que nos ayudaran en lograr este objetivo.
La gran diferencia de este libro con otros que me han tocado leer, es que pone mucho énfasis en desarrollar la aplicación de la manera correcta, anteponiendo el uso de BDD y TDD sobre el ejecutar algunos scaffolds y tener la aplicación en minutos.
No considero que sea un libro muy técnico en cuanto a conocer el funcionamiento interno de Ruby on Rails, y tampoco es un libro fundamentalista en el uso de BDD y TDD. Definitivamente es un libro para aquellas personas que se están iniciando o tienen conocimientos básicos sobre Ruby on Rails, ya que puntos fuertes puedo mencionar que es un libro muy practico y directo en los temas.
