Blog sobre desarrollo de software

Ver más

Post etiquetado con review

Rails3 in Action - Review -

A few days ago, @altnethispano invited to participate in a VAN about Ruby on Rails, as a result from that VAN, they awarded me with a copy of Rails3 in Action from Manning, currently being written -given it’s part of their MEAP program- by Yehuda Katz and Ryan A. Bigg.

The following is a review of the first 10 chapters out of a total of 23, because the book has not been completed yet.

The book’s goal is to demonstrate how to develop an app in Ruby on Rails 3, as the book authors put it, “a real-world application and not your typical blog application”, and for the first 10 chapters they provide the basics of going through this process.

First, the authors provide us with their vision as to why use Ruby on Rails for application development and the overall benefits to employ tested patterns and recipes in a development team.

Next, in order to introduce the reader to Ruby on Rails the authors demonstrate how to create a simple app in merely minutes, but special care is given to explain what Ruby on Rails generators have done in order to get an app prototype in such short time.

A cornerstone in Ruby on Rails world is the use of TDD - Test Driven Development - or BDD - Behavior Driven Development - to achieve proper application development and the authors dedicate a whole chapter to explain why this is the correct path to follow when developing real applications in Rails, also to explain the inner-workings of TestUnit, RSpec and Cucumber, being the last two, the tools of choice to develop the tutorial application for this book.

The tutorial application is called “Ticketee”, which has the purpose to manage support tickets for different projects, one of its objectives is to become a SaaS application - Software as a Service -.

Development is carried through BDD, showing in every step how to integrate key features of Rails 3 and how to provide standard functionalities from most modern web apps.

The process guides us through:

  • Proper useof RSpec and Cucumber to design and test our application
  • Implement authentification and authorization
  • Attach files
  • Tracking process state through finite automats
  • Implement tagging

The rest of the book specifies the addition of features like:

  • Automatic email sending
  • Configure our application as SaaS
  • Provide an API in order to allow third-party developers to interact with our application
  • Effectively deploy our final application
  • Authentification alternatives - this may involve signing in through providers like common social networks -
  • Pagination
  • Cache settings to achieve better performance
  • How to delay jobs
  • Implement i18n in our application

As a bonus, the books promises a series of advanced topics that will allow us to write tools for Ruby on Rails.

The book is full of examples and guide us completely, never assuming that we already know how to do or implement the required actions or steps, also, on every action provides a full description of what it does the first time it is introduced in the text.

Book language is natural and relaxed, and as commented above, takes us as real as possible through the process of developing an application. In doing so, it references and shows us how to use specific non-base Rails gems that will help us in achieving the goal.

The main difference between this and other Rails programming books I’ve read, is the approach to correctly develop an application enforcing the use of BDD and TDD over the typical scaffold generation.

I do not consider this to be an overly technical book to learn about the inner workings of Rails, neither is a fundamentalist book about BDD and/or TDD, but definitively is a book to those beginning or with basic knowledge about Ruby on Rails.

This review was done originally in spanish. Antonio Antillon (@antillas21) participated in the english translation.

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.