UPDATE: Objects on Rails is now complete and freely available online.
Often, at conferences and users group meetings, I find myself discussing the intersection of Ruby on Rails, Object-Oriented development, and Test-Driven Development, and I’ll mention something like “I prefer to develop my business objects first, and add ActiveRecord in later”. This usually leads to questions about how I structure my projects, how I isolate the business logic from ActiveRecord for testing, and so on. These discussions usually wind up with me saying “I’ll write a blog post about it…”.
A couple months ago I set out to start that blog post. I looked up from my keyboard a few hours later and realized that I had something rather larger than a blog post on my hands. Since then I’ve been pecking away at from time to time, in between work and conference travel. Now it’s reached the point where I’ve got a rough draft and it’s time to get some reader input.
When the book is complete I plan on releasing it for free for online reading in it’s entirety. It’s not quite ready for that stage yet. But today, I’m making an early-access (very) beta draft available for $5.
Wait a second… I’m selling you a book which I’ll eventually put online for free? How is that a good deal?
Here’s what you get for your money:
- Early access!
- Input into the final product.
- When they are ready, you’ll get PDF, Mobi, and Epub versions for your offline reading pleasure. These versions will not be made available for free.
- Once it is ready, a copy of the full source code including revision history of the working demo project the book is based on. Again, this will not be made available for free.
- A warm, fuzzy feeling because you’re supporting me in writing this and future books, like my upcoming “Confident Ruby”.
- Starting with business models, adding persistence later.
- Blazing-fast isolated tests using minitest without Rails loaded.
- Using the language of the domain, not the language of the framework.
- Stubbing out whole classes and modules in tests.
- Stop worrying and learn to love Dependency Injection
- Using the Presenter pattern to iron out convoluted view logic.
- Exposing rich hypermedia RESTful resources with presenters.
- Treating ActiveRecord as an implementation detail.
- Separating fast unit tests from slower integration tests.
- When to throw away your tests.
- Using object composition to separate concerns.
- Extracting object Roles into their own objects.
Sound interesting? Click here to buy it now:
UPDATE: Want to submit feedback or discuss the book? I’ve created a Google Group for that purpose: https://groups.google.com/group/objects-on-rails