Written by Sam Ruby, Dave Thomas, and David Heinemeier Hansson, Agile Web Development with Rails 4 is one of the original books on developing with Ruby on Rails.
I picked up the 1st edition back in 2006. It was to light my path towards a professional Rails career. Instead I was quickly acquired by a .NET shop and my Rails dreams were put aside. After newer additions, I picked the book up several times only to get distracted with something else again. With the release of Rails 4, and with some encouragement from a friend, I picked the book back up, eager to use Rails for my next project. This week I finished the book.
Flirting with Rails
Straight out of college in 2006, no head-hunter I talked with had even heard of Ruby On Rails. It was a different job market back then. It was pretty much .NET or PHP if you wanted to do web development. With no Rails positions on the horizon, I went with .NET.
.NET is not a bad framework by any means. But the MVC methodology that Rails exposed me to felt way ahead of the .NET framework. It wasn’t even until 2009, that .NET came out with an MVC framework. It took way too long in my opinion.
Last year I picked up the book again, only to get distracted once more with creation of the version 3 release of Chime Squirrel. Now I am on to my next project—Wingman—and this time I need a server side component. I saw that this is my chance to use Rails in a production environment.
I picked up the book about two weeks ago and worked my way through the book again.
Agile Web Development with Rails 4 is geared towards new Ruby On Rails developers. It’s assumed that you have some programming experience but it doesn’t need to be with Ruby. There is a whole section to bring new developers up to speed with Ruby’s syntax.
This book has an interesting setup. Instead of being a reference manual like many programming books, this one is split into three sections.
The first section introduces you to Rails. It walks you through setting up a development environment. Then it takes you through setting up a basic application.
While following the app created in this section, you learn the underpinnings of Rails. It shows the basics like creating a new Rails project, working with models, and most importantly the methodology behind Rails and it’s take on MVC.
It also has a chapter on Ruby syntax. This is really my only experience with Ruby, and this chapter was more than enough to get me comfortable with Ruby.
The second section makes up two thirds of the book. The reader here gets walked through the creation of a commerce web app.
This piece of the book also functions as an example of how the workflow for a Rails app is intended to be. They want rapid iterations and lots of client feedback. Throw in a lot of testing and now you are a Rails programmer!
I quite like the lead-by-example method to this book. Surprisingly it does not have a lot of useless fluff in it. While the chapters walk you through features, they are actually quite useful for reference as well. Nothing felt like it was too specific to the example app, but it was presented in a generalized sense of how the topic at hand would apply to the average Rails app.
With chapters on session management, database migration, unit testing, functional testing, and templating, I will be referring to these chapters frequently as I work on my next project.
The last section leaves the example app behind. It takes the to-be programmer into the depths of Rails, but not so deep as to drown.
While the examples are useful, putting this descriptive section at the end was perfect. You already have a working knowledge of what a Rails app looks like. And while you were not lead blindly through it’s creation, there is a lot of unknown about how things work.
Here we get explanations about the various parts that make up Ruby On Rails: Active Record, Action Dispatch and Controller, and Action View.
It doesn’t go very deep into these, an entire book could probably be written for each one. What it does give you is enough of an understanding of each one to get an idea of what they are capable of. It leaves you with enough information to understand what Rails is doing and ready to be able to dig deeper on your own when the time comes.
Rails has come a long ways since the first edition of this book came out. It is not an underdog anymore, but a competitor against the largest players on the web scene. Agile Web Development with Rails 4 is an awesome book for anyone new to the framework. It will get you past novice quickly.
Do you have a favorite book or resource for those new to Rails? Let us know in the comments below so we can all learn together.