Menu Sidebar


Kata and Analysis by Jim Weirich

Towards the end of this video there’s a terrific discussion of the point at which DRYing out the code any further would just make it harder to understand. I was also amused by┬áthe quote: I have downloaded much of my brain into emacs muscle memory.

Making Little Classes out of Big Ones (video)

I recently visited the Hashrocket offices in Jacksonville, and while I was there I did a Lunch & Learn talk on the topic of of breaking down too-big classes into smaller pieces. In it I went over pros and cons of four strategies: Breaking the class into modules Decorators Dynamic module extension Object Composition We […]

Refactoring in Ruby

I’ve started working my way through Refactoring in Ruby, by William C. Wake and Kevin Rutherford. I haven’t been this excited about a book since Michael Feathers’ Working Effectively with Legacy Code. I feel like a schoolboy, relearning refactoring as if for the first time. The core concept of the book was not clear from […]

Testing Private Methods

Periodically the question of how to test private methods comes up at work or online. My answer is: don’t. It may seem trite, but there is some reasoning behind it. Private methods are, by definition, implementation details. If you are approaching your tests from a behavioral standpoint – and you really should be, whether you […]

Older Posts

Virtuous Code

"The three virtues of a programmer: laziness, impatience, and hubris" — Larry Wall


News, notes, and commentary from Avdi, weekly-ish.

Books and Screencasts

RubyTapas Screencasts

RubyTapas Screencasts

Small plates of gourmet Ruby code.

Confident Ruby

Confident Ruby cover

32 Patterns for joyful coding.

The Making of

Confident Ruby cover

Watch me build an app in Sinatra and Rails

Objects on Rails

Objects on Rails

A developer notebook on applying classic Object-Oriented principles to Ruby on Rails projects.

Exceptional Ruby

Exceptional Ruby

The definitive guide to exceptions and failure handling in Ruby.