Agile Web Development with Rails
by Dave Thomas and David Heinemeier Hansson
Pragmatic / O’Reilly
What is Rails, and why is it all the rage? In a nutshell, Rails is a set of code written in Ruby (a relatively young programming language) that provides a whole library and framework of functionality for people developing web-based applications. Programming these applications on Rails — especially if you have experience in doing this with other platforms — can be somewhat of a religious experience. I don’t mean that as hyperbole, but rather as an indicator that it takes a whole lotta faith in trusting that everything will work after writing such a tiny bit of code.
That is really Rails’ magic, and the reason it’s becoming all the rage. Taking the approach of “convention over configuration,” a mantra that is repeated frequently in the Rails world, means letting the application figure out what it needs to do based on some simple decisions made when you set it up. Set up a table in your database called ‘orders’, and Rails creates all the necessary components for accessing the data on there — you can begin adding, changing and removing rows from your ‘orders’ table right away, without having to write any code. Of course, you’ll be missing on all the interesting bits that make your web application useful to your specific needs, but the bottom line is that those interesting bits are all the code you’ll need to write. The foundations — all that boring, repetitive, redundant code — are built into Rails, and they provide most, if not all, of the basic functionality you’ll need to tap into to rapidly develop your web application.
With the Rails community growing seemingly exponentially, it was only a matter of time before someone came up with a “bible” for Rails developers, and Agile Web Development With Rails is a natural candidate, to the point where I think it’s going to be a long time before any other text on Rails comes close to even supplanting it. To begin with, one of its co-authors is David Heinemeier Hansson, a name well-known to Rails developers only because he, uh, wrote the Rails framework. The other co-author, Dave Thomas, is just as well-known for his authorship of the “Pickaxe” book, Programming Ruby, the current reigning general Ruby reference bible. Between the two of them, this book is not just a complete reference for those who want to develop using Rails, but also quite efficient at presenting best practices that apply to developing software on any platform, with any language.
In more detail, the book is divided into three logical sections. The first provides a very high-level overview of Rails’ structure and its capabilities. The second walks you through the process of creating a simple shopping cart using Rails. Finally, we have a broad and deep reference to the Rails API, covering not just the basics but some of the more esoteric (but undeniably useful) aspects of the framework. Appendices provide a quick review of the Ruby programming language (which you’ll be using to write your Rails applications), Rails configuration reference, the source code for the application that was written in Part II, and a bibliography and links. Throughout, the style is clear and informal, and handy examples abound.
If you’re curious about Rails and what it can offer, snoop around online. You’ll find plenty of glowing reviews (rants, more likely), tutorials, and a thriving community dedicated to furthering the reach and capability of the platform. Once you get serious, you’ll need a handy reference by your side to frequently consult — you know, the book that will be peppered with bookmarking postits and whose cover will become tattered and coffee-stained way before its time. I can think of no other book that can fill that role better than this one.
Pragmatic Bookshelf: www.pragmaticprogrammer.com