Gerunds: a simple solution to architecture exhaustion

In their paper introducing DCI, the authors succinctly captured the essence of what I’ve learned about architecture, “Clean Code,” and software craftsmanship in the last decade. We all agree: modeling behavior as naturally as OOP models structure is easier said than done.

This post is about a simple, almost “back to basics” technique I’ve been experimenting with for a couple years, which I now consider essential for addressing this issue. It’s a one-two punch: using gerunds (-ing words) to name system actions, and preferring inheritance over composition as the implementation strategy.

I know, I know. It’s… different. That’s why this post is so long, for what is ultimately a really simple proposal. I assume it’ll take some convincing, but hear me out - I think it’ll be worth it.

Continue reading ⇒