Pros: Clear and Thorough
Cons: Part/Chapter Layout
Rating: 3 out of 5
Have you ever seen one of those advertisements for a free vacation for the entire family to a Caribbean island? The only catch is that you have to sit in on a seminar or two selling timeshares for the beach condos in which you stay. The quality of these trips vary greatly. Some are okay, if you’re willing to accept the deluge of mail and phone calls from the real estate company after you return home, following up on your interest in their timeshares. Some are brutal affairs, where you spend long hours every day stuck in sales pitches, looking at slideshows of the beautiful beach you wish you were out enjoying.
This book is a lot like one of those trips. I almost stopped reading it a third of the way through. I continued largely in anticipation of writing this review. I’m glad I read the rest of the way through, because there is a white, sandy beach there – you just have to get to Part III to find it.
There are four parts to the book: a brief introduction, an extended example of using Rails, a guide to the Rails framework, and appendices. There is a lot of good information in the example, but like any example in the absence of reference information, it’s only part of the picture. I didn’t read the book just to find out about how line items related to orders and invoices, I wanted to know all the various table relationships supported by the active record. I didn’t want to know how good agile development feels, like so amazingly good that I think I just ate a soft, fuzzy puppy. I wanted to know specifically how to use Rails’ unit test framework.
I don’t mind taking my time and relaxing when reading a fiction book, but I’m notoriously impatient when reading non-fiction books. It needn’t (and shouldn’t) be dry or humorless, but it better be concise and to the point. I don’t necessarily like you or want to spend time with you, so give me my technical information and no one gets hurt. Wading through Part II was too much story and too little pay off for me.
Part III, however, was the tropical paradise I’d been waiting for. In fact, as of writing this review, when someone asks me what book on Rails they should pick up, this is the title I give them. Everything I needed to know about Rails to get started on a project of my own was neatly laid out over several chapters. Chapter 14 was particularly noteworthy, as it also included information on pitfalls when using Rails. For example, there are circumstances under which saving an object may fail silently, with no indication that the row could not be added to the database. The book details the circumstances under which this happens and how to avoid them.
The quality of the book remained high throughout the following chapters on controllers and views. In fact, I was pleasantly surprised to see that there were even chapters with good suggestions for securing a rails application, deployment, and scaling to handle increasing loads.
About the only thing that keeps me from using “Agile Web Development with Rails,” as a reference is that it is a little dated. For example, the book predates migrations and some of the output from the generator scripts is a little different from what’s described in the book. Nonetheless, the book (well, part III anyway) is a good guide for getting started with Rails.