KillerSites Blog

Book Review: Agile Web Development With Rails

April 28, 2006

Review by: Richard Mischook

First, a little about this nerd reviewer:

I’ve been writing web applications for over ten years. I’ve used a variety of technologies over that time including CGI with various shell script dialects, Netscape Livewire, and Active Server Pages.

But mainly I’ve used Java because it generally has been the best choice for many of the projects I’ve worked on. (ed: and it paid the bills!)

Now saying ‘Java’ doesn’t say a whole lot because when it comes to web application development, Java can mean a lot of things. It can be as simple (and messy) as just using Java Server Pages or can include servlets, EJBs and/or the various frameworks that are available such as Struts and Spring.

Many of us have been happy to pick and choose from the rich menu of available technologies, confident that these were solid and reasonable choices.

Things change …

But there is a disturbance in the force. It’s a small thing right now but some important people have been grumbling. They’ve been saying things like ‘Do I need to write so much code to do this’ and ‘How many XML configuration files do I need to get Hello World to show up in a browser?

And while many have embraced PHP there is a growing movement centred on a framework called Rails.

Rails is built on the Ruby scripting language. Ruby is an object-oriented scripting language that is concise and “…makes it easy to create methods that act almost like entensions to the syntax…It makes our programs shorter and more readable.” (page 1).

RAILS USES MVC

Rails provides a Model View Controller based framework with some important extras thrown in, most particularly a built in Object Relational Mapping tool that makes saving and loading data to and from Ruby objects almost trivial.

In fact Rails seems to provide a lot of the stuff you’ll find in Struts without the headaches associated with maintaining the Struts config file(s).

Ok, ok … what about the book!

The book wastes no time and starts with an overview of a simple Rails application. It then steps back and covers installation on a number of platforms.

It then dives in deeper and builds a fictitious shopping cart application using an agile and iterative development approach (the book is after all called Agile Web Development with Rails). After spending 125 pages building an application, the authors look at the guts of the framework and illustrate how it can be tweaked.

One important theme running throughout Rails is that of intelligent defaults – if you follow a relatively small number of conventions you can have an application up and running with little or no configuration file tweaks.

But if you do need to change things, you can, and the book does a great job of showing you how in simple and clear language.

EMAIL AND AJAX

The book also looks at support for sending and receiving email, as well AJAX and web services support in Rails. There is also a chapter on deployment that is upfront about some of the issues here as well as an interesting appendix covering the Ruby language for those who may be new to it (like me).

CONCLUSION

Overall the book is a great read if you want to get to grips fast with Rails. The examples and scenarios are fairly realistic and the writing is clear and to the point. Clearly the authors are very passionate about Rails and their enthusiasm is contagious. Highly recommended!