As I mentioned previously, I’m starting to dig into the Ruby language for its elegance and the Rails framework in search of better, more efficient ways to develop web applications. As part of this learning process, I figured it was essential that I pick up and read Agile Web Development with Rails (PDF edition for me). I’m going to take some brief notes on each chapter and figured I’d use my blog for storing them. (To basically act as chapter reviews)
This is just a basic introduction to the Ruby language and Rails as an MVC framework. I like the fact that they throw some Ruby code right in your face from the start, because it immediately shows the elegance of the Ruby language and makes you want to start writing code like that now. The two main concepts that Rails embraces is the DRY principle and “convention over configuration“. I gave an example of refactoring towards DRY code in a recent post, so I’m not going to elaborate on DRY too much here, because really, it just makes sense. I’m a huge fan of “convention over configuration” and it’s something that I’ve been practicing more and more in the .NET world. If nothing else, just a common source tree structure. Someone I was listening to put it like this.
“It’s like a big filing cabinet with labels that tell you where to put stuff”. — ??
I’m really not a fan of XML configuration files. In fact, I need to get off my tail and replace our growing Windsor XML configuration file with Binsor which uses my new favorite .NET language, Boo (Note to self: start here). So, I’m very interested to see how this plays out with the Rails framework.
Ajax and RESTful interfaces are briefly mentioned as well, both of which have built-in support in Rails. Deployment and rollbacks are touted as “easy”, so of course I’m very interested in that as well. Having built some crazy deployment scenarios by hand using NAnt in the past, I’m looking forward to some of this being “out of the box”.
Maybe one of the best things about Rails framework that already gets a lot of points in my book is that it was harvested from an existing commercial application. Hopefully by now, most of us know that the best frameworks are extracted from existing, tried and true applications. I’ve been forced to use “pre-built application frameworks” in the past, and they have been so painful to work with.
Since the title of the book has a focus on agile development, it gives a quick introduction as to why the Rails framework enables a team to be agile. It seems the core of the reason is that you can really crank out working features and respond to changes very quickly using Rails, which tends to be a fundamental to the success of agile projects.
Oh and they point out how fun writing code is when using Ruby on the Rails framework. Since I’m already a bit of a geek, I actually enjoy coding most of the time already. If you see me start drumming on my desk or keyboard, that’s usually a sign that I’m “in the zone” and am actually getting stuff done.
Anyway, the rest of the first chapter is just a brief guideline on how to read the book (I’m assuming one line after another, hehe).
That’s it for now. Since I have already started some Ruby coding, the appetite is already there to keep digging in more.
Until next time…