Ruby on Rails is not just a locomotive moving on down the line. It is a bullet train moving at two hundred miles an hour. I say this because Agile Web Development With Rails is already in its second edition in only a year and a half. There has been that much change to the base framework to warrant an upgrade to the book in so little time.
What is Ruby on Rails – also known as Rails? It is a framework that makes it easier to develop, deploy, and maintain web applications. It uses Model-View-Controller (MVC) architecture as do many Java frameworks, but Rails takes it further in that it is almost as if you start out with the skeleton of an application already prepared. Rails is written in Ruby, a modern, object-oriented scripting language that runs on Windows, Linux, and Mac.
Agile Web Development With Rails is formatted into five parts, further subdivided into twenty-seven chapters and four appendices. The complete source code to the Application developed during the course of the book is available online as well.
The first part, “Getting Started,” does just that. It gets you up to speed on what you will need to do to get Rails installed and set up to be productive. The authors explain the architecture, how to install Rails, and they give you some instant gratification in writing some code to see how all of this will work – as well as to make sure you installed everything correctly.
Part two, “Building an Application,” describes the “Depot” – a web based shopping cart application that will illustrate many of the concepts of Rails development. The authors try to emulate a realistic development cycle of incremental development. They begin with an initial specification that will allow them to begin development and cycle back for more refinement. This part is broken down into eight sections that take you through building the maintenance section, creating a catalog, a cart, a check-out page, user administration, and into testing of the application.
Part three is “The Rails Framework.” Now that you have built the basics of the project, it is time to step back and dig deeper into Rails. Here the authors are going to go through, topic-by-topic and module-by-module so you can understand the directory structures, configuration, environments, support classes, and debugging issues for you to become a better Rails developer. They also go into the use of XML-RPC based and SOAP-based web services. While you may want to use the lighter-weight REST approach for new applications, they provide the information you may need to interface with existing web services.
Part four, “Secure and Deploy Your Application,” provides all the information on how to protect your application from SQL Injection and Session Fixation Attacks. It gives you tips on handling file uploads, storing sensitive information, and the use of SSL. It also shows you how to set up a production server, deploy your application, and how to monitor a deployed application.
The book finishes up with four appendices. The first, “Introduction to Ruby,” will give you an overview of the Ruby language. Appendix B handles Rails configuration parameters. Appendix C contains the source code for the Depot application as well as the link to download the source code. The Final appendix contains online resources as well as the bibliography.
A couple of things I really like about the book and the publisher is that you can buy the book as a standard book as well as a PDF e-book. For a real discount you can get both. To me, this is a bonus since I like having the physical book to hold and read, but when I am working on something or traveling, I can still reference the material without locating the book. I also liked the detailed explanations contained in the footnotes. The authors do not try to overwhelm you with every detail in the dialog. Rather they are saying there is more information if you need it.
At over 700 pages, Agile Web Development With Rails does a great job of taking you to the next level of Rails development. It provides you with a rich depth of information into the Rails framework and gives you the skills to bring your development to the next level.