Confident Ruby is Finished!

Confident Ruby 3DI am thrilled to announce that my book Confident Ruby is now finished. I even hit my target of releasing by September 1st… if by “September 1st” I had meant “of the following year”.

So what is this book and why should you buy it? Confident Ruby is, first and foremost, a book about joy. It’s about the joy I found when I first discovered how elegantly and succinctly I could state problems in Ruby code. It’s about the joy I gradually lost as the “real world” snuck in and gradually cluttered my code with distracting edge case scenarios, error handling, and checks for nil. And it’s about how I came to recapture that joy, by employing small patterns and stylistic choices to make each method tell a  coherent story.

The structure of the book is that of a patterns catalog. But these are not the large, heavy-weight architectural patterns of a Design Patterns or a Patterns of Enterprise Application Architecture. These patterns are small, most of them taking place at the level of an individual method or even a single line of code. They are related by a single organizing principle: removing the uncertainty that leads to code that is riddled with conditionals, and constantly second-guesses itself; and replacing it with a confident, clear focus on the task at hand.

In these pages you’ll find:

  • 32 patterns for writing confident code.
  • How to avoid the “MacGyver method”–a step-by-step guide to thinking about methods in terms of the story they tell rather than the building blocks that happen to be lying around.
  • The most comprehensive coverage anywhere of Ruby’s conversion methods and protocols. You’ll learn not just how to convert built-in objects from one to another, and when to use #to_a vs. #to_ary vs. Array(); but also how to adopt Ruby’s conversion conventions to make your own objects powerfully extensible.
  • How to streamline your code and eliminate repetitive conditionals with the Special Case and Null Object patterns… and how to avoid the gotchas that can come with naive implementations of these patterns.
  • Simple habits to eliminate the dreaded “NoMethodError for NilClass” exception.
  • How to make your methods more flexible by passing in behavior instead of data.
  • How to helpfully deliver results from your methods when the possible outcomes are more nuanced than “success” or “failure”.
  • An applied demonstration of refactoring two Open-Source Ruby projects using patterns from the book.
  • And much, much more… nearly 300 pages of material and hundreds of code listings.

Want a taste of the book? Click here for a PDF sample, containing the introduction and three patterns.

Confident Ruby is is available in three different editions.

Buy Confident Ruby Gold Label Edition ($55)

The Gold Label edition comes with:

  • Confident Ruby in PDF, EPUB, and Kindle formats.
  • naught-boxshotA 30 minute Confident Ruby companion screencast, in which you can watch “over my shoulder” as I apply concepts and patterns from the book to the Discourse codebase.
  • Much Ado About Naught: An Adventure in Metaprogramming.  This ebook follows the step-by-step, test-driven development of the “Naught” gem for constructing Null Object classes. Much Ado About Naught CoverIt covers most of the metaprogramming techniques, tricks, and gotchas I’ve picked up over the years, and comes complete with whimsical Paintbrush illustrations by Lauren Shepard! (aka my mom)

Buy Confident Ruby Black Label Edition ($45)

The Black Label edition comes with:

  • Confident Ruby in PDF, EPUB, and Kindle formats.
  • The Confident Ruby companion screencast.

Buy Confident Ruby Red Label Edition ($35)

The Red Label edition comes with:

  • Confident Ruby in PDF, EPUB, and Kindle formats.

Finally, as always if you don’t have the scratch for any of these editions, you can still send me a postcard!

(Beta buyers: keep an eye on your inbox for a way to get the Gold Label extras at a special discount.)

Oh yeah, one more thing. One of the things that held up the release of this book was that I wrote a completely new publishing toolchain called Quarto. It’s still early days, but it already has a number of unique capabilities. It’s written in Ruby and is open source, so if you’re a Ruby programmer and interested in publishing ebooks, feel free to check it out and start hacking on it.