This was 90% written in January 2007 but the draft was misplaced. Apologies to ORUG who organized obtained a copy for me in exchange for this review.
Ruby on Rails is a simply wonderful technology to develop web applications in. Like all technologies, especially ones with such depth and, at times, unique ways of working, it can take some time to get started using it to develop your own sites. Patrick Lenz comes to the rescue with his Build Your Own Ruby On Rails Web Applications book that I recommend for beginners.
"What's it all abou'?"
Over the course of the book's 400+ pages Mr Lenz gives a good foundation to build from, from installing all of the requisite tools, to basics of how to use the Ruby language that forms the basis of this system, to lots of good advice on testing your applications. The book builds up layer upon layer as it steps you through building a site similar to the community-driven link rating system Digg, all of which follow commonly used "best practices" (the techniques that help your sites be more stable, more flexible, etc).
The book reads very easily and does a good job of explaining the sample code provided as part of the Digg application.
An unfortunately common trait with many introductory books on technical topics is to hint at subjects related to the technology at hand, but then disregard it with a wave of the editor's delete key. This book was missing three key concepts that would have greatly rounded it off for beginners:
- Sending email. This topic was waved away but would have been very valuable. When you think about it, the majority of web applications send email - either notifications, for verifying new accounts, or for custom newsletters, it is an extremely relevant topic and shouldn't have been skipped.
- Interaction with 3rd party APIs. Lots of web applications use 3rd party APIs, whether it's verifying credit cards, submitting orders, obtaining mapping data, or getting the weather, there are a many, many good uses they can be put to (check if it's raining in your area, if so find stores that stock umbrellas and give you a map to them..). Interestingly this topic wasn't even mentioned, which was disappointing. Hopefully the next edition will have some good coverage.
- REST. Everyone knows developers need more REST. Puns aside, Representational State Transfer is a new, and most would say improved, technique to pass data to and from web pages, APIs and services. Based off a more logical use of the HTTP system that binds the web together, REST defines that if you submit an ID in the URL you are reading a record, if you are submitting a form then you're either updating or creating a new record, etc, and so applications are structured to behave more cleanly in this regard. REST support was added to Rails v1.2, which this book is focused on, but it was a major oversight to not cover it. Again, a second edition should set the record straight.
While not a perfect book, it does succeed with its intended goal, of easing you into writing your own Ruby on Rails applications. Some of the missing topics would have made the book more useful to intermediary users, but they shouldn't detract too much for beginners.