29 of 33 people found the following review helpful
on June 6, 2011
Format: PaperbackVerified Purchase
I only got into Ruby on Rails in the last year and have been incredibly impressed with it and enthusiastic to grab any book I can to increase my knowledge of it. I was told that Agile Web Development with Rails was "the" Rails book to own, but the only problem was that the fourth edition was not out yet. I looked through a first edition at the local library, but took it with a grain of salt as I knew a lot of that information was outdated, and so, the wait continued and other Rails books I checked out. Finally, this was released and I have now read through the entire book.
It is a little unique over Rails books due to the order of things. Where all the other books tend to start off explaining all the features, terms and and functionality behind the framework and starts working you through a demo app later on, Agile Web Development goes in the opposite direction as it starts you out immediately building the demo app, then the second half of the book goes into the specifics of Rails in more details. As anyone who has read any other edition of this book will already know, you will be building a demo app of a e-commerce store. Although it's not to completion, that's not really the point of it; the app will take you through a handful of different Rails 3 details and by the time you're done reading - or building along - you should have a fairly good grip on how to do different things in Rails. Once in a while, people in the Rails community like DHH and others will chime in with thoughts and tips.
It's a little hard for me to review this book as a complete stranger to Rails, as I have read through other Rails books prior to this. But while I might be more of a fan of the Apress Beginning Rails book, what was great about Agile Web Development was that I still was learning new things like stuff I didn't know you could do in migrations, formatting helpers, etc. So my time with this book was well spent and I am glad to have this on my shelf. Probably the only ones I would not recommend this book to is advanced Rails programmers, especially as they may already own an older edition of the book and I feel they would have caught up to speed on the Rails 3 changes by now. So for the most part, newbies only.
However, I have to point out one thing. This book took a while getting out to market and only appeared a few short months ago, and already it may be outdated...kind of. Rails 3.1 is coming - likely by the time you read this - and there are some new additions that this book won't even cover, such as the new asset pipeline, changes to migrations, SASS and Coffeescript. On the other hand, it's not like the information in this book is suddenly worthless, 99% of it will likely still apply to your projects. It's just something to keep in mind as you're reading this book; I recommend finishing this book then hopping on the web and watching a few Railscasts on Rails 3.1 to fully catch you up.
45 of 54 people found the following review helpful
on November 3, 2011
What happened? The authors are leaders in the field and the publisher is well-known and respected. This is already the 4th edition of the book (that shows its staying power). The book now covers the latest Rails version 3.1. There is a complete application and lots of useful material. So what is so wrong about this book? Is it because the book is actually meant for intermediate learners and not beginners? Well, I am afraid this is not the reason why. I wouldn't recommend this book to any intermediate learners either.
The book suffers from a lack of proper reviews that have pointed out the many pedagogical errors in style, sequence and content that the book has. One must work hard to grasp what is being taught. It requires a lot of motivation, reviewing and double checking. Too much is given at once, in the wrong order and with little explanation (if any). Too much is left open. Proper subject matter review for a consistent explanation isn't available.There is a summary at the end of each chapter, but it is as a statement of goals "achieved" and not an explanation. I could list many examples. One can easily get lost following (or trying to follow...) the book. It can be a real pain.
I have also checked the former, 3rd edition. It is better than this one. For example, the development of the sample application is better explained. In the current edition, a lot of text has been removed, including lots of critical parts needed to understand how the sample application is being built. The reader is left confused, trying to make sense of what is left. Truly bad editing, I must admit. The program code itself has changed dramatically. The new and the old text (program code and explanations) don't work together well at all. With each new edition of the book, the editing seems to get worse.
While beginners (the ones that always get hit the hardest) will suffer through this book, others in the same situation will have fun, joy and understanding with a book like "Head First Rails" that shows how Rails can and should be taught (independent from the style of the book). This great Head First Rails book has not been updated to Rails version 3, although it is still useful and the one I would recommend for a beginner.
So, unfortunately this is a flawed book at its core essence: to teach Rails. The material is all there, its authors are all expected to be experts in the area. But the guided hand of a good teacher isn't there. I wish a new edition would make up for the flaws and turn this book into the outstanding classic that it could and can be.
As there are very few books that cover the latest releases of Rails, this book may also contribute to lessen the usage of Rails itself, as many will turn away from it for a lack of proper learning resources, including from some of the leading experts in the field -- who were supposed to help to lead the way! Really disappointing...
Take, for example, page 161 of this fourth edition. Figure 22 is a detailed diagram showing how an instance variable is created in the controller, visible to the view in a form and related to a model object. The diagram shows the editing of an order object in a form, but the text nearby is instead discussing the creation of a new order object. This text takes four lines to explain once more that the action in the controller (in this case, the "new" action) matches a view with the same name ("new") under the directory views/orders. A detailed explanation once more. Fine. But the next line has already the code for a form and a partial, with no further explanation (so what is a partial, which convention is used by Rails for partials, why would we want to use one here?). Now the book assumes that the reader remembers it all, although this portion of the text is intended to deal with forms. Therefore, some parts of the book have been heavily edited out, some other parts have not been edited at all or have a mix of a diagram that shows example A with a text that shows example B. Some few have very detailed explanations and most have either short or just no explanations. All in the same confusing context where in the same page you are often confronted with many different technologies at once.
One of the creators of Rails is a co-author of this book. I wonder how he could let this all go ahead. Worse: some portions of the book are sections that seem to have been directly written by himself, called "David says". They are truly superficial and disappointing. It is as if Einstein would add sections to a book on relativity explaining how to name variables in equations or why to use X and not Y in tests instead of giving any conceptual or useful insight in his theory of relativity.
A reviewer here called this book the "de-facto edition to your Rails library". Well, if your boss wants to use Rails in your project and you are against it, just ask your boss to give this "classic" to the developers and wait for their reaction. However, make sure that none of them comes even close to "Head First Rails" to realize that Rails is fun and not this confusing, arbirtrary and complex framework that this book shows. This book is now, in its 4th edition, a bad thing for Rails.
I have reviewed and read many books in many different areas and, as it stands, this one manages to be one of the worse of them all. This book has the power to bring down any motivation to learn anything about Rails. What is more incredible is that its authors seem to have all the skills and experience to have produced a completely different and stellar book. I wonder where what got lost. And I hope they will repair it rather sooner than late.
28 of 33 people found the following review helpful
on July 3, 2011
Agile Web Development gets marketed as the ultimate beginner-to-intermediate guide to developing using Ruby on Rails. I think its target audience is solidly in the intermediate camp. Starting out as a beginner by reading this book will leave you more lost than enlightened.
Rails is powerful because of the conventions it pre-assumes. For those who understand the conventions -- why they exist, why they are better than the alternative, etc. -- Rails is a dream to use because it does all the behind-the-scenes work for you. But for beginners, seeing things like ":attr_accessor" or the "_path" notation in "link_to" is just downright confusing right off the bat.
Though I find the book well-written and useful now that I'm at that intermediate level, I'm giving it two stars because of all the time I wasted reading and re-reading its passages while I was learning Rails.
I found beginner's intros to Rails available on the web [...] indispensable to give me background BEFORE reading this book.
My suggestion to the authors is to more fully flesh out explanations of all of Rails' conventions, particularly routing, passing variables from method-to-method, and linking models together. Additionally, I think the authors should initially code their examples even less concisely and then work down to make things more concise.
11 of 12 people found the following review helpful
on July 19, 2011
Format: PaperbackVerified Purchase
I've been programming on Rails for a while now and originally started on the previous edition of this book. When learning Rails for the first time the previous edition was indispensable. It started you off with the shopping cart application which was great and helped me to learn fast. After you completed the shopping cart application, the previous edition went into just the right amount of depth regarding the various components of Rails. For example, it had pages explaining each type of relationship (has_many, has_one, join tables) in detail with the various methods that were added and how to use each.
In the new edition, a very substantial portion of the in depth explanations are missing. It no longer is able to serve as a handy reference for me as the previous edition had done.
Additionally, Rails 3 is changing fast and might not settle down for a little while. A good portion of this book is obsolete. For example, this book still teaches readers to use the Prototype library even though Rails is switching to jQuery in 3.1. Additionally there are numerous other large changes in Rails 3.1 that are not mentioned in this book that will be essential for future Rails developers.
To the author's credit, they opted to release this book at a difficult time since Rails is changing rapidly, however I wouldn't recommend this book at this time. Its probably a better bet to buy the earlier edition for dirt cheap and then watch Ryan Bates' Railscasts to get up to speed for Rails 3.
11 of 13 people found the following review helpful
on August 2, 2011
I bought this book because I was confused by the many changes from Rails 1 and 2 to Rails 3. Many much loved features were removed, changed and reworked between the versions, making Rails 3 an almost completely alien environment. The best way of describing this neutrally is that examples of core functionality from previous versions of the book don't work in Rails 3.
I was particularly interested in the changes to Ajax support. Basically, Rails 3 removes much of the automation of Ajax that existed in older versions, requiring you to roll your own. I was hoping that the new book would explain these changes and differences.
You could certainly tell me that I should have read the book in the store, which I did, hoping things would become clearer when I sat down at my computer. But they didn't.
I'm sure this book is still a good tutorial for someone starting out with Rails 3.0. But it does not work at all as a transition guide to the new Rails. Surprisingly, there is also very little in the way of online resources to help in this transition.
Rails is free, and so Rails' developers owe me nothing. But I wish they had had mercy on those who loved the way Rails 1.0 worked. Rails 2.0 required a lot of gratuitous changes to my code, and Rails 3 requires incomprehensible changes, and alas, I have no clue why these things were done and what I'm supposed to gain from the loss of beloved features like observe_field . Even after hours of searches, I have not found a satisfactory explanation for how things work today.
So alas, you should avoid this book like the plague if you want to know what happened to old Rails features and how to adapt to the brave new rails world. It won't tell you.
11 of 14 people found the following review helpful
on June 8, 2011
Format: PaperbackVerified Purchase
OK, here's what you need to know if you are learning Rails.
* Rails is not very easy to set up.
* Find the help you need. If you are stuck Googling around forever, hire someone to help. It will only take minutes for someone who knows what they are doing to help you.
* Don't use any Rails 2 resources. Everything is different with Rails 3. If you aren't sure, look at the date. If years have passed, it is probably no longer accurate.
* Rails is a framework build on the programming language Ruby.
* Gems are plugins that extend the functionality of Rails. They can be difficult to install, so keep them to a minimum at first.
OK, now about the book: it's wonderful. It's surprising that a vibrant framework like Rails has a huge lack of good resources for beginners. This book fills the void.
I have read or studied 6 Ruby or Rails books, and this is by far the best one that I have found. Most of the resources that I have found, including those for beginners, require extensive experience with Rails. Most of the tutorials are broken. They may have worked with a certain installation on a certain computer 2 years ago, but since Rails is moving so fast they are no longer useful.
This book has many things that I love:
* It is easy to understand, even for a beginner in Rails. If you have no programming experience, then you will probably need more help than any book can provide. But if you do have some programming experience, then this book is perfect.
* The chapters are broken into small, bite size pieces. That means that it is much easier to retain what you do. Many books about programming give so much new information so quickly that it is impossible to absorb and use in the future.
* The explanations make sense. I have read many books that have explanations but are very wordy and do not help me understand what a given piece of code does.
* It has a lot of content (480 pages). By the end I think I will "know" most of what I need to know about Rails.
* It has a build-an-application format. You go through the process of building a Rails application.
* The font, font size, and layout of each page is readable and easy to understand.
* Code is available for download, so you can type as much as you want and copy and paste the rest.
* Complete applications are available for download, so you can see the whole thing working, or even compare your version with the completed version.
Here's what I don't like so much:
* The paper is very thin, almost transparent. A wonderful book like this could use thicker paper. Maybe they wanted to keep it thin and light (which it is). I guess it is OK, considering that it is a paperback.
Overall, a great book.
6 of 7 people found the following review helpful
on September 14, 2011
Format: PaperbackVerified Purchase
I really appreciated the previous editions of this book, because I felt they gave a great and thorough introduction to Rails, and to web application development in general, for new users. I bought the new edition with the expectation that it would be just as thorough and informative, and was very disappointed to find that it's a sad shadow of its former self.
Most of the background information (about agile development, application security, sessions, development and deployment) that I appreciated so much in the previous editions is gone. The details that accompany the demo application you're meant to build along with the book are far more cursory and incomplete. The writing isn't as clear (largely because of all the content they excised). This feels like a much more quick and dirty approach, instead of the in-depth approach given in the earlier books.
This is definitely not as good for someone new to web application development, and I'm not sure how good it is for someone new to Rails either (unless they're pretty advanced in another framework or language already).
And in the final blow, the quality is not nearly as nice: thinner paper, more typos. Overall, I found this very disappointing, and am forced to supplement this book with the older edition I have, as well as online resources. Thank god those are decent.
6 of 7 people found the following review helpful
on November 10, 2011
I have purchased several incarnations of the AWDWR book, most recently the 4th edition for Rails 3.1
Unlike other reviewers, I found it was a good balance between beginner and expert. However, a word to total newbies: Rails is idiot-proof. That is to say, an idiot can't even begin to install it. And even smart people will find themselves foiled ;-)
But following along with building the depot application comes with some challenges - in that many of the parts are broken.
Having only dug in slightly I've already found that if you download the entire codebase for rails 3.1 the database 'seed.rb' has correct paths for images, but if you follow the links in the PDF book it downloads a file that still contains the non-truncated paths which is one of the changes from 3.0 to 3.1
The test suite doesn't run because it doesn't require the minitest gem. And although my stylesheets load, they weren't being used because the CSS class .products doesn't exist in the view layout.
It's not a bad guide, but you should have google at the ready in order to work your way through the bugs.
3 of 3 people found the following review helpful
on July 23, 2011
The early parts of this book involve building a site which sounded to me like a great approach in practice I'd have far preferred if the author had spent a bit of time explaining each of the fundamentals before showing them used. I say this as I find it far easier to learn at least a little about something before using it. In addition I find books written in that style easier as they aren't so full of forward references (as in "we'll explain this further here"). So some may enjoy the style but if you learn as I do then this book is not for you.
One other smallish issue to be aware of is that the code examples don't display properly on a kindle as the screen isn't large enough.
5 of 6 people found the following review helpful
on April 8, 2012
Basically I agree with everybody else that this book isn't good either for beginners or as a reference. For beginners, it goes through the steps needed to build an online store, but doesn't explain well what's going on and in the end you will feel like you still don't know Rails. A much better book is Rails 3 Tutorial. For experts, there will be very little here that you don't already know; head for the Rails Guides and online API reference, Ruby/RSpec/etc docs (The Rails 3 Way is okay, but not really necessary). Actually you too might learn more from Rails 3 Tutorial.