- Paperback: 350 pages
- Publisher: O'Reilly Media; 1 edition (November 3, 2008)
- Language: English
- ISBN-10: 0596515200
- ISBN-13: 978-0596515201
- Product Dimensions: 7 x 0.8 x 9.2 inches
- Shipping Weight: 1.2 pounds (View shipping rates and policies)
- Average Customer Review: 21 customer reviews
- Amazon Best Sellers Rank: #1,265,009 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Enterprise Rails 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and Amazon Prime.
If you're a seller, Fulfillment by Amazon can help you increase your sales. We invite you to learn more about Fulfillment by Amazon .
Frequently bought together
Customers who bought this item also bought
Enterprise Rails is indispensable for anyone planning to build enterprise web services. It's one thing to get your service off the ground with a framework like Rails, but quite another to construct a system that will hold up at enterprise scale. The secret is to make good architectural choices from the beginning. Chak shows you how to make those choices. Ignore his advice at your peril. --Hal Abelson, Prof. of Computer Science and Engineering, MIT
About the Author
Dan Chak's varied education in real-world web architecture gives him a unique perspective on the challenges of building rock-solid web applications. Dan has worked at Amazon.com, the world's biggest online retail store, where seemingly small technology problems become big ones due to enormous scale. Dan also directed software development at CourseAdvisor Inc., a Ruby on Rails startup company. A nearly instant success, CourseAdvisor was acquired by the Washington Post Company in October 2007. You can hear his thoughts on his blog at http://blog.chak.org.
Try the Kindle edition and experience these great reading features:
Showing 1-8 of 21 reviews
There was a problem filtering reviews right now. Please try again later.
Calling it "Enterprise Rails" is a bit misleading, though. Rails only makes fleeting appearances. There's a great introduction to Rails plugin writing, which rightfully urges developers to move any decorator code to plugin modules. He talks a little about segmenting class files along Physical, Logical and Service boundaries, the point of which I have yet to understand completely. And there's a chapter on pushing Rails' application-layer polymorphism down to the data layer, which is good advice, but more on that later.
The bulk of Enterprise Rails is devoted to building a solid data layer. Again, good advice. The Rails team decided that referential integrity and validation belongs in the application layer, which Chak contends is dangerous (and I believe him). However, this is where things start to get a little hairy - enforcing referential integrity and validation in the data layer requires an early and continued adherence to SQL, and Chak makes it clear that any old SQL won't do: it's PostgreSQL or nothing.
This makes fully half of the book a dissertation on SQL domain description language from the Postgre perspective, domain data, third normal form and other data layer topics. I have greatly enjoyed the introduction to Postgres DDL, but it wasn't exactly what I expected from a Rails book.
The last few chapters are mostly about Service Oriented Architecture (which I suspect is why most people buy this book) and caching. Chak shows why he's an expert in enterprise software architecture here. But again, he takes a decidedly anti-Rails approach, emphasizing ActionWebService and XML-RPC. This is not without reason - nearly every language has an XML-RPC library. But ActionWebService, as Chak notes, isn't part of core Rails any longer.
REST is quickly reviewed, then mostly dismissed. There's a cursory example of a RESTful service. ActiveResource, Rails' useful core module for REST-oriented SOA, is never mentioned.
Pretty much every time Rails comes up in Enterprise Rails (which, as we've seen, isn't often), it's an opportunity for Chak to take it down a peg. Well, Rails deserves it. But I think that slapping the word "Rails" on the book cover is has more to do with marketing than anything else. This is really a tale about data modeling for the enterprise, with an emphasis on Postgre, told by an expert.
I'd say that this is required reading for enterprise developers, but don't take the "Rails" part of the title too seriously.
Enter Chak's refreshing take on how Rails is used in the real-world. Instead of rehashing the same tired examples, Chak actually discusses what I would characterise as a "best practice" approach to building enterprise Rails apps. This book does for Rails what Shlossnagle's Scalable Internet Architectures does for enterprise web infrastructures. That is it presents an in-depth analysis of how Rails is implemented in the real world. Just some examples:
Chak discusses why postgres is a better open source solution than mysql for heavily trafficed sites.
A useful discussion of how to structure your Rails development and production environments and how to correctly implement namespaces and plugins.
How to utilize SOA and Restful designs.
All in all this is an excellent book. While not for the beginner it is definitely the book to read after you've developed an app or two. It's database centric approach makes it unique among Rails offerings and will bring you up to speed on the CORRECT way to design and implement databases for any development project.
This book sorely shows how inadequate the Rails literature has been up to now.
I've been building a startup site of moderate size, not even something you'd call enterprise yet, for the last 3 years. When I started I was just the sort of naive and overconfident Rails guy this book is aimed at. The author has been through all the scaling issues involved with running a popular website and the book is chock full of useful advice and examples. I wish I had read it way back when I started as I have made many of the mistakes he warns about and had to learn the hard way. Dan shows you how to avoid painting yourself in a corner with overly optimistic/naive design choices up front. He shows you how to design things properly from the start, with a special emphasis on using the native features of a relational database instead of doing things at the application level, and how to keep things organized. I love love LOVED this book.