I love the idea of teaching through example. The depot sample app is a fantastic way to cover a lot of ground. But it is getting progressively less useful. I think it’s an excellent idea to cover as much as possible in the sample app. Heck, you could base the entire book around it (I’d love it - take the depot app to about double it’s current length and really explain every line you add). But now it just jumps around too much, assumes too much, leaves out too much, and sends users to online references too much. It’s not that I don’t enjoy the references, it’s just that we buy this book so that the concepts get explained too us, not so that we can look up API references and try to comprehend them dryly. Heck, if that were so quick and easy for people trying to learn, we wouldn’t have needed to buy the book anyway.
The author very often puts unexplained lines in the code in the samples. I type them in, and yep, they work. But sometimes I’m left thinking “Why? What did we just do?” I have a strong commercial programming background, but rails is new to me, so yes I’d like more hand-holding. It’s easy to skim over something if we already get it, but if it’s never explained, then when we don’t get it we’re left on our own (which negates the purpose of buying the book).
“To fix this test, change it like this.” But why? How does that fix it? Here we have cart, ‘cart’, “cart”, @cart, :cart… I realize the general differences in terms of ruby syntax, but it would be great to have more explicit explanations at times of what is referencing what in what way and why that way. This is particularly important because we’re often taking advantage of Rail’s “convention over configuration”, and Rails itself is taking advantage of the interesting variety of Ruby syntax available, so at times it’s not at all clear.
Don’t get me wrong, I’m not completely disappointed in the purchase, and I understand that it’s still early on.