Book Review: Rails Recipes
A very important part of continually improving as a software developer is
reading. I do that a fair bit and following the suggestion buried somewhere
deep in Code
Complete, I try to read at least a few
technical books per year. I generally average one every 1-2 months and will
occasionally ruminate on some of the better ones.
I took a stab
at making a Ruby on
Rails application a couple of years ago and when the start-up fell apart,
I felt that I should use my now existing free time to give it another shot.
The technology seemed fairly interesting and while my first crack ended up
being relegated to the dust bin of my back up hard drive, it made me want to
learn more about the language and framework. The project I have been working
on for the past couple of weeks will likely get launched to family and friends
in the next week or so and I'll likely open it up to the public assuming there
aren't any real problems.
One thing that I discovered with Ruby
on Rails the first time around is that the framework seemed almost sinister in
it's ability to detect a Java programmer. You'd go through, doing things,
never quite sure what you have to write and what the framework does for you.
Eventually, you'd step on metaphorical toes of Rails and things would silently
stop working. Even worse, you'd get an exception or error from deep in the
framework's stack. It was as if there was some special code in place to detect
common patterns from curious Java developers and would blow up in our faces.
Probably not, but that's what it felt like.
I picked up Rails Recipes a
couple of weeks ago now and am very glad I did. The book is laid out in a
fairly similar manner to the Gang of Four's Design Patterns, in that it is really a collection of fairly unrelated
strategies to conquer various problems. There are sections on how to improve
your Rails testing, how to better use the built in Rails support for the
Prototype and script.aculo.us Javascript libraries, common ActiveRecord (Rails
data abstraction layer for those who haven't used rails), etc.
The book is well written and to the point. I read through most of the recipes
which were relevant to me in less than a day. What was really nice was that
there were several how to guides for things which appear in many real
projects, but are a bit more sophisticated than what usually appears in the
Rails tutorials found in the wild on the Internet. Things like self
referential many to many relationships are common enough that you have to know
that there is support for it built into Rails, but exactly which incantations
are required to correctly set it up are not exactly clear.
Rails
Recipes is excellent for things like this. Tasks that are common and are a
part of the framework, but are just complicated enough that the basic
tutorials do not cover them. I had found that there was a large gap in
documentation online between the Rails newbie guides and Rails expert
solutions. This book fills that gap nicely.
Many books specific
to languages and frameworks, once you have advanced beyond a certain
proficiency level they cease to be useful. Rails Recipes is not immune to this
and while I am not there yet, I can see the day when I look at the topics
covered and think, "How quaint." That said, though, I definitely feel that
this book will help me get to that point more quickly and efficiently than I
would have done alone or with the help of the documentation that is currently
published on the Internet.
For me, this was definitely worth the
investment. If you are a Rails guru, maybe skim it in a bookstore first before
buying, but if you are just getting over the rookie phase and looking for the
next logical step to take to improve your abilities, this is a pretty good
book to go with.